Share via

Graph API $expand=extensionsMissing in POST Response – Recent Change?

Imran Qureshi 240 Reputation points
2025-10-09T07:14:24.81+00:00

I've been using the following endpoint to create calendar events in Outlook:

POST https://graph.microsoft.com/v1.0/users/{userid}/calendar/events?$expand=extensions($select=id)

Previously, including $expand=extensions($select=id) ensured the response included the custom extension data I needed for tracking additional event metadata. This setup has been working reliably for over a year.

But recently, the behavior changed the response now only returns the standard event fields, and the extensions object is missing entirely.

To retrieve the custom metadata now, I seem to need to make an additional call:

GET https://graph.microsoft.com/v1.0/users/{userid}/events/{eventid}?$expand=extensions($select=id)

Was this change intentional?

Exchange Online
Exchange Online

A cloud-based service included in Microsoft 365, delivering scalable messaging and collaboration features with simplified management and automatic updates.

0 comments No comments

Answer accepted by question author

Gabriel-N 18,875 Reputation points Microsoft External Staff Moderator
2025-10-09T09:12:56.5033333+00:00

Hi Imran Qureshi

Thank you for posting your question on the Microsoft Q&A Forum and for raising this issue. I truly appreciate the effort you’ve taken to share your experience. I understand how this change in API behavior can be confusing, especially when something that worked reliably for a long time suddenly changes without clear documentation. Your feedback is valuable, and I want to provide as much clarity as possible based on official Microsoft resources.

After reviewing the official documentation, it appears that $expand has never been documented as supported in POST responses. If it worked previously, that was likely an undocumented behavior.

In the Get open extension - Microsoft Graph v1.0 | Microsoft Learn documentation, Microsoft describes GET scenarios: “Get a known resource instance expanded with a specific extension.” This indicates that $expand is intended for GET requests to retrieve a resource expanded with its extensions. There is no mention of $expand being applicable to POST responses.

Similarly, the documentation for extended properties (such as Get multiValueLegacyExtendedProperty - Microsoft Graph v1.0 | Microsoft Learn) states: “Using the query parameter $expand allows you to get the specified instance expanded with the indicated extended property. This is currently the only way to get the multiValueLegacyExtendedProperty object that represents an extended property.” This, I think, nearly confirm that $expand is designed for GET operations to retrieve extended properties.

To summarize, the What's new in Microsoft Graph - Microsoft Graph | Microsoft Learn page does not currently list any change related to $expand in POST responses for events. However, the current behavior is consistent with how Microsoft documents $expand for GET scenarios across its API reference. Based on this, it’s reasonable to assume that this adjustment was made to align with REST best practices and improve overall performance by reducing payload size and latency.

Please note that this is information I’ve compiled based on official Microsoft documentation and my own analysis. If you need an official confirmation or want to explore this further, I recommend raising a support ticket with Microsoft.

Thank you again for contributing and helping the community better understand this topic!


If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".      

Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread. 

Was this answer helpful?

1 person found this answer helpful.

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.