This is alot of information so feel free to ask questions but do them inline and read it a couple of times :-)
I would expect the event IDs to be different since its a different calendar. So you need to use the Calendars Event Unique id
So when you do a Create Event (V4), it returns back a GraphCalendarEventClientReceive, now you don't per se care about the whole thing, but in there
is the Id field which is the actual Id of the newly created event.
You need to have a mapping table, between the Unique ID of the event in calendar1 to map against the event in calendar2
So imagine you had
EventMappingList (SharePoint)
Calender1Id Calendar2Id
Here you store the uni1erid for calender1 event here you store the unique id for calendar2 event
Create
For create, you just need the Id for the incoming Calendar1 event, then create event 2, then use the event id for Calendars 1 and 2 for their respective new events, to create a new row in the EventMappingList which gives a pointer to each others aligned records/events
Update/Delete
And anytime you need to do an update or delete for an event in Calendar1, you have to grab the Unique Id for Calendar2 from your EventMappingList list, that represents the id for calendar2id
Now that you have that, you can easily make changes.
Create incoming event
So.. when you create an event, and assuming you did NOT change the name of the default header for the Create Event V4, to get the new Calendar2 unique id you do this
body('Create_Event_v4')?['value']?['Id']
Now you use that to in the Action Get event (V3) to grab the event you created in Calendar2
So your steps in your ... original flow should look like this (with some thoughts to think about)
1. Add Trigger "When an event is added, updated or deleted (v3)
2. Add a parse JSON and use the example from a previously triggered Flow by going to run details and copying it out
3. Add a Switch to check if it's a Create/Add or Update or Delete, this switch would be based on the Action Type property which would say, added, updated or deleted as its value
This way you know what to do in your calendar2
Using the Switch on the Action Type
In the added case
--use the triggerBody to get the If of the incoming event. In the Dynamic properties, its called just Body or body but with the parse json you should get it easy
--use the create event to create a new event into your new calendar
--use a parse json again to grab this creates id just like I explained above
--create a row in the SharePoint list setting Calendar1Id to the id of the incoming message, and Calendar2 to the id of the created event in the previous step
in the updated case
Use the triggerBody to get the Id of the incoming event.
--add another parse json in this Case where the input is the output of the body property from the trigger. Use the trigger output from a previous run as the Example schema input
--In the Dynamic property called body, use that as an input the parse json
--add your sample as explained before and here.
Now use Get Items from SharePoint, to list all rows in the Mapping Table, but filter based on the Calendar1Id field.
use an apply to each (or For each depending on the UI you are using) with the input/from being the Get Items previous step
inside the loop (which should only happen 1 time), you can grab the calendar2Id value directly
Now add your update event action to modify it however the calendar 1 event was
--Deleted will act just like updated except you use the Delete Event action
If this answers your question and I know its a lot, please mark as so and feel free to ask questions.