From 4581c3664879a848da111a2caa7dbeebebd1da71 Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Mon, 3 Jul 2023 21:22:22 +0200 Subject: [PATCH] Fix datetime parameter validation for list events (#95778) --- homeassistant/components/calendar/__init__.py | 4 ++-- homeassistant/components/demo/calendar.py | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/calendar/__init__.py b/homeassistant/components/calendar/__init__.py index b22ac98b0dc..3286dd152e8 100644 --- a/homeassistant/components/calendar/__init__.py +++ b/homeassistant/components/calendar/__init__.py @@ -264,8 +264,8 @@ SERVICE_LIST_EVENTS_SCHEMA: Final = vol.All( cv.has_at_most_one_key(EVENT_END_DATETIME, EVENT_DURATION), cv.make_entity_service_schema( { - vol.Optional(EVENT_START_DATETIME): datetime.datetime, - vol.Optional(EVENT_END_DATETIME): datetime.datetime, + vol.Optional(EVENT_START_DATETIME): cv.datetime, + vol.Optional(EVENT_END_DATETIME): cv.datetime, vol.Optional(EVENT_DURATION): vol.All( cv.time_period, cv.positive_timedelta ), diff --git a/homeassistant/components/demo/calendar.py b/homeassistant/components/demo/calendar.py index 73b45a55640..92dbf8d47b8 100644 --- a/homeassistant/components/demo/calendar.py +++ b/homeassistant/components/demo/calendar.py @@ -67,6 +67,14 @@ class DemoCalendar(CalendarEntity): end_date: datetime.datetime, ) -> list[CalendarEvent]: """Return calendar events within a datetime range.""" + if start_date.tzinfo is None: + start_date = start_date.replace( + tzinfo=dt_util.get_time_zone(hass.config.time_zone) + ) + if end_date.tzinfo is None: + end_date = end_date.replace( + tzinfo=dt_util.get_time_zone(hass.config.time_zone) + ) assert start_date < end_date if self._event.start_datetime_local >= end_date: return []