From 149f0316f2800b467ce2d126b4b8a008104cf350 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sun, 23 Aug 2026 22:16:12 +0200 Subject: [PATCH] Use the non-deprecated vobject_instance in caldav (#179819) Co-authored-by: Claude --- homeassistant/components/caldav/coordinator.py | 14 +++++++------- homeassistant/components/caldav/todo.py | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/homeassistant/components/caldav/coordinator.py b/homeassistant/components/caldav/coordinator.py index 65aec441be61..d711e0bb8103 100644 --- a/homeassistant/components/caldav/coordinator.py +++ b/homeassistant/components/caldav/coordinator.py @@ -67,10 +67,10 @@ class CalDavUpdateCoordinator(DataUpdateCoordinator[CalendarEvent | None]): ) event_list = [] for event in vevent_list: - if not hasattr(event.instance, "vevent"): + if not hasattr(event.vobject_instance, "vevent"): _LOGGER.warning("Skipped event with missing 'vevent' property") continue - vevent = event.instance.vevent + vevent = event.vobject_instance.vevent if not self.is_matching(vevent, self.search): continue event_list.append( @@ -122,10 +122,10 @@ class CalDavUpdateCoordinator(DataUpdateCoordinator[CalendarEvent | None]): # and they would not be properly parsed using their original start/end dates. new_events = [] for event in results: - if not hasattr(event.instance, "vevent"): + if not hasattr(event.vobject_instance, "vevent"): _LOGGER.warning("Skipped event with missing 'vevent' property") continue - vevent = event.instance.vevent + vevent = event.vobject_instance.vevent for start_dt in vevent.getrruleset() or []: _start_of_today: date | datetime _start_of_tomorrow: datetime | date @@ -138,7 +138,7 @@ class CalDavUpdateCoordinator(DataUpdateCoordinator[CalendarEvent | None]): _start_of_tomorrow = start_of_tomorrow if _start_of_today <= start_dt < _start_of_tomorrow: new_event = event.copy() - new_vevent = new_event.instance.vevent # type: ignore[attr-defined] + new_vevent = new_event.vobject_instance.vevent # type: ignore[attr-defined] if hasattr(new_vevent, "dtend"): dur = new_vevent.dtend.value - new_vevent.dtstart.value new_vevent.dtend.value = start_dt + dur @@ -147,9 +147,9 @@ class CalDavUpdateCoordinator(DataUpdateCoordinator[CalendarEvent | None]): elif _start_of_tomorrow <= start_dt: break vevents = [ - event.instance.vevent + event.vobject_instance.vevent for event in results + new_events - if hasattr(event.instance, "vevent") + if hasattr(event.vobject_instance, "vevent") ] # dtstart can be a date or datetime depending if the event lasts a diff --git a/homeassistant/components/caldav/todo.py b/homeassistant/components/caldav/todo.py index 6f652339eb8f..6a88445e8a54 100644 --- a/homeassistant/components/caldav/todo.py +++ b/homeassistant/components/caldav/todo.py @@ -73,8 +73,8 @@ def _get_todo_items(calendar: caldav.Calendar) -> list[TodoItem]: def _todo_item(resource: caldav.CalendarObjectResource) -> TodoItem | None: """Convert a caldav Todo into a TodoItem.""" if ( - not hasattr(resource.instance, "vtodo") - or not (todo := resource.instance.vtodo) + not hasattr(resource.vobject_instance, "vtodo") + or not (todo := resource.vobject_instance.vtodo) or (uid := get_attr_value(todo, "uid")) is None or (summary := get_attr_value(todo, "summary")) is None ):