Calendar data retrieval via "get calendar events" in automation and

text_helpers.
This commit is contained in:
2026-07-10 13:33:34 +02:00
parent 67a0a03093
commit df047f61fb
5 changed files with 177 additions and 62 deletions
+110
View File
@@ -1393,3 +1393,113 @@
device_id: 6d1be741876624a70ab5b01b54c6fd6f
entity_id: 621e4377a089b7f5d92c7c9f2cc171a1
domain: switch
- id: '1773000000001'
alias: epaperframe - Kalender Events laden
description: Ruft alle Events von calendar.privat und calendar.tkrz_kalender für heute und morgen ab und schreibt sie in input_text-Helfer.
triggers:
# Täglich um 00:01 neu holen
- trigger: time
at: '00:01:00'
id: daily
actions:
# ── Events für heute (00:00 bis 23:59) holen ──
- action: calendar.get_events
target:
entity_id:
- calendar.privat
- calendar.tkrz_kalender
data:
start_date_time: "{{ now().replace(hour=0, minute=0, second=0) }}"
end_date_time: "{{ (now().replace(hour=0, minute=0, second=0) + timedelta(days=1)) }}"
response_variable: today_evts
# ── Events für morgen (00:00 bis 23:59) holen ──
- action: calendar.get_events
target:
entity_id:
- calendar.privat
- calendar.tkrz_kalender
data:
start_date_time: "{{ (now() + timedelta(days=1)).replace(hour=0, minute=0, second=0) }}"
end_date_time: "{{ (now() + timedelta(days=1)).replace(hour=0, minute=0, second=0) + timedelta(days=1) }}"
response_variable: tomorrow_evts
# ── Helper: Events als kompakte Liste formatieren ──
# Privat heute
- set_var:
name: fmt_today_privat
value: >-
{%- set evts = today_evts['calendar.privat']['events'] if 'calendar.privat' in today_evts else [] %}
{%- set items = [] %}
{%- for e in evts[:5] %}
{%- set s = (e['summary'] | default('', true) | string)[:40] if e is mapping and 'summary' in e else '-' %}
{%- set st = e['start'] if e is mapping and 'start' in e else '' %}
{%- set hhmm = st[11:16] if st|length >= 16 else '??' %}
{%- set items = items + [hhmm ~ ' - ' ~ s] %}
{%- endfor -%}
{{ items | join('│') if items else '-' }}
# Arbeit heute
- set_var:
name: fmt_today_arbeit
value: >-
{%- set evts = today_evts['calendar.tkrz_kalender']['events'] if 'calendar.tkrz_kalender' in today_evts else [] %}
{%- set items = [] %}
{%- for e in evts[:5] %}
{%- set s = (e['summary'] | default('', true) | string)[:40] if e is mapping and 'summary' in e else '-' %}
{%- set st = e['start'] if e is mapping and 'start' in e else '' %}
{%- set hhmm = st[11:16] if st|length >= 16 else '??' %}
{%- set items = items + [hhmm ~ ' - ' ~ s] %}
{%- endfor -%}
{{ items | join('│') if items else '-' }}
# Privat morgen
- set_var:
name: fmt_tomorrow_privat
value: >-
{%- set evts = tomorrow_evts['calendar.privat']['events'] if 'calendar.privat' in tomorrow_evts else [] %}
{%- set items = [] %}
{%- for e in evts[:5] %}
{%- set s = (e['summary'] | default('', true) | string)[:40] if e is mapping and 'summary' in e else '-' %}
{%- set st = e['start'] if e is mapping and 'start' in e else '' %}
{%- set hhmm = st[11:16] if st|length >= 16 else '??' %}
{%- set items = items + [hhmm ~ ' - ' ~ s] %}
{%- endfor -%}
{{ items | join('│') if items else '-' }}
# Arbeit morgen
- set_var:
name: fmt_tomorrow_arbeit
value: >-
{%- set evts = tomorrow_evts['calendar.tkrz_kalender']['events'] if 'calendar.tkrz_kalender' in tomorrow_evts else [] %}
{%- set items = [] %}
{%- for e in evts[:5] %}
{%- set s = (e['summary'] | default('', true) | string)[:40] if e is mapping and 'summary' in e else '-' %}
{%- set st = e['start'] if e is mapping and 'start' in e else '' %}
{%- set hhmm = st[11:16] if st|length >= 16 else '??' %}
{%- set items = items + [hhmm ~ ' - ' ~ s] %}
{%- endfor -%}
{{ items | join('│') if items else '-' }}
# ── input_text Helfer schreiben ──
- action: input_text.set_value
target:
entity_id: input_text.kalender_heute_privat
data:
value: "{{ fmt_today_privat }}"
- action: input_text.set_value
target:
entity_id: input_text.kalender_heute_arbeit
data:
value: "{{ fmt_today_arbeit }}"
- action: input_text.set_value
target:
entity_id: input_text.kalender_morgen_privat
data:
value: "{{ fmt_tomorrow_privat }}"
- action: input_text.set_value
target:
entity_id: input_text.kalender_morgen_arbeit
data:
value: "{{ fmt_tomorrow_arbeit }}"