1
votes

I have discovered duplications of instances of recurring events in my db because the google event id had changed and I can't reproduce the change.

The googleEventId changed from RecurringEventID_DateofInstance to NewRecurringEventID_DateOfInstance. (i.e. 5uhhll3sgl64h7hl93f5j0exsf_20181217T184500Z to 5uhhll3sgl64h7hl93f5j0exsf_R20180709T174500_20181217T184500Z

The NewRecurringEventID = PreviousRecurringEventID_R+DateRecurringEventsEditedFollowingEvents (i.e. 5uhhll3sgl64h7hl93f5j0exsf_R20180709T174500).

Some Background: I am using the Google Events List api and have ShowDeleted=true and SingleInstances=true

I've read the following post which explains why the recurring_id changes if something like the name of the event (not something that changes the recurrence pattern) is updated for the instance that was edited and all following event instances. - When recurring id is generated with format previous_event_id+_R+date

I've tried replicating the issue, but when i change the event name for this event and all following event instances, the recurring_id changes as expected but the google event id stays as the original id. (which is how I would hope the google calendar events api would work)

I want to know what can cause the google event id to update to become the new recurringID_DateOfInstance instead of remaining as oldRecurringID_DateOfInstance?

Thanks for the help

1
Also note that when changing the time of a recurring event for "this and the following events", google creates a complete new series in fact (with a new recurring event id). Please vote here if you are affected issuetracker.google.com/u/1/issues/167405800LukeSolar

1 Answers

3
votes

Google Event IDs can change when events are changed from a single event to a recurring event or a recurring event becomes a single event (not repeating).

When a user edits a single event to a recurring event, the google event recurring id equals the old event id and the event id becomes the old event id plus the date of the occurrence appended to it.

ex: google event id = '5omhetdbudsbrh9cmh0p0ucs0k' google recurring event id = ''

then user changes event to make it a recurring event

google event id = '5omhetdbudsbrh9cmh0p0ucs0k_20180910T230000Z' google recurring event id = '5omhetdbudsbrh9cmh0p0ucs0k'

then user changes event to a single (non-recurring event)

google event id = '5omhetdbudsbrh9cmh0p0ucs0k' google recurring event id = ''