Automatisierung oder Blueprint für Google Kalender für heutige Termin

Hey :slight_smile:

ich würde gerne eine Automatisierung bauen, die morgens um 7 Uhr an Telegram eine Notification mit den heutigen Terminen verschickt.

Weiß jemand, wie das geht?
Blueprint wäre auch voll in Ordnung, habe aber leider nichts gefunden.
Es stehen Testweise mindestens 2 Termin drin, aber die Automatisierung gibt “Keine Termine für heute geplant.” aus.

alias: "Tägliche Kalenderübersicht"
description: "Sendet jeden Morgen um 7 Uhr eine chronologische Übersicht aller Termine des Tages"
trigger:
  - platform: time
    at: "07:00:00"
condition: []
action:
  - service: notify.telegram_gruppe
    data:
      message: >-
        {% set all_events = [] %}
        {% set debug_text = "DEBUG:\n" %}
        {% set calendars = ['calendar.familie'] %}
        {% for calendar in calendars %}
          {% set debug_text = debug_text ~ "\nPrüfe Kalender: " ~ calendar %}
          {% set cal_events = state_attr(calendar, 'events') %}
          {% if cal_events != None %}
            {% set debug_text = debug_text ~ "\nEvents gefunden: " ~ cal_events|length %}
            {% for event in cal_events %}
              {% if event.start.date() == now().date() %}
                {% set all_events = all_events + [{'start': event.start, 'summary': event.summary}] %}
                {% set debug_text = debug_text ~ "\n- " ~ event.summary ~ " um " ~ event.start.strftime('%H:%M') %}
              {% endif %}
            {% endfor %}
          {% else %}
            {% set debug_text = debug_text ~ "\nKeine Events gefunden" %}
          {% endif %}
          {% set debug_text = debug_text ~ "\n---" %}
        {% endfor %}

        {{ debug_text }}

        📅 Termine für {{ now().strftime('%d.%m.%Y') }}:

        {% if all_events|length > 0 %}
          {% set sorted_events = all_events|sort(attribute='start') %}
          {% for event in sorted_events %}
            • {{ event.start.strftime('%H:%M') }} - {{ event.summary }}
          {% endfor %}
        {% else %}
          Keine Termine für heute geplant.
        {% endif %}
mode: single

Variablen Scope reicht nicht über die for Schleife hinaus. Du mußt die als namespace definieren.

EDIT:
Ich habe noch etwas probiert, neben o.a. Variablen Scope ist auch die Zeile ein Problem

{% set cal_events = state_attr(calendar, 'events') %}

Ich vermute, man kann nur den nächsten Termin und dessen Attribute abfragen und leider nicht alle events.
Dieses Schnipsel sollte Dir den nächsten Termin von familie geben.

{% set event = states.calendar['familie'] %}
{% if event and event.attributes.message %}
  Nächster Termin: {{ event.attributes.message }}
  Startzeit: {{ event.attributes.start_time }}
  Endzeit: {{ event.attributes.end_time }}
{% else %}
  Kein Termin verfügbar.
{% endif %}