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