My app keeps track of users' calendar events via Microsoft Graph API. My database records each synced event's ChangeKey
, which helps my app determine whether a event has changed and should be processed by business logic.
I also subscribe to the change notification API so that my app doesn't have to poll often.
What I found out lately is that whenever the user dismisses an event's "reminder" via Outlook (via the Outlook reminder popup), which is a very common thing to do as Outlook puts all calendar events on reminders automatically, the Graph API would send out change notification on that event.
That would have been fine – except that the event's ChangeKey
actually changes, even though nothing material about the event has changed (date times/subject/body etc). Since my app uses the ChangeKey
property to compare events, the business logic triggers unnecessarily.
Is this normal behavior and doesn't that nullify the practical purpose of ChangeKey
? Is there any workaround other than giving up the use of this property, and instead manually check for the equality of each meaningful field for event equality?