alias: OSIRIS Update Week mode: single sequence: - action: calendar.get_events target: entity_id: calendar.osiris data: start_date_time: >- {{ (today_at('00:00') - timedelta(days=today_at('00:00').weekday())).strftime('%Y-%m-%d 00:00:00') }} end_date_time: >- {{ (today_at('00:00') - timedelta(days=today_at('00:00').weekday()) + timedelta(days=5)).strftime('%Y-%m-%d 00:00:00') }} response_variable: osiris_calendar - variables: osiris_events: | {{ osiris_calendar['calendar.osiris']['events'] | rejectattr('summary', 'equalto', 'ZIE PERSOONLIJK ROOSTER') | list }} - if: - condition: template value_template: | {{ states('input_datetime.osiris_maandag')[0:10] != (today_at('00:00') - timedelta(days=today_at('00:00').weekday())).strftime('%Y-%m-%d') }} then: - variables: maandag_events: > {% set ns = namespace(events=[]) %} {% set target_date = (today_at('00:00') - timedelta(days=today_at('00:00').weekday())).strftime('%Y-%m-%d') %} {% for event in osiris_events %} {% set start = as_datetime(event.start) %} {% if start and start.strftime('%Y-%m-%d') == target_date %} {% set ns.events = ns.events + [event] %} {% endif %} {% endfor %} {{ ns.events | sort(attribute='start') }} - if: - condition: template value_template: '{{ maandag_events | length > 0 }}' then: - action: input_datetime.set_datetime target: entity_id: input_datetime.osiris_maandag data: datetime: > {{ (as_datetime(maandag_events[0].start) - timedelta(minutes=90)).strftime('%Y-%m-%d %H:%M:%S') }} - if: - condition: template value_template: | {{ states('input_datetime.osiris_dinsdag')[0:10] != (today_at('00:00') - timedelta(days=today_at('00:00').weekday() - 1)).strftime('%Y-%m-%d') }} then: - variables: dinsdag_events: > {% set ns = namespace(events=[]) %} {% set target_date = (today_at('00:00') - timedelta(days=today_at('00:00').weekday() - 1)).strftime('%Y-%m-%d') %} {% for event in osiris_events %} {% set start = as_datetime(event.start) %} {% if start and start.strftime('%Y-%m-%d') == target_date %} {% set ns.events = ns.events + [event] %} {% endif %} {% endfor %} {{ ns.events | sort(attribute='start') }} - if: - condition: template value_template: '{{ dinsdag_events | length > 0 }}' then: - action: input_datetime.set_datetime target: entity_id: input_datetime.osiris_dinsdag data: datetime: > {{ (as_datetime(dinsdag_events[0].start) - timedelta(minutes=90)).strftime('%Y-%m-%d %H:%M:%S') }} - if: - condition: template value_template: | {{ states('input_datetime.osiris_woensdag')[0:10] != (today_at('00:00') - timedelta(days=today_at('00:00').weekday() - 2)).strftime('%Y-%m-%d') }} then: - variables: woensdag_events: > {% set ns = namespace(events=[]) %} {% set target_date = (today_at('00:00') - timedelta(days=today_at('00:00').weekday() - 2)).strftime('%Y-%m-%d') %} {% for event in osiris_events %} {% set start = as_datetime(event.start) %} {% if start and start.strftime('%Y-%m-%d') == target_date %} {% set ns.events = ns.events + [event] %} {% endif %} {% endfor %} {{ ns.events | sort(attribute='start') }} - if: - condition: template value_template: '{{ woensdag_events | length > 0 }}' then: - action: input_datetime.set_datetime target: entity_id: input_datetime.osiris_woensdag data: datetime: > {{ (as_datetime(woensdag_events[0].start) - timedelta(minutes=90)).strftime('%Y-%m-%d %H:%M:%S') }} - if: - condition: template value_template: | {{ states('input_datetime.osiris_donderdag')[0:10] != (today_at('00:00') - timedelta(days=today_at('00:00').weekday() - 3)).strftime('%Y-%m-%d') }} then: - variables: donderdag_events: > {% set ns = namespace(events=[]) %} {% set target_date = (today_at('00:00') - timedelta(days=today_at('00:00').weekday() - 3)).strftime('%Y-%m-%d') %} {% for event in osiris_events %} {% set start = as_datetime(event.start) %} {% if start and start.strftime('%Y-%m-%d') == target_date %} {% set ns.events = ns.events + [event] %} {% endif %} {% endfor %} {{ ns.events | sort(attribute='start') }} - if: - condition: template value_template: '{{ donderdag_events | length > 0 }}' then: - action: input_datetime.set_datetime target: entity_id: input_datetime.osiris_donderdag data: datetime: > {{ (as_datetime(donderdag_events[0].start) - timedelta(minutes=90)).strftime('%Y-%m-%d %H:%M:%S') }} - if: - condition: template value_template: | {{ states('input_datetime.osiris_vrijdag')[0:10] != (today_at('00:00') - timedelta(days=today_at('00:00').weekday() - 4)).strftime('%Y-%m-%d') }} then: - variables: vrijdag_events: > {% set ns = namespace(events=[]) %} {% set target_date = (today_at('00:00') - timedelta(days=today_at('00:00').weekday() - 4)).strftime('%Y-%m-%d') %} {% for event in osiris_events %} {% set start = as_datetime(event.start) %} {% if start and start.strftime('%Y-%m-%d') == target_date %} {% set ns.events = ns.events + [event] %} {% endif %} {% endfor %} {{ ns.events | sort(attribute='start') }} - if: - condition: template value_template: '{{ vrijdag_events | length > 0 }}' then: - action: input_datetime.set_datetime target: entity_id: input_datetime.osiris_vrijdag data: datetime: > {{ (as_datetime(vrijdag_events[0].start) - timedelta(minutes=90)).strftime('%Y-%m-%d %H:%M:%S') }}