X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~matthewv/git?p=gooswapper;a=blobdiff_plain;f=gooswapper.py;fp=gooswapper.py;h=9f4cefa271a7ff60e1ef96d04db36b070e419a98;hp=dbc4204c789a1e97827be8e9a4e4dfc3e6faa421;hb=9d7a5bf70543eee9e58f3c282672cb6c52d73a17;hpb=bd3c196f38d0ab1ebb0d2da72aa116fb370bcab7 diff --git a/gooswapper.py b/gooswapper.py index dbc4204..9f4cefa 100644 --- a/gooswapper.py +++ b/gooswapper.py @@ -74,6 +74,9 @@ def get_ex_event_by_id_and_changekey(acct,itemid,changekey): l=list(acct.fetch([(itemid,changekey)])) return list(acct.fetch([(itemid,changekey)]))[0] +def get_gcal_event_by_eventid(gcal_acct,eventId,gcal_id="primary"): + return gcal_acct.events().get(calendarId=gcal_id,eventId=eventId).execute() + def get_gcal_recur_instance(gcal_acct,gcal_master,start,gcal_id="primary"): ans = gcal_acct.events().instances(calendarId=gcal_id, eventId=gcal_master, @@ -289,9 +292,13 @@ def add_ex_to_gcal(ex_acct, def del_ex_to_gcal(ex_acct, gcal_acct, events, deleted, gcal_id="primary"): for ev_id in deleted: if events[ev_id].gcal_link is not None: - gcal_acct.events().delete(calendarId=gcal_id, - eventId=events[ev_id].gcal_link, - sendUpdates="none").execute() + gevent = get_gcal_event_by_eventid(gcal_acct, + events[ev_id].gcal_link, + gcal_id) + if gevent["status"] != "cancelled": + gcal_acct.events().delete(calendarId=gcal_id, + eventId=events[ev_id].gcal_link, + sendUpdates="none").execute() def update_ex_to_gcal(ex_acct, gcal_acct,gcal_tz,