From 23fcef6ab01435b83fd131c7ca012ad42428b343 Mon Sep 17 00:00:00 2001 From: Adam Guest Date: Mon, 25 Mar 2024 15:48:50 +0100 Subject: [PATCH] Handle start and end date in async_get_events When requesting events home assistant might specify a start and end date that the events returned should be between (for example, if a user has an automation that calls calendar.get_events). The previous implementation ignored these values and so would always return a full set of events. This adds simple handling of those values to skip returning events that fall outside the range. The range passed in by home assistant may include time data, but that is not handled here because we count all pickup events as taking the whole day. --- custom_components/affalddk/calendar.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/custom_components/affalddk/calendar.py b/custom_components/affalddk/calendar.py index 212896d..2832314 100644 --- a/custom_components/affalddk/calendar.py +++ b/custom_components/affalddk/calendar.py @@ -116,6 +116,11 @@ async def async_get_events(self, hass: HomeAssistant, start_date: datetime.datet _pickup_events: PickupType = self._coordinator.data.pickup_events.get(item) if self._coordinator.data.pickup_events else None + if start_date.date() > _pickup_events.date: + continue + if end_date.date() < _pickup_events.date: + continue + _summary = NAME_LIST.get(item) _start: datetime.date = _pickup_events.date _end: datetime.date = _start + timedelta(days=1)