@@ -597,11 +597,22 @@ async def update(self, href, item, etag):
597597 except aiohttp .ClientResponseError as e :
598598 if e .status == 409 :
599599 dav_logger .debug ("Conflict, will delete old event and recreate it." )
600- await self .delete (self ._normalize_href (href ), None )
601- dav_logger .debug ("Now trying again" )
602- href , etag = await self ._put (self ._normalize_href (href ), item , None )
600+ try :
601+ await self .delete (self ._normalize_href (href ), None )
602+ dav_logger .debug ("Now trying again" )
603+ rv = await self ._put (self ._normalize_href (href ), item , None )
604+ except aiohttp .ClientResponseError as delerr :
605+ dav_logger .debug (f"delerr.status = { delerr .status } " )
606+ if delerr .status == 404 :
607+ dav_logger ("Old event not found, ignoring" )
608+ rv = None , None
609+ else :
610+ raise
611+ elif e .status == 403 :
612+ dav_logger .debug ("Google Calendar refusing update, ignore" )
613+ rv = None , None
603614 else :
604- raise e
615+ raise
605616 return etag
606617
607618 async def upload (self , item : Item ):
@@ -611,11 +622,22 @@ async def upload(self, item: Item):
611622 except aiohttp .ClientResponseError as e :
612623 if e .status == 409 :
613624 dav_logger .debug ("Conflict, will delete old event and recreate it." )
614- await self .delete (href , None )
615- dav_logger .debug ("Now trying again" )
616- rv = await self ._put (href , item , None )
625+ try :
626+ await self .delete (href , None )
627+ dav_logger .debug ("Now trying again" )
628+ rv = await self ._put (href , item , None )
629+ except aiohttp .ClientResponseError as delerr :
630+ dav_logger .debug (f"delerr.status = { delerr .status } " )
631+ if delerr .status == 404 :
632+ dav_logger .debug ("Old event not found, ignoring" )
633+ rv = None , None
634+ else :
635+ raise
636+ elif e .status == 403 :
637+ dav_logger .debug ("Google Calendar refusing update, ignore" )
638+ rv = None , None
617639 else :
618- raise e
640+ raise
619641 return rv
620642
621643 async def delete (self , href , etag ):
0 commit comments