Trigger für zukünftige Ereignisse im Kalender

Hallo, ich bin vor kurzem von ioBroker auf HA umgestiegen. In ioBroker gab es einen Adapter, der jeweils einen Datenpunkt (Entity) für die heutigen Ereignisse und auch die nächsten Tage in einem Kalender (z.B. Google) angelegt hatte. Dieser Datenpunkt wurde dann entweder mit True oder False ausgegeben, je nachdem ob an dem entsprechenden Tag ein bestimmtes Ereignis was oder nicht.
Einfach gesagt, ich bräuchte in HA einen Weg, auf zukünftige Ereignisse zu reagieren.
Um konkreter zu werden: Ich hatte in ioBroker unter anderem eine Automation, welche um 20 Uhr überprüft hatte, ob ich am nächsten Tag zur Arbeit muss oder nicht (dieser Termin war nicht als Ganztagesereignis, sondern z.B. von 8.00 Uhr bis 17.00 Uhr angelegt). Wenn das Ergebnis True war, wurde dann auf dem Echo ein Wecker gestellt.
Bisher hatte ich nichts gefunden, was mir zukünftige Kalendereinträge auslesen kann (wenn möglich in Node Red).

Ich hab mir so ne automation zusammen gebastelt.
Funktioniert, geht aber sicher auch schöner.

alias: Wecker
description: ""
trigger:
  - platform: template
    value_template: >-
      {{ ((state_attr('calendar.main', 'start_time') | as_datetime | as_local -
      now()).total_seconds() / 60) | int - 720 == as_timestamp(now()) }}
condition: []
action:
  - alias: Arbeiten
    if:
      - condition: state
        entity_id: calendar.main
        attribute: message
        state: Arbeiten
    then:
      - service: notify.mobile_app_oppo
        data:
          message: command_broadcast_intent
          data:
            intent_package_name: com.urbandroid.sleep
            intent_extras: alarm_label:work_samstag,alarm_enabled:true
            intent_action: com.urbandroid.sleep.alarmclock.ALARM_STATE_CHANGE
      - service: notify.mobile_app_oppo
        data:
          message: "Wecker gestellt "
      - delay:
          hours: 12
          minutes: 0
          seconds: 0
          milliseconds: 0
      - service: notify.mobile_app_oppo
        data:
          message: command_broadcast_intent
          data:
            intent_package_name: com.urbandroid.sleep
            intent_extras: alarm_label:work_samstag,alarm_enabled:false
            intent_action: com.urbandroid.sleep.alarmclock.ALARM_STATE_CHANGE
      - service: notify.mobile_app_oppo
        data:
          message: " Samstag Wecker wieder aus "
  - alias: Frei
    if:
      - condition: state
        entity_id: calendar.main
        attribute: message
        state: Frei
    then:
      - service: notify.mobile_app_oppo
        data:
          message: command_broadcast_intent
          data:
            intent_package_name: com.urbandroid.sleep
            intent_extras: alarm_label:work,alarm_enabled:false
            intent_action: com.urbandroid.sleep.alarmclock.ALARM_STATE_CHANGE
      - service: notify.mobile_app_oppo
        data:
          message: "Wecker aus "
      - delay:
          hours: 12
          minutes: 0
          seconds: 0
          milliseconds: 0
      - service: notify.mobile_app_oppo
        data:
          message: command_broadcast_intent
          data:
            intent_package_name: com.urbandroid.sleep
            intent_extras: alarm_label:work,alarm_enabled:true
            intent_action: com.urbandroid.sleep.alarmclock.ALARM_STATE_CHANGE
      - service: notify.mobile_app_oppo
        data:
          message: "Wecker wieder an "
mode: single