Fix datetime parameter validation for list events (#95778)

pull/95808/head
Paul Bottein 2023-07-03 21:22:22 +02:00 committed by GitHub
parent 2f73be0e50
commit 4581c36648
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 2 deletions

View File

@ -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
),

View File

@ -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 []