diff --git a/davinci/caldav/models.py b/davinci/caldav/models.py index f19a79e..394bfb6 100644 --- a/davinci/caldav/models.py +++ b/davinci/caldav/models.py @@ -1,3 +1,4 @@ +import logging from typing import List, Tuple, Optional import caldav @@ -74,8 +75,10 @@ class CalDAVCalendar(models.Model): :return Amount of events added, updated, and deleted :rtype Tuple[int, int, int] """ + logger = logging.getLogger("davinci.icalendar.ICalSync.upload_events") calendar = self.get_calendar() if calendar is None: + logger.error(f"No calendar found on url '{self.calendar_url}'") raise ValueError(f"No calendar found on url '{self.calendar_url}'") # Keep track of which events were already in the calendar @@ -97,16 +100,24 @@ class CalDAVCalendar(models.Model): if event.uid in purge_uids: # Need to overwrite - cevent = calendar.event_by_uid(event.uid) - cevent.data = vcal.fix(ev) - cevent.save() + try: + cevent = calendar.event_by_uid(event.uid) + cevent.data = vcal.fix(ev) + cevent.save() + except Exception as e: + logger.error(f"Error during saving of event {event.uid}: {e}") + logger.error(f"======EVENT======\n{ev}\n=================") purge_uids.remove(event.uid) updated += 1 else: - calendar.save_event(ev) + try: + calendar.save_event(ev) + except Exception as e: + logger.error(f"Error during saving of event {event.uid}: {e}") + logger.error(f"======EVENT======\n{ev}\n=================") added += 1 # Purge old events