Home Assistant Kalender-Automation: Termine als Auslöser verwenden
Viele Automationen in Home Assistant starten durch einen Sensor, eine Uhrzeit oder einen Tastendruck. Es geht aber auch deutlich flexibler: Ein Termin im Kalender kann direkt zum Auslöser einer Automation werden.
Damit lassen sich beispielsweise morgens Mülltonnen-Erinnerungen verschicken, am Beginn eines Homeoffice-Termins bestimmte Geräte einschalten oder vor einem Urlaub automatisch Anwesenheitssimulation und Heizung anpassen.
Besonders praktisch finde ich dabei, dass die Termine weiterhin ganz normal im Kalender gepflegt werden. Ändert sich die Uhrzeit, verschiebt sich automatisch auch die Automation.
In diesem Artikel zeige ich, wie Kalender in Home Assistant funktionieren, wie du Termine als Trigger verwendest und welche Automationen sich damit im Alltag sinnvoll umsetzen lassen.
Was kann Home Assistant mit einem Kalender machen?
Home Assistant behandelt eingebundene Kalender als eigene Entitäten. Dabei ist der Kalender weniger als Ersatz für eine klassische Kalender-App gedacht. Interessant wird er vor allem als Datenquelle für Automationen.
Eine Automation kann beispielsweise reagieren:
- wenn ein Termin beginnt,
- wenn ein Termin endet,
- einige Minuten vor Terminbeginn,
- eine bestimmte Zeit nach Terminbeginn,
- vor oder nach dem Ende eines Termins.
Der Kalendertermin selbst bringt außerdem weitere Informationen mit. Dazu gehören je nach Kalender unter anderem Titel, Beschreibung, Startzeit, Ende und Ort.
Diese Daten können wir später sogar direkt in einer Push-Nachricht verwenden.
Welche Kalender lassen sich verwenden?
Home Assistant unterstützt verschiedene Kalender-Integrationen. Welcher Weg für dich sinnvoll ist, hängt davon ab, wo deine Termine bereits liegen.
Typische Möglichkeiten sind beispielsweise:
- Google Calendar,
- CalDAV-Kalender,
- lokale Kalender in Home Assistant,
- weitere Kalender, die über passende Integrationen eingebunden werden.
Für reine Smart-Home-Termine finde ich einen separaten Kalender sinnvoll. Dort könnten dann beispielsweise Müllabfuhr, Urlaub, Homeoffice oder andere Termine liegen, die Home Assistant automatisieren soll.
So muss nicht jeder private Termin automatisch Teil der Smart-Home-Logik werden.
Kalender in Home Assistant finden
Ist ein Kalender erfolgreich eingebunden, erscheint er als eigene Entität.
Eine typische Entity-ID könnte beispielsweise so aussehen:
calendar.familie
oder:
calendar.smarthome
Für eine neue Automation öffnen wir anschließend:
Einstellungen → Automationen & Szenen
Falls du mit Automationen gerade erst anfängst, findest du den grundlegenden Aufbau ausführlich in meinem Artikel Home Assistant Automationen erstellen: Anleitung für Anfänger.
Kalendertermin als Trigger verwenden
Für Kalender gibt es in Home Assistant einen eigenen Trigger. Damit muss man nicht selbst überwachen, ob sich der Zustand einer Kalender-Entität verändert.
Ein einfacher Trigger für den Beginn eines Termins sieht in YAML beispielsweise so aus:
triggers:
- trigger: calendar
event: start
entity_id: calendar.smarthome
Sobald ein Termin aus diesem Kalender beginnt, startet die Automation.
Automation beim Ende eines Termins starten
Genauso können wir auf das Ende reagieren.
triggers:
- trigger: calendar
event: end
entity_id: calendar.smarthome
Das könnte beispielsweise bei einem Homeoffice-Termin praktisch sein. Beginnt der Termin, wird das Arbeitszimmer vorbereitet. Endet er, werden Licht und bestimmte Steckdosen wieder ausgeschaltet.
Automation schon vor dem Termin starten
Eine besonders praktische Funktion ist der Offset.
Damit startet die Automation bereits vor dem eigentlichen Termin.
Dieses Beispiel löst 30 Minuten vor Terminbeginn aus:
triggers:
- trigger: calendar
event: start
entity_id: calendar.smarthome
offset: "-00:30:00"
Das Minus bedeutet, dass die Automation vor dem eigentlichen Start ausgeführt wird.
Mit einem positiven Wert kann sie entsprechend nach dem Terminstart ausgelöst werden.
Beispiel 1: Erinnerung für die Müllabfuhr
Ein einfacher, aber wirklich praktischer Anwendungsfall ist die Müllabfuhr.
Im Kalender könnten Termine stehen wie:
- Restmüll
- Biomüll
- Gelber Sack
- Papiertonne
Home Assistant kann am Abend vorher automatisch eine Nachricht aufs Smartphone schicken.
alias: Mülltonne Erinnerung
triggers:
- trigger: calendar
event: start
entity_id: calendar.muellabfuhr
offset: "-12:00:00"
actions:
- action: notify.mobile_app_mein_handy
data:
title: "Müllabfuhr"
message: >-
Morgen steht an:
{{ trigger.calendar_event.summary }}
mode: queued
Damit wird der Titel des Kalendereintrags direkt in der Nachricht verwendet.
Steht im Kalender also „Biomüll“, erscheint genau dieser Begriff in der Push-Nachricht.
Wie du Home-Assistant-Nachrichten grundsätzlich aufs Smartphone schickst, zeige ich ausführlich in Home Assistant Benachrichtigung aufs Handy: Push-Nachrichten richtig einrichten.
Kalenderdaten in der Automation verwenden
Bei einem Kalender-Trigger stellt Home Assistant verschiedene Informationen über den auslösenden Termin bereit.
Besonders interessant sind:
trigger.calendar_event.summaryfür den Titel,trigger.calendar_event.descriptionfür die Beschreibung,trigger.calendar_event.locationfür den Ort,trigger.calendar_event.startfür den Start,trigger.calendar_event.endfür das Ende.
Dadurch wird eine einzige Automation deutlich flexibler.
Statt für Biomüll, Papier und Restmüll drei verschiedene Automationen anzulegen, kann eine Automation einfach den jeweiligen Termintext übernehmen.
Beispiel 2: Homeoffice automatisch vorbereiten
Ein weiteres Beispiel wäre ein eigener Kalender für Homeoffice-Tage.
Angenommen, im Kalender steht:
Homeoffice von 08:00 bis 17:00 Uhr.
Home Assistant könnte 15 Minuten vorher automatisch:
- eine Steckdose am Schreibtisch einschalten,
- das Arbeitszimmer auf Komforttemperatur bringen,
- bei wenig Tageslicht eine Lampe einschalten.
alias: Homeoffice vorbereiten
triggers:
- trigger: calendar
event: start
entity_id: calendar.arbeit
offset: "-00:15:00"
conditions:
- condition: template
value_template: >-
{{ 'homeoffice' in
trigger.calendar_event.summary | lower }}
actions:
- action: switch.turn_on
target:
entity_id: switch.schreibtisch
mode: queued
Die Bedingung sorgt dafür, dass nicht jeder Termin im Arbeitskalender die Schreibtisch-Steckdose einschaltet.
Nur Termine, deren Titel „Homeoffice“ enthält, führen die Aktion aus.
Warum ein eigener Smart-Home-Kalender oft einfacher ist
Man kann natürlich einen kompletten Familien- oder Arbeitskalender verwenden und anschließend anhand der Titel filtern.
Ich finde für viele Anwendungen aber einen eigenen Kalender übersichtlicher.
Ein Kalender mit dem Namen „Smart Home“ könnte beispielsweise nur folgende Termine enthalten:
- Urlaub
- Homeoffice
- Heizung Urlaub
- Gäste
- Gartenbewässerung aus
- Müllabfuhr
Damit bleibt die Automation einfacher und private Termine müssen überhaupt nicht ausgewertet werden.
Beispiel 3: Urlaub automatisch erkennen
Ein Kalendereintrag eignet sich auch gut, um längere Abwesenheiten vorzubereiten.
Ein Termin namens „Urlaub“ könnte beispielsweise am Beginn verschiedene Automationen anstoßen.
- Heizung absenken,
- bestimmte Steckdosen ausschalten,
- Anwesenheitssimulation aktivieren,
- unnötige Automationen deaktivieren.
Am Ende des Termins werden die Einstellungen wieder zurückgesetzt.
Ich würde sicherheitsrelevante Aktionen allerdings nicht ausschließlich von einem Kalender abhängig machen. Ob wirklich niemand zu Hause ist, lässt sich zusätzlich über die Anwesenheitserkennung prüfen.
Kalender und Bedingungen kombinieren
Der Kalender muss nicht alleine entscheiden.
Genau wie bei anderen Automationen können anschließend Bedingungen geprüft werden.
Zum Beispiel:
- Termin beginnt,
- Person ist tatsächlich zu Hause,
- Außentemperatur liegt unter 15 Grad,
- dann Arbeitszimmer heizen.
Dadurch wird aus einer einfachen Kalendererinnerung schnell eine echte Smart-Home-Automation.
Beispiel 4: Videokonferenz im Kalender
Auch für Videokonferenzen kann ein Kalendertrigger interessant sein.
Ein Termin mit „Teams“, „Meeting“ oder „Videokonferenz“ im Titel könnte beispielsweise fünf Minuten vorher:
- die Schreibtischbeleuchtung einschalten,
- eine Statusleuchte aktivieren,
- bestimmte Benachrichtigungen unterdrücken.
Am Ende des Termins wird alles wieder zurückgesetzt.
Gerade für eine Statusleuchte wäre ein kleiner ESP32 interessant. Die grundlegende Einrichtung solcher Geräte beschreibe ich unter ESPHome mit Home Assistant verbinden.
Beispiel 5: Erinnerung mit Ort und Uhrzeit
Da der Kalendertrigger weitere Informationen mitliefert, können Push-Nachrichten deutlich informativer werden.
actions:
- action: notify.mobile_app_mein_handy
data:
title: "{{ trigger.calendar_event.summary }}"
message: >-
Termin beginnt bald.
Ort: {{ trigger.calendar_event.location }}
Damit lassen sich Home-Assistant-Benachrichtigungen sehr einfach mit den Informationen aus dem Kalender anreichern.
Ganztägige Termine funktionieren ebenfalls
Kalender können neben Terminen mit konkreter Uhrzeit auch ganztägige Ereignisse enthalten.
Das ist beispielsweise für Müllabfuhr, Urlaub, Feiertage oder Homeoffice-Tage praktisch.
Home Assistant stellt dafür unter anderem die Information bereit, ob ein Termin ganztägig ist.
{{ trigger.calendar_event.all_day }}
Damit können Automationen bei Bedarf zwischen normalen und ganztägigen Terminen unterscheiden.
Kalender nicht über den normalen Zustand auswerten
Eine Kalender-Entität besitzt zwar ebenfalls einen Zustand und verschiedene Attribute. Für Automationen würde ich trotzdem den speziellen Kalendertrigger verwenden.
Der Grund ist wichtig: Die Attribute einer Kalender-Entität beziehen sich im Wesentlichen auf den nächsten beziehungsweise aktuell relevanten Termin.
Bei mehreren Terminen oder komplexeren Abläufen ist das schnell unübersichtlich.
Der Kalendertrigger reagiert dagegen direkt auf den jeweiligen Termin und stellt dessen Daten in der Variable trigger.calendar_event bereit.
Achtung beim Testen neuer Termine
Hier gibt es einen Punkt, der bei der Einrichtung leicht für Verwirrung sorgt.
Home Assistant liest Kalender nicht permanent jede Sekunde neu ein. Die offiziellen Kalenderfunktionen arbeiten mit einem Abfrageintervall von bis zu etwa 15 Minuten.
Wenn du um 10:00 Uhr schnell einen Testtermin für 10:05 Uhr erstellst, kann es deshalb passieren, dass Home Assistant diesen Termin noch gar nicht kennt.
Für einen Test würde ich einen neuen Termin deshalb mindestens 20 bis 30 Minuten in die Zukunft legen.
Mehrere Termine können gleichzeitig starten
Bei Kalender-Automationen sollte auch der Modus der Automation berücksichtigt werden.
Wenn zwei Termine gleichzeitig beginnen, kann die Automation theoretisch zweimal nahezu gleichzeitig ausgelöst werden.
Deshalb würde ich bei Kalender-Automationen häufig queued oder parallel verwenden und nicht automatisch bei single bleiben.
mode: queued
Bei queued werden weitere Durchläufe nacheinander abgearbeitet.
Automation funktioniert nicht? Trace ansehen
Wenn ein Kalendertermin keine Aktion auslöst, würde ich wie bei jeder anderen Automation zuerst die Ablaufverfolgung prüfen.
Home Assistant zeigt dort unter anderem:
- ob der Kalendertrigger ausgelöst wurde,
- welcher Termin die Automation gestartet hat,
- ob Bedingungen erfüllt waren,
- welche Aktionen ausgeführt wurden.
Die komplette Fehlersuche zeige ich in Home Assistant Automationen funktionieren nicht: Trigger, Bedingungen und Traces prüfen.
Warum der manuelle Test nur begrenzt hilft
Wenn du eine Automation über den Editor manuell ausführst, wird der eigentliche Kalendertrigger nicht getestet.
Damit kannst du zwar herausfinden, ob beispielsweise Licht oder Push-Nachricht grundsätzlich funktionieren. Ob Home Assistant den Termin korrekt als Trigger erkennt, zeigt dieser Test aber nicht.
Für einen echten Test würde ich deshalb einen eigenen Kalendereintrag mit ausreichend Vorlauf anlegen.
Termine nach Titel filtern
Wenn ein Kalender verschiedene Termine enthält, können wir nach dem Titel filtern.
conditions:
- condition: template
value_template: >-
{{ 'urlaub' in
trigger.calendar_event.summary | lower }}
Durch | lower wird der Titel zunächst in Kleinbuchstaben umgewandelt. Damit spielt es keine Rolle, ob im Kalender „Urlaub“, „urlaub“ oder „URLAUB“ steht.
Diese Methode eignet sich auch für andere Stichwörter wie:
- Homeoffice
- Müll
- Meeting
- Gäste
- Ferien
Eine Automation für mehrere Terminarten
Man muss nicht für jeden Begriff eine eigene Automation bauen.
Mit Choose kann Home Assistant abhängig vom Termin unterschiedliche Aktionen ausführen.
Das Prinzip wäre beispielsweise:
- Termin enthält „Homeoffice“ → Arbeitszimmer vorbereiten.
- Termin enthält „Urlaub“ → Urlaubsmodus starten.
- Termin enthält „Müll“ → Push-Nachricht senden.
Für umfangreiche Kalender würde ich trotzdem mehrere kleinere Automationen bevorzugen. Sie lassen sich später leichter verstehen und bei Problemen einfacher über die Traces untersuchen.
Kalendereinträge aus Home Assistant erstellen
Je nach verwendeter Kalenderintegration kann Home Assistant Termine nicht nur lesen, sondern auch selbst erstellen.
Dafür gibt es die Aktion:
calendar.create_event
Damit lässt sich beispielsweise ein Wartungstermin automatisch in einen Kalender schreiben.
Ein Beispiel wäre ein Filterwechsel. Wird ein Filter gewechselt, könnte Home Assistant direkt einen neuen Termin in drei oder sechs Monaten anlegen.
Damit wird der Kalender selbst Teil der Smart-Home-Logik.
Kalendertermine auslesen und zusammenfassen
Home Assistant kann außerdem Termine für einen bestimmten Zeitraum aus einem Kalender abrufen.
Das ist beispielsweise interessant für eine morgendliche Zusammenfassung:
- Welche Termine stehen heute an?
- Wann ist die Müllabfuhr?
- Gibt es heute einen Homeoffice-Termin?
- Stehen Wartungsarbeiten an?
Die Ergebnisse könnten anschließend auf einem Dashboard erscheinen oder als Push-Nachricht aufs Smartphone geschickt werden.
Kalender und Home-Assistant-Dashboard kombinieren
Kalender müssen nicht nur im Hintergrund für Automationen arbeiten.
Eine Kalenderkarte auf dem Dashboard kann Termine und Smart-Home-Steuerung zusammenbringen. Gerade auf einem Wandtablet finde ich das praktisch.
Morgens sieht man beispielsweise auf einen Blick:
- Wetter,
- Termine,
- offene Fenster,
- Energieverbrauch,
- anstehende Müllabfuhr.
Damit wird das Home-Assistant-Dashboard zunehmend zur zentralen Informationsanzeige für den Alltag.
Was passiert bei einem Neustart?
Kalendertrigger reagieren auf einen bestimmten Zeitpunkt. Das sollte man bei Neustarts im Hinterkopf behalten.
Ist Home Assistant genau zum Zeitpunkt des Triggers nicht aktiv, sollte man bei wirklich wichtigen Abläufen nicht ausschließlich auf diesen einen Termintrigger vertrauen.
Für Komfortfunktionen wie eine Homeoffice-Steckdose ist das meist kein großes Problem. Sicherheitskritische Aufgaben würde ich immer zusätzlich über Zustände oder andere Sensoren absichern.
Kalender-Automation oder feste Uhrzeit?
Eine feste Uhrzeit ist sinnvoll, wenn etwas wirklich jeden Tag gleich ablaufen soll.
Der Kalender ist besser, wenn sich der Zeitpunkt regelmäßig ändert.
| Feste Uhrzeit | Kalender |
|---|---|
| jeden Tag 7 Uhr | wechselnde Termine |
| einfach einzurichten | flexibler |
| Änderung direkt in Automation | Änderung im Kalender reicht |
| ideal für tägliche Routinen | ideal für Termine, Urlaub und Erinnerungen |
Für Müllabfuhr, Urlaub oder Homeoffice würde ich deshalb fast immer den Kalender bevorzugen.
Meine Empfehlung für den Einstieg
Für die erste Kalender-Automation würde ich etwas Einfaches wählen.
Lege einen eigenen Smart-Home-Kalender an und erstelle dort einen Testtermin. Die Automation schickt zehn oder zwanzig Minuten vorher lediglich eine Push-Nachricht.
Wenn das zuverlässig funktioniert, kannst du anschließend weitere Aktionen ergänzen.
Ein guter nächster Schritt wäre beispielsweise:
- Müllabfuhr erinnern,
- Homeoffice vorbereiten,
- Urlaubsmodus aktivieren,
- Beleuchtung vor Terminen einschalten,
- Wartungstermine automatisch anlegen.
Damit bleibt die erste Automation übersichtlich und du lernst gleichzeitig, wie Kalendertrigger und die Daten des Termins funktionieren.
Häufige Fragen zu Kalender-Automationen
Kann ein Kalendertermin eine Home-Assistant-Automation starten?
Ja. Home Assistant besitzt einen eigenen Kalendertrigger. Eine Automation kann auf den Beginn oder das Ende eines Termins reagieren.
Kann die Automation schon vor dem Termin starten?
Ja. Mit einem negativen Offset kann der Trigger beispielsweise 15 Minuten, eine Stunde oder auch mehrere Stunden vor dem eigentlichen Termin ausgelöst werden.
Kann ich den Titel des Termins in einer Push-Nachricht verwenden?
Ja. Der Titel steht bei einem Kalendertrigger über trigger.calendar_event.summary zur Verfügung. Auch Beschreibung, Ort, Start und Ende können je nach Kalender verwendet werden.
Warum löst mein neuer Testtermin nicht aus?
Kalender werden nicht sekündlich neu eingelesen. Lege einen Testtermin deshalb mit ausreichend Vorlauf an. Ein Termin nur wenige Minuten in der Zukunft kann beim nächsten Kalenderabruf bereits zu spät sein.
Kann ich nur auf Termine mit einem bestimmten Namen reagieren?
Ja. Über eine Template-Bedingung kannst du den Titel des auslösenden Termins prüfen und beispielsweise nur auf „Homeoffice“, „Urlaub“ oder „Müllabfuhr“ reagieren.
Kann Home Assistant selbst Termine anlegen?
Bei unterstützten Kalenderintegrationen können Termine mit calendar.create_event erstellt werden. Dadurch lassen sich beispielsweise Wartungserinnerungen automatisch in einen Kalender schreiben.
Fazit
Kalendertrigger sind eine der Home-Assistant-Funktionen, die man leicht übersieht. Dabei lassen sich damit sehr praktische Automationen bauen.
Der große Vorteil ist die Flexibilität. Verschiebt sich ein Termin im Kalender, muss keine Automation geändert werden. Home Assistant orientiert sich automatisch am neuen Zeitpunkt.
Für den Einstieg würde ich einen eigenen Smart-Home-Kalender verwenden und zunächst eine einfache Erinnerung bauen. Danach lassen sich Termine problemlos mit Geräten, Anwesenheit, Heizung und weiteren Bedingungen kombinieren.
Besonders interessant finde ich Kalender-Automationen für Müllabfuhr, Homeoffice und Urlaub. Hier ändern sich Termine regelmäßig und genau dort spielt die kalenderbasierte Steuerung ihre Stärke aus.
Mit den zusätzlichen Termindaten kann Home Assistant außerdem deutlich mehr als nur „Termin gestartet“. Titel, Beschreibung und Ort können direkt in Automationen und Benachrichtigungen verwendet werden.

