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