Published: Jul 23, 20233 min read

Integrating Google Calendar into Home Assistant

Written by: Fixt

Integration Configuration

Google Calendar Integration

Open your Home Assistant and show de integration menu

You can use this button to start the setup process. It will open the integration page in Home Assistant.

You can find the documentation here.

This integration allows you to connect your Google Calendar to Home Assistant.
Once configured, you will be able to use your calendar events in automations and scripts.

You can use this to simplify automation in your smart home:

  • Create a calendar
  • Create automations that trigger with events in that calendar
  • Share the calendar with your family
  • Now everyone can add events to the calendar and have automations triggered for them.

Automation Examples

Turn on your pc 30 minutes before your stand up meeting starts

config/automations.yaml

alias: Calendar Stand up meeting
description: ""
trigger:
  - platform: calendar
    event: start
    offset: "-0:30:0"
    entity_id: calendar.fixtse_gmail_com #Change this to your calendar
condition:
  - condition: template
    value_template: "{{ 'stand up meeting' in trigger.calendar_event.summary }}" #Change this to your event name
action:
  - service: switch.turn_on
    data: {}
    target:
      entity_id: switch.desktop_studio #Change this to your pc switch
mode: single

Create a calendar event when the sun goes down

config/automations.yaml

alias: Calendar Register sunset
description: ""
trigger:
  - platform: sun
    event: sunset
    offset: 0
condition: []
action:
  - service: google.create_event
    data:
      summary: Sun down
      start_date_time: "{{ as_timestamp(now()) | timestamp_local }}" #This will set the start date of the event at the current time
      end_date_time: "{{ (as_timestamp(now()) + (0.25 | float)*3600) | timestamp_local  }}" #This will set the end date of the event 15 minutes from now
    target:
      entity_id: calendar.fixtse_gmail_com #Change this to your calendar
  - service: homeassistant.update_entity #This will make home assistant refresh your calendar information
    target:
      entity_id: calendar.fixtse_gmail_com #Change this to your calendar
mode: single

Use it in your Dashboard

Atomic Calendar revive

You can find the documentation here.

Custom Card

type: custom:atomic-calendar-revive
name: Calendar
enableModeChange: true
entities:
  - entity: calendar.fixtse_gmail_com #Change this to your calendar
showRelativeTime: false
hideFinishedEvents: false
showDeclined: false
showDate: false
hideDuplicates: false
compactMode: false
hoursOnSameLine: false
showDatePerEvent: false
showWeekNumber: false
showHiddenText: false
showFullDayProgress: false
disableLocationLink: false
showMonth: true
showWeekDay: true
calShowDescription: false
showLastCalendarWeek: false
disableCalEventLink: false
disableCalLocationLink: false
disableCalLink: false