chiark / gitweb /
only register gcal_link if necessary
[gooswapper] / gooswapper.py
index b14a6954d5865547df89141990ccc921da4edf79..75edd3febb2c54bcd77979cfadd513b4268f169e 100644 (file)
@@ -54,7 +54,10 @@ class ex_gcal_link(exchangelib.ExtendedProperty):
     property_name = "google calendar event id"
     property_type = 'String'
 
-exchangelib.CalendarItem.register('gcal_link',ex_gcal_link)
+try:
+    exchangelib.CalendarItem.get_field_by_fieldname('gcal_link')
+except ValueError:
+    exchangelib.CalendarItem.register('gcal_link',ex_gcal_link)
 
 #useful if you want to replay an event
 def drop_from_ex_cache(itemid):
@@ -188,7 +191,8 @@ def add_ex_to_gcal(ex_acct,
                 gevent["recurrence"] = rr
                 print(gevent)
             else:
-                logger.warning("Unable to set recurrence")
+                logger.warning("Unable to set recurrence for %s" % event.item_id)
+                continue #don't make the gcal event
         gevent = gcal_acct.events().insert(calendarId=gcal_id,
                                            body=gevent).execute()
         event.gcal_link = gevent.get("id")