alias: OSIRIS Force 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: 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_calendar['calendar.osiris']['events'] %} {% set start = as_datetime(event.start) %} {% if start and start.strftime('%Y-%m-%d') == target_date and event.summary != 'ZIE PERSOONLIJK ROOSTER' %} {% set ns.events = ns.events + [event] %} {% endif %} {% endfor %} {{ ns.events | sort(attribute='start') }} 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_calendar['calendar.osiris']['events'] %} {% set start = as_datetime(event.start) %} {% if start and start.strftime('%Y-%m-%d') == target_date and event.summary != 'ZIE PERSOONLIJK ROOSTER' %} {% set ns.events = ns.events + [event] %} {% endif %} {% endfor %} {{ ns.events | sort(attribute='start') }} 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_calendar['calendar.osiris']['events'] %} {% set start = as_datetime(event.start) %} {% if start and start.strftime('%Y-%m-%d') == target_date and event.summary != 'ZIE PERSOONLIJK ROOSTER' %} {% set ns.events = ns.events + [event] %} {% endif %} {% endfor %} {{ ns.events | sort(attribute='start') }} 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_calendar['calendar.osiris']['events'] %} {% set start = as_datetime(event.start) %} {% if start and start.strftime('%Y-%m-%d') == target_date and event.summary != 'ZIE PERSOONLIJK ROOSTER' %} {% set ns.events = ns.events + [event] %} {% endif %} {% endfor %} {{ ns.events | sort(attribute='start') }} 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_calendar['calendar.osiris']['events'] %} {% set start = as_datetime(event.start) %} {% if start and start.strftime('%Y-%m-%d') == target_date and event.summary != 'ZIE PERSOONLIJK ROOSTER' %} {% 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: '{{ 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: '{{ 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: '{{ 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: '{{ 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') }}