How to list all shared calendars in Microsoft Graph

Marcelo Amarante Cintra 0 Reputation points
2026-07-21T21:23:41.89+00:00

I’m working on a feature in my product that needs to identify all calendars that have been shared with the signed-in user.

I would like to know whether Microsoft Graph provides a way to:

  1. list every calendar that has been shared with the user, or
  2. retrieve a list of users who have shared their calendars with that user.

Here is the issue I’m seeing:

The user has seven calendars shared with them, all with “Can Edit” permission. However, when I call the /me/calendars endpoint, only four of those seven shared calendars are returned.

Because of this, I’m unsure whether:

  • /me/calendars is expected to return all shared calendars,
  • some types of shared calendars are excluded from that endpoint,
  • there is another Microsoft Graph endpoint that should be used to retrieve the complete list, or
  • additional permissions / consent are required.

Could you please clarify the expected behavior and recommend the correct way to retrieve all calendars shared with a user?

Thank you

Microsoft 365 and Office | Development | Other
0 comments No comments

1 answer

Sort by: Most helpful
  1. Teddie-D 19,760 Reputation points Microsoft External Staff Moderator
    2026-07-22T00:39:14.7466667+00:00

    Hi @Marcelo Amarante Cintra

    From my findings, there does not appear to be a dedicated endpoint that directly returns all calendars shared with the signed-in user or a separate list of users who have shared calendars with that user.

    GET /me/calendars is the primary Microsoft Graph endpoint for retrieving the calendars available to the signed-in user. Microsoft documentation specifically states that it returns the collection of calendars the user has access to, including shared calendars that exist as local copies in the recipient's mailbox.

    Microsoft Graph doesn't currently provide a dedicated endpoint that returns a list of users who have shared calendars with the signed-in user. Applications typically enumerate calendars from GET /me/calendars and inspect properties such as owner to determine whether a calendar belongs to another user.

    If you're consistently seeing only four of seven shared calendars returned by GET /me/calendars, while all seven are visible in Outlook, that behavior appears inconsistent with the example in the documentation.

    To help narrow this down, could you provide a bit more information?

    1. Are the missing calendars shared from users in the same Microsoft 365 tenant, or from external organizations?
    2. How were the calendars added (for example, via a sharing invitation, delegate access, or Outlook's Add calendar > From directory option)?
    3. Do the missing calendars appear in both Outlook on the web and Outlook desktop?
    4. Which Microsoft Graph permissions is your application currently using (for example, Calendars.Read, Calendars.Read.Shared, or Calendars.ReadWrite)?
    5. Are the missing calendars user calendars, delegated calendars, shared mailbox calendars, resource calendars, or Microsoft 365 group calendars?

    Please know that while our initial response might not resolve the issue right away, your input is incredibly valuable. With a bit more detail, we’ll work together to find the best solution for you. 


    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?


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.