
Create a Google Calendar-Based Thermostat Automation to Reduce Energy Waste
Smart heating and cooling is one of the easiest ways to reduce household energy consumption without sacrificing comfort. Many homes spend unnecessary energy heating or cooling empty rooms simply because the thermostat follows a static schedule. If your workday changes from week to week, traditional schedules often fail to match reality.
A more flexible solution is to connect your thermostat automation to your calendar. By using a Google Calendar integration in Home Assistant, your heating or cooling system can automatically switch to eco mode when your workday begins and return to comfort mode when you are back home.
This setup is ideal for people with hybrid work schedules, irregular office days, or shared household calendars. Instead of manually adjusting temperatures or maintaining multiple schedules, your calendar becomes the source of truth.
In this article, we will build a Google Calendar-based automation in Home Assistant that:
- Detects scheduled workdays from Google Calendar
- Switches the thermostat to eco mode during office hours
- Restores comfort settings when the event ends
- Helps reduce unnecessary heating and cooling consumption
- Uses Celsius and tracks energy savings in kWh
Why Calendar-Based Thermostat Control Makes Sense
Traditional thermostats often rely on repeating schedules:
- Weekdays: 21°C from 06:00 to 08:00
- Daytime: 17°C
- Evening: 21°C
This works if your daily routine is fixed.
But many households now follow dynamic schedules:
- Hybrid work arrangements
- Flexible office attendance
- School holidays
- Shift work
- Travel days
If your heating schedule assumes you’re away when you’re actually home, comfort suffers. If it assumes you’re home when you’re not, energy is wasted.
A calendar-based automation solves this by reacting to actual plans.
For example:
If your Google Calendar contains:
“Office Day” – 08:00 to 16:30
Home Assistant can automatically:
- Lower heating to 17°C at 08:00
- Restore comfort temperature of 21°C at 16:30
For homes using electric heating, this can save noticeable energy over time.
Reducing indoor temperature by even 1°C can lower heating demand by roughly 5–10%, depending on insulation and outdoor conditions.
Components You Need
To build this automation, you need a few Home Assistant integrations.
1. Home Assistant
The automation engine that connects your devices and services.
Home Assistant handles:
- Calendar event monitoring
- Thermostat control
- Scheduling logic
- Optional energy tracking
2. Google Calendar Integration
This integration imports calendar events into Home Assistant as calendar entities.
Google Calendar Integration Documentation
After setup, you will have entities such as:
calendar.work_schedule
You can create dedicated events like:
- Office Day
- Work From Office
- Onsite Meeting
3. A Smart Thermostat or Climate Device
Any climate entity supported by Home Assistant will work.
Examples include:
- Tado
- Netatmo
- Sensibo
- Generic MQTT thermostats
- Heat pump integrations
Example entity:
climate.living_room
4. Optional Energy Dashboard
Home Assistant’s Energy Dashboard helps visualize reduced heating consumption in kWh.
This allows you to compare:
- Days with eco automation enabled
- Days with manual heating
Planning Your Calendar Events
The simplest approach is creating a dedicated Google Calendar for work presence.
Example calendar name:
Work Presence
Then create events like:
- Office
- Office Day
- Work Away
This keeps automation logic clean.
Example schedule:
| Event | Start | End |
|---|---|---|
| Office Day | 08:00 | 16:00 |
| Office Day | 09:00 | 17:30 |
When the event starts, eco mode activates.
When it ends, comfort mode returns.
The Automation Logic
We’ll create two automations:
- Start Workday Eco Mode
- End Workday Comfort Mode
This gives clear control and easier troubleshooting.
Automation 1: Activate Eco Mode
When your calendar event starts, reduce temperature.
YAML Example
alias: Thermostat Eco Mode During Workday
description: Set thermostat to eco mode during scheduled office hours
trigger:
- platform: calendar
event: start
entity_id: calendar.work_schedule
condition:
- condition: template
value_template: >
{{ trigger.calendar_event.summary == "Office Day" }}
action:
- service: climate.set_temperature
target:
entity_id: climate.living_room
data:
temperature: 17
mode: single
What This Does
When Home Assistant detects:
- Calendar event starts
- Event title matches Office Day
It sets the thermostat to:
17°C
This reduces heating demand while the house is empty.
Automation 2: Restore Comfort Temperature
When the event ends, heating returns to normal.
YAML Example
alias: Restore Comfort Temperature After Work
description: Restore thermostat after office hours
trigger:
- platform: calendar
event: end
entity_id: calendar.work_schedule
condition:
- condition: template
value_template: >
{{ trigger.calendar_event.summary == "Office Day" }}
action:
- service: climate.set_temperature
target:
entity_id: climate.living_room
data:
temperature: 21
mode: single
Now your home is warm again before evening occupancy.
Making It Smarter
You can expand this automation with additional logic.
Presence Detection
Only activate eco mode if nobody is home.
condition:
- condition: state
entity_id: person.john
state: "not_home"
Outdoor Temperature Protection
Prevent excessive cooling during winter.
condition:
- condition: numeric_state
entity_id: sensor.outdoor_temperature
above: -10
This ensures your home never drops too low.
Different Seasonal Temperatures
You might want:
Winter
- Eco: 17°C
- Comfort: 21°C
Summer (cooling)
- Eco: 26°C
- Comfort: 23°C
This can be handled using seasonal conditions.
Estimating Energy Savings
Let’s consider a typical electric heating system:
Daily heating usage during occupancy:
18 kWh
Lowering indoor temperature by 4°C for 8 hours may reduce usage by approximately:
2–4 kWh per day
Over 20 office days per month:
- Minimum savings: 40 kWh
- Higher savings: 80 kWh
At an electricity price of €0.20 per kWh:
Monthly savings:
€8–€16
Annual savings:
€96–€192
The exact savings depend on:
- Insulation quality
- Outdoor temperature
- Heating system efficiency
- House thermal mass
Even moderate reductions add up.
Why This Approach Works Better Than Fixed Scheduling
Static schedules assume routines never change.
Calendar-driven automation adapts automatically to:
- Holidays
- Sick days
- Remote work
- Late office meetings
- Travel
No manual thermostat changes.
No wasted heating.
Just accurate, event-based control.
Troubleshooting Tips
If the automation does not trigger:
Verify Calendar Sync
Check that your event appears in Home Assistant:
Developer Tools → States
Look for:
calendar.work_schedule
Confirm Event Names
The condition checks exact text:
Office Day
Even extra spaces matter.
Review Automation Trace
Home Assistant provides execution traces to see:
- Whether trigger fired
- Which condition failed
- Which actions executed
This makes debugging much easier.
Final Thoughts
Google Calendar-based thermostat automation is one of the most practical examples of context-aware home automation.
It combines:
- Scheduling flexibility
- Energy savings
- Better comfort
- Reduced manual interaction
By linking your actual calendar to climate control, your home responds to real-life plans instead of assumptions.
For households with dynamic routines, this is a simple automation with measurable impact in both comfort and reduced kWh consumption.
If you already use Home Assistant and Google Calendar, you can implement this in less than 30 minutes and start saving energy immediately.
Some of the links in this article are "affiliate links", a link with a special tracking code. This means if you click on an affiliate link and purchase the item, we will receive an affiliate commission. The price of the item is the same whether it is an affiliate link or not. Regardless, we only recommend products or services we believe will add value to our readers. By using the affiliate links, you are helping support our Website, and we genuinely appreciate your support.