Nylas Webhook sending new Master for updated event

Hi there,

Recently i faced this issue where lets say I update a recurring event and click “for this and following events”, I get two webhook, both are event.updated. One webhook is with the old event ID and in the recurrence I get an “UNTIL=20261016T185959Z”. This is fine as it tells me to invalidate all events scheduled for that master from after UNTIL (i store calendar events 1 month in advance). I also get another webhook for this singular update with a completely new master id and a recurrence which carries the changes to the time.

The issue is that I have no idea of knowing that both webhook are linked, there are a lot of downstream implications of the events which are created 1 month in advance and i cant simply just insert new rows, I rather want to modify the id.

I have attached the json payloads below. One is for the old event followed by the one for the new event:

{
“uuid”: “01a11133-ab8f-7542-b132-6187481dccab”,
“trace_id”: “B2992439142FC4C8FD712EB7B153EEB0”,
“span_id”: “6CF0659AC2DBABBC”,
“body”: "Request received: ",
“attributes”: {
“body.data.application_id”: “”,
“body.data.object.busy”: “true”,
“body.data.object.calendar_id”: “[REDACTED_EMAIL]”,
“body.data.object.created_at”: “1707936887”,
“body.data.object.creator.email”: “[REDACTED_EMAIL]”,
“body.data.object.creator.name”: “”,
“body.data.object.description”: “Take out 45 min every weekend day to learn something new or polish existing skills. Use the time before Dhuhr for learning before getting busy during the day.”,
“body.data.object.grant_id”: “[REDACTED_GRANT_ID]”,
“body.data.object.hide_participants”: “false”,
“body.data.object.html_link”: “[REDACTED_LINK]”,
“body.data.object.ical_uid”: “9qcoj1dqci4rc97q4f4rmgb0vt@google.com”,
“body.data.object.id”: “9qcoj1dqci4rc97q4f4rmgb0vt”,
“body.data.object.object”: “event”,
“body.data.object.organizer.email”: “[REDACTED_EMAIL]”,
“body.data.object.organizer.name”: “”,
“body.data.object.participants”: “”,
“body.data.object.read_only”: “false”,
“body.data.object.recurrence”: “[“RRULE:FREQ=WEEKLY;WKST=MO;UNTIL=20261016T185959Z;INTERVAL=1;BYDAY=SA,SU”]”,
“body.data.object.reminders.overrides”: “”,
“body.data.object.reminders.use_default”: “true”,
“body.data.object.resources”: “”,
“body.data.object.sequence”: “1”,
“body.data.object.status”: “confirmed”,
“body.data.object.text_description”: “Take out 45 min every weekend day to learn something new or polish existing skills. Use the time before Dhuhr for learning before getting busy during the day.”,
“body.data.object.title”: “Technical Learning”,
“body.data.object.updated_at”: “1791289954”,
“body.data.object.visibility”: “default”,
“body.data.object.when.end_time”: “1791619200”,
“body.data.object.when.end_timezone”: “Asia/Karachi”,
“body.data.object.when.object”: “timespan”,
“body.data.object.when.start_time”: “1791616500”,
“body.data.object.when.start_timezone”: “Asia/Karachi”,
“body.id”: “mv26s9wVCwjubVeBUAcKjW9956”,
“body.source”: “/google/events/realtime”,
“body.specversion”: “1.0”,
“body.time”: “1791289956”,
“body.type”: “event.updated”,
“body.webhook_delivery_attempt”: “1”,
“method”: “POST”,
“params.0”: “”,
“reqId”: “”
}
}

New ID Payload:
{ “uuid”: “01a11133-9d3b-7302-852e-271069fed100”, “trace_id”: “2DE4E40CC13D20E32E32F9851D7EBBE4”, “span_id”: “B69D6EAC9D7B2711”, “body”: “Request received: ”, “attributes”: { “body.data.application_id”: “”, “body.data.object.busy”: “true”, “body.data.object.calendar_id”: “[REDACTED_EMAIL]”, “body.data.object.created_at”: “1707936887”, “body.data.object.creator.email”: “[REDACTED_EMAIL]”, “body.data.object.creator.name”: “”, “body.data.object.description”: “

Take out 45 min every weekend day to learn something new or polish existing skills. Use the time before Dhuhr for learning before getting busy during the day.

”, “body.data.object.grant_id”: “[REDACTED_GRANT_ID]”, “body.data.object.hide_participants”: “false”, “body.data.object.html_link”: “[REDACTED_LINK]”, “body.data.object.ical_uid”: “cocvoa9pv7g94423bdq49qrb56@google.com”, “body.data.object.id”: “cocvoa9pv7g94423bdq49qrb56”, “body.data.object.object”: “event”, “body.data.object.organizer.email”: “[REDACTED_EMAIL]”, “body.data.object.organizer.name”: “”, “body.data.object.participants”: “[]”, “body.data.object.read_only”: “false”, “body.data.object.recurrence”: “[\“RRULE:FREQ=WEEKLY;WKST=MO;INTERVAL=1;BYDAY=SA,SU\”]”, “body.data.object.reminders.overrides”: “[]”, “body.data.object.reminders.use_default”: “true”, “body.data.object.resources”: “[]”, “body.data.object.sequence”: “2”, “body.data.object.status”: “confirmed”, “body.data.object.text_description”: “Take out 45 min every weekend day to learn something new or polish existing skills. Use the time before Dhuhr for learning before getting busy during the day.”, “body.data.object.title”: “Technical Learning”, “body.data.object.updated_at”: “1791289954”, “body.data.object.visibility”: “default”, “body.data.object.when.end_time”: “1792231200”, “body.data.object.when.end_timezone”: “Asia/Karachi”, “body.data.object.when.object”: “timespan”, “body.data.object.when.start_time”: “1792228500”, “body.data.object.when.start_timezone”: “Asia/Karachi”, “body.id”: “TwXWT2GatDcRsLfg898pQ59956”, “body.source”: “/google/events/realtime”, “body.specversion”: “1.0”, “body.time”: “1791289956”, “body.type”: “event.updated”, “body.webhook_delivery_attempt”: “1”, “method”: “POST”, “params.0”: “”, “reqId”: “”, “url”: “” },

Hello. Our Support team has reached out to you via email to continue this investigation. Please check your mailbox for our message.