Looks like calendar.list_events has been deprecated for calendar.get_events. This adds another layer to the data returned.
I was also unable to get select('search', 'my string') to work. search wasn’t a valid filter for select. I had to use equalto
alias: Calendar 1-Day Agenda to Event
trigger:
- platform: time
at: "00:01:00"
condition: []
action:
- service: calendar.get_events
data:
start_date_time: "{{ today_at() }}"
end_date_time: "{{ today_at('23:59:59') }}"
target:
entity_id: calendar.my_calendar
response_variable: agenda
- event: custom_calendar_agenda
event_data:
calendar: my_calendar
cal_events: "{{ agenda }}"
mode: single
Binary Sensor:
template:
- trigger:
- platform: event
event_type: custom_calendar_agenda
event_data:
calendar: my_calendar
binary_sensor:
- name: Calendar Agenda Search "My String"
unique_id: custom_calendar_agenda_search_01_001
state: |
{{ trigger.event.data.cal_events['calendar.my_calendar']['events']
| map(attribute='summary')
| select('equalto', 'my string')
| list | count > 0 }}