Is event ID in MS Graph API unique?

Gerald Consolidate 1 Reputation point

Is the ID of the event resource type unique across all user calendars? Or is the uniqueness only within a calendar?

In other words: Can the appointment "Foo" in the calendar of user A and the appointment "Bar" in the calendar of user B have the same ID? Or is the event ID unique across the calendars?

The background to the question is that we store the event IDs in our database and use them for appointment updates via the Graph API. If the event ID is not unique, that would of course be a problem.

I already posted the question here on Stackoverflow. But since the matter is very important to us, I need a definitive answer.

Microsoft Graph Calendar API
No comments
{count} votes

4 answers

Sort by: Most helpful
  1. Shweta Choudhary 591 Reputation points Microsoft Employee

    Based on your requirement, I recommend you to use iCalUId instead.

    The iCalUId returned by the Calendar event resource type in Microsoft Graph is defined as a unique, read-only identifier that is shared by all instances of an event across different calendars.

    References -


    Hope this helps. Thanks!

  2. Gerald Consolidate 1 Reputation point

    I already use the iCalUId wherever I can. However, there is a scenario where I only have the EventId available:
    I use the event delta API to get new, changed and deleted events from the exchange calendar.
    If an appointment has been canceled or deleted, the delta event only contains the EventId (see screenshot). In this case I can only work with the EventId.
    Therefore I would like to know whether the event IDs are unique across all calendars.


  3. Shweta Choudhary 591 Reputation points Microsoft Employee

    The id can change if the user moves the event into another calendar. One way to get around that is to use immutable ID, available on the beta endpoint:

    Reference -

  4. Gerald Consolidate 1 Reputation point

    Thanks for the tip with the Immutable IDs.
    How stable is the beta endpoint? Is it advisable to use it for projects that are used by customers?