I'm currently working on a Exchange Online integration project where we are using the Microsoft Graph API 1.0 to replicate the user's calendars to our system. It has been working fine so far but today I ran into a problem that I cannot solve:
How do you keep track of deletions of occurrences of recurring calendar events?
I have tried to work with 'Delta' links without success. Those requests only returns the series master together with all remaining occurrences.
E.g. First request:
GET /v1.0/users/dc7f4032-5f30-4441-a165-428aed9fb471/calendarview/delta?startdatetime=2019-04-11T00:00:00&enddatetime=2019-04-28T23:59:59
Then I request the nextLink so that I get the deltaLink, and then I request the deltaLink:
GET /v1.0/users/dc7f4032-5f30-4441-a165-428aed9fb471/calendarview/delta?$deltatoken=uwMsonT1N46Me49CO...(etc.)
Then I get the response:
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(event)",
"@odata.deltaLink": "https://graph.microsoft.com/v1.0/users/dc7f4032-5f30-4441-a165-428aed9fb471/calendarview/delta?$deltatoken=uwMsonT1N46Me49COq9SDw0t_wB0xaeZEqH3MS63rea577XfZFFdjg0jwU6FzfSp9LnqeqbpBGm2ppJDuDiIP280MEFjk2Q9GYyNNdCAP__CjSKSGFQ9WKmL3TPyFeXhhYE9KgmWHF1cSrx7OYBT7zPrgwY0x5peeyjBEtqkAueuE2Pb8DH4iODU-vAp-lHVOzPmkkjNyef1NTNkgNv-kg.oOHzptXCwEphbnI7YFO7saexZ_c0hZj1a0o4ZjluzUU",
"value": []
}
Subsequent calls to the deltaLink will continue to return: "value": [] as long as nothing has changed in the calendar.
Then I delete one of the occurrences in a series and then request the deltaLink again and then the MS Graph API only returns the master together with all remaining occurrences within the original timespan, without any trace of the deleted occurrence!
Anyone out there that has experience the same problem?