@@ -598,11 +598,22 @@ async def update(self, href, item, etag):
598
598
except aiohttp .ClientResponseError as e :
599
599
if e .status == 409 :
600
600
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
604
615
else :
605
- raise e
616
+ raise
606
617
return etag
607
618
608
619
async def upload (self , item : Item ):
@@ -612,11 +623,22 @@ async def upload(self, item: Item):
612
623
except aiohttp .ClientResponseError as e :
613
624
if e .status == 409 :
614
625
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
618
640
else :
619
- raise e
641
+ raise
620
642
return rv
621
643
622
644
async def delete (self , href , etag ):
0 commit comments