ich würde gerne das einmal am Tag meine Termine in einem Geburtstagskalender abgerufen sind und mir via Notify als Liste geschickt werden. Das funktioniert auch schon soweit sehr gut.
Nun würde ich gerne jeden einzelen Termin in eine ToDo-Liste schreiben.
z.B. ToDo-Liste: Termine
- Geburtstag 1
Beginn 18 Uhr
- Geburtstag 2
Beginn 19 Uhr
alias: Termine pro Tag/ToDo
description: >-
Erzeugt eine Benachrichtigung pro Tag um 7:30 Uhr, welche auch einen
ToDo-Eintrag in der Termine ToDo-Liste erzeugt.
triggers:
- trigger: time
at: "07:30:00"
- trigger: homeassistant
event: start
conditions: []
actions:
- action: calendar.get_events
metadata: {}
data:
duration:
hours: 48
minutes: 0
seconds: 0
target:
entity_id: calendar.stephi_martin
response_variable: antwort
- action: notify.mobile_app_iphone_von_martin
metadata: {}
data:
title: "📅 Privat Termine für den: {{ now().strftime('%d.%m.%Y') }}:"
message: >-
{%- for event in antwort["calendar.stephi_martin"]["events"] %}
{{"\n"}}- {{ as_timestamp(event.start) | timestamp_custom('%H:%M') }}:
{{ event.summary }}
{% endfor -%}
data:
notification_icon: mdi:calendar
push:
interruption-level: critical
- action: todo.add_item
metadata: {}
data:
item: >-
{% set events = state_attr('calendar.stephi_martin', 'events') %}
{%- for event in antwort["calendar.stephi_martin"]["events"] %}
{{ event.summary }}
{% endfor -%}
description: >-
{% set events = state_attr('calendar.stephi_martin', 'events') %}
{%- for event in antwort["calendar.stephi_martin"]["events"] %}
{{ as_timestamp(event.start) | timestamp_custom('%H:%M') }}
{% endfor -%}
target:
entity_id: todo.termine
mode: queued
Es müssen auch nicht immer ganztägige Events sein es kann auch sein das dass Event Zeitlich begrenzt ist an einem Tag.
Bei meiner Automatisierung werden zwar ToDo Einträge erzeugt aber immer nur einer mit mehreren Events drin. Ich würde das ganze halt gerne als ToDo-Task pro Event haben.
Ich habe es nicht selbst mit Kalender Items probiert aber eigentlich müßte es eine Liste sein, die man durchiterieren könnte (alternativ holt man die sich über einen eigenen Template Sensor und macht eine Liste draus). Dann nimmt man ein Wiederholen - für jedes Element … und triggert jedesmal action: todo.add_item
Hier ist ein funktionierendes Beispiel von mir in einem Script mit dem ich aber von einer Todo Liste Items lösche.
@Bacardi Du bist ein schatz. Vielen Lieben dank dir.
Ich muss ganz ehrlich sagen ich stehe da gerad ein bissel auf dem schlauch.
Ich habe mir einen Sensor angelegt der mir Diverse Attribute pro Event setzt.
Du mußt hier aber sehr aufpassen. Sollte sich das Datumsformat in Deinem Kalender aus irgendein Grund von DD.MM.YYYY abweichen, wird die Mechanik nicht funktionieren. In Deinem Sensor würde ich sowas einbauen wie if kein valides Datum, nimm das von heute {{ now().strftime('%Y-%m-%d') }}
Super Sache. Vom Prinzip her ziemlich selbsterklärend. Hatte mir so etwas auch schon gedacht, nur tue ich mich irgendwie sehr schwer in der Doku die richtigen Einträge hierzu zu finden. Ich wüsste jetzt z.B. spontan nicht wo ich in der Doku was zum “Datum.split” finde. Das selbe hatte ich auch zuvor bei der “sequence” Sache.
Vielen dank dir für die ganze mühe du hast mir bei meinem Problem mehr als nur geholfen und ich glaube auch übergreifend auch andere Themen in HA sind ein paar Groschen gefallen bei mir. Hoffe dir geht es auch wieder besser.
Erst wollte ich gar nicht weil ich die ToDo als frickelig in Erinnerung hatte, wie hier ja auch sehen. Aber seit dem dem habe ich den Umgang mit ChatGPT und nicht bedingungslosem Folgen der Ergebnisse erlernt. Die Idee einen den Datumstring einfach in eine Liste zu wandeln und die Bestandteile neu zusammenzusetzen, hatte ich auch von da und finde ihn super.