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