Calendar-aware smart home wake-up routine

By General Input

Every weekday at 5:30am, your lights, thermostat, and coffee start themselves based on your first real meeting, not a fixed alarm.

Integrations

  • Home Assistant
  • Google Calendar

Type

Agentic Task

Categories

  • Personal Productivity
  • Operations

Build me an agent workflow that wakes my house up around my actual calendar each weekday morning, instead of running a fixed routine I have to manually override every time my schedule changes.

Trigger: cron, Monday through Friday at 05:30 in my local timezone.

Integrations: Google Calendar and Home Assistant.

Step 1. Pull today's events from Google Calendar using List Events on my primary calendar, for the window from now until end of day local time. Expand recurring events into individual instances and order by start time.

Step 2. Before touching anything in the house, call Home Assistant List Services so the agent only references domains and services that actually exist on my instance. Also use Get State to check the relevant entities up front: I want to skip anything that is already on, and I want to respect an optional boolean entity for guest mode or vacation (something like input_boolean.guest_mode or input_boolean.vacation_mode). If that entity exists and is on, the workflow should stop silently with no device changes.

Step 3. Reason about the first real commitment of the day and pick a wake profile:

- A very early hard commitment, like a 7am flight or an airport pickup, means a hard wake. Start immediately at 05:30 or 05:45, bedroom and kitchen lights to 100 percent, thermostat to a comfortable morning target, coffee maker on now.

- A normal morning meeting around 9am or 10am means a soft ramp. Start about 90 minutes before the meeting, bedroom lights at low brightness ramping up, kitchen lights on closer to wake time, thermostat adjusted, coffee on about 20 minutes before I would get out of bed.

- An afternoon-only or empty day means do nothing and exit. Specifically: if today's first non-all-day event starts after 12:00 local, skip everything.

Step 4. Once the agent has decided the profile and the start time, control the house through Home Assistant Call Service. Concretely: light.turn_on on the bedroom and kitchen light entities at the chosen brightness, climate.set_temperature on the bedroom or main thermostat with the chosen target, switch.turn_on on the coffee or kettle switch, and optionally media_player.play_media or media_player.select_source on a media_player entity for a morning playlist. Use only domains and services that came back from List Services, and only entities that came back from Get State, so it never tries to control something that does not exist.

Guardrails:

- Never fire the wake scene more than once per day. If the workflow has already run today, exit.

- If today's first real event is later than noon, do nothing.

- If the guest-mode or vacation boolean entity is on, do nothing and exit silently.

- Skip any device that Get State reports as already on, so I do not get a brightness reset or a thermostat jump if I am already up.

- All-day events should not count as the first commitment of the day. Look at the first timed event.

The agent should be able to explain in its run notes which event it keyed off, which profile it picked, and which entities it actually touched, so I can tune the rules over time.

Related prompts

Explore more prompts
Front desk appointment confirmation board for the next 3 daysAppointment confirmation board built on WhatsApp repliesPlan a field sales day around drive time and neglected accountsSmart home entity health cockpit for Home AssistantPer-device electricity cost explorer for your smart homeShort-term rental turnover console for Home AssistantRun your HoneyBook booking season from one calendarA keep in touch board built on your Google ContactsSee who actually joined your recurring Google Meet callsSee which of your recurring meetings are one person talking