X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~matthewv/git?a=blobdiff_plain;f=gooswapper.py;fp=gooswapper.py;h=d9833036f46d062346df88728296cc27e17ecf77;hb=f490183b1024e3a86df726f51699d9f93a35bd15;hp=8009a978670dca3521afa5f64d2375e0bf2c385f;hpb=2b80433e6fa6afb092d28241cf576d0ccd853ce2;p=gooswapper diff --git a/gooswapper.py b/gooswapper.py index 8009a97..d983303 100644 --- a/gooswapper.py +++ b/gooswapper.py @@ -267,14 +267,24 @@ def update_ex_to_gcal(ex_acct, gcal_id="primary"): for ev_id in changed: event = get_ex_event_by_itemid(ex_acct.calendar,ev_id) - if not event.is_recurring: - gevent = build_gcal_event_from_ex(event,gcal_tz) - gevent = gcal_acct.events().update(calendarId=gcal_id, + gevent = build_gcal_event_from_ex(event,gcal_tz) + if event.type=="RecurringMaster": + rr = rrule_from_ex(event,gcal_tz) + if rr is not None: + gevent["recurrence"] = rr + if event.deleted_occurrences or \ + event.modified_occurrences: + modify_recurring(ex_acct,gcal_acct,gcal_tz, + events,event,gcal_id) + event.refresh() #changekey is updated by the above + events[event.item_id] = events[event.item_id]._replace(changekey=event.changekey,gcal_link=event.gcal_link) + else: + logger.warning("Unable to set recurrence for %s" % event.item_id) + continue #don't make the gcal event + gevent = gcal_acct.events().update(calendarId=gcal_id, eventId=event.gcal_link, body=gevent, sendUpdates="none").execute() - else: - logger.warning("recurring events not yet supported") def match_ex_to_gcal(ex_acct,gcal_acct,gcal_tz,events,gcal_id="primary"): recur = 0