Using Microsoft Graph API, we have an event created by a user who invited a room. From our understanding, there is an event A in the users calendar and an event B in the room's calendar. Both of them are linked by the same iCalUId.
We use this to query the event by iCalUId GET /users/${userId}/events/?$filter=iCalUId eq '${icaluid}'
When the $userId is the room's id, it successfully returns the event B.
When the $userId is the user's id, it returns undefined
, but it should return event A.
When I querying the users' calendar with GET /users/${email}/calendar/events
, the eventA is returned and has the expected iCalUid.
In the response, the only thing that seems out of place is the transactionId which has this format I've never seen in any other events before : 'localevent:'.
This only happens for this event specifically and we are trying to understand 2 things:
- how can we reproduce this (we have not been able to with other events)?
- why is the event A in the user's calendar not being returned when filtering by ICalUId?
The event is not part of a series (series master is null), event is not deleted, the event is accepted by both user and room.
Using Microsoft Graph API, we have an event created by a user who invited a room. From our understanding, there is an event A in the users calendar and an event B in the room's calendar. Both of them are linked by the same iCalUId.
We use this to query the event by iCalUId GET /users/${userId}/events/?$filter=iCalUId eq '${icaluid}'
When the $userId is the room's id, it successfully returns the event B.
When the $userId is the user's id, it returns undefined
, but it should return event A.
When I querying the users' calendar with GET /users/${email}/calendar/events
, the eventA is returned and has the expected iCalUid.
In the response, the only thing that seems out of place is the transactionId which has this format I've never seen in any other events before : 'localevent:'.
This only happens for this event specifically and we are trying to understand 2 things:
- how can we reproduce this (we have not been able to with other events)?
- why is the event A in the user's calendar not being returned when filtering by ICalUId?
The event is not part of a series (series master is null), event is not deleted, the event is accepted by both user and room.
Share Improve this question asked Mar 17 at 14:17 JS AresJS Ares 1793 silver badges17 bronze badges1 Answer
Reset to default 0Do you know what client is being used to create the event ?
The icaluid is a calculated property which means its value is converted to and from other properties in the underlying exchange store https://learn.microsoft/en-gb/openspecs/exchange_server_protocols/ms-oxcical/a685a040-5b69-4c84-b084-795113fb4012 it should come from the https://learn.microsoft/en-us/office/client-developer/outlook/mapi/pidlidglobalobjectid-canonical-property which is what outlook uses to correlate meeting and meeting invites.
To try to diagnose what might be going wrong you can use a Mapi editor like MFCMapi or Outlook spy and compare the values of the Goid property on both items. One potential reason the filter is failing on the source is that some extra information (eg unpossessable character) was added that then gets removed when the appointment was sent.