I subscribe to my Facebook (FB) calendar in Google Calendar (GC). I then use Zapier's New or Updated Event in Google Calendar-feature (a.k.a "zap") to copy the read only FB calendar events into a dedicated GC calendar.¹ This is automatic and happens immediately whenever a new event is added to the FB calendar or an existing event is updated (I assume Zapier is using some listener that subscribe to certain events thrown by GC).
Problem is that not only are new events added to the FB-calendar (this works fine), existing events are sometimes updated - and my so called "zap" reacts to these updates by creating a new event (leaving the old event untouched).
Zapier DO have a function that updates existing events, but then I first need to find the event that is updated. However, since the update can change the event's summary, start/end time, description etc none of these fields are useful for the search step.
Since there seem to be API support for updating existing events and I don't think I am the first one with this use case, I assume there must be some way to realise that event A in the source calendar is updated to A' and that event X in the destination calendar is based on A and should be updated to X' when A changes to A'.
E.g. - the UID is not the same in the source and destination calendar but the source UID could maybe be preserved in the destination calendar in some meta-field or so.
I have looked in the GC API, read this question How can I find the Event Id of my Google Calendar event?, downloaded A and X as ICS-files and diff:ed them but haven't found a solution.
How do I find X based on the information in A' in Google Calendar?
¹ I do this because I want to be able to edit the events, invite friends etc. Since the FB calendar is read only it can't be done there.