Get_events: Problem beim unterscheiden in Ganztages Events und Zeitlich begrenzten Events

Hallo zusammen,

ich habe vor mir ein Sensor Template für die Tagesaktuellen Events aus meinem Kalender anzulegen. Nun kann es aber vorkommen das:

  1. Event ist irgendwann am Tag und ist irgendwann beendet
  2. Event ist ein Ganztages Event
  3. Event ist ein Ganztagesevent welches aber über den Tag hinaus geht und z.B. erst 6 Tage später beendet ist.

Hier ein Bsp.: einiger Termine:

  - trigger:
      - trigger: time_pattern
        minutes: /15
      - trigger: homeassistant
        event: start

    #----------------------------------------------------------------------------------------
    # Aktion - Events abrufen (Heute)
    #----------------------------------------------------------------------------------------
    action:
      - action: calendar.get_events
        target:
          entity_id:
            - calendar.stephi_martin
        data:
          start_date_time: "{{ as_timestamp(now()) | timestamp_custom('%Y-%m-%d 00:00:01') }}"
          end_date_time: "{{ as_timestamp(now()) | timestamp_custom('%Y-%m-%d 23:59:59') }}"
        response_variable: today_events

    #----------------------------------------------------------------------------------------
    # Sensor mit Attributen anlegen
    #----------------------------------------------------------------------------------------
    sensor:
      - name: Termine Heute
        unique_id: termine_heute
        state: "{{ today_events['calendar.stephi_martin'].events | count() }}"
        attributes:
          termine_heute: >
            {%- set event_list = [] %}
            {%- for event in today_events['calendar.stephi_martin'].events %}
              {%- set event_details = {} %}
              
              # Prüfen, ob das Event ein ganztägiges Event ist
              {%- if event.all_day %}
                {%- set event_details = {
                  'Termin': event.summary,
                  'Beginn': event.start_date,
                  'Ende': event.end_date,
                  'Dauer': (as_timestamp(event.end_date) - as_timestamp(event.start_date)) | int,
                  'Hinweis': event.description
                } %}
              {%- else %}
                # Wenn das Event zeitlich begrenzt ist
                {%- set event_details = {
                  'Termin': event.summary,
                  'Beginn': event.start_time,
                  'Ende': event.end_time,
                  'Dauer': (as_timestamp(event.end_time) - as_timestamp(event.start_time)) | int,
                  'Hinweis': event.description
                } %}
              {%- endif %}
              
              # Liste der Ereignisse erstellen
              {%- set event_list = event_list + [event_details] %}
            {%- endfor %}
            {{ event_list }}

Im Sensor State wird mir aber nur “unavailable” angezeigt.

Lg Martin