Office365 - Get Calendar Issue

Hi All,

So I’m trying to get the main calendar for a user in our domain. By default we have read permission and in the Azure app for the O365 scope i have all 4 permission that you can give:

  • Calendars.Read
  • Calendars.ReadWrite
  • Calendars.Read.Shared
  • Calendars.ReadWrite.Shared

but when i try to get the calendar for any other user than my self, the calendar array returns empty.
I’m using email to define what calendar i want to access

The build is quite simple it’s currently just an O365 Scope with ‘Get Calendars’ inside and as i said it’s working fine for my own personal calendar, it’s only when trying to access others

Any one who might know what the issue could be?

Hey @Rasmus_J. I had a similar issue not too long ago. The person whose calendar you would like to access needs to give you access to view it.

Hey @Jacqui_M, can you be a bit more specific as to how you give permission? As I per domain setup already have access to read any other calendar (all users on the domain have this). we have also tried to get the test user to setup a specific permission just for my user with the same result of an empty array.

Hey @Rasmus_J - sorry, should’ve added this earlier. Maybe try this: https://support.office.com/en-us/article/share-an-outlook-calendar-with-other-people-353ed2c1-3ec5-449d-8c73-6931a0adab88

I know that when giving permissions in Azure AD can also get tricky. I do suspect that the activities may utilise MS graph. A post I came across mentioned the following: (post URL: https://stackoverflow.com/questions/40381513/how-to-access-shared-calendars-from-office-rest-api)
image

1 Like

I’ll have a talk with our sysadmin, and see if we can get this to work based on the information you have provided. Thank you for the help so far :slight_smile:

You’re welcome! :slight_smile:

Please do let me know if you get stuck! There are quite a few ways we could go about getting this to work.

@loginerror Could any of your devs on this activity pitch in here as to why this won’t work? Permission wise we have followed your setup guide on graph and rights and I still only get calendars if I try to get my own. I have even tried to set my main account as owner on a calendar on one of my secondary accounts and I still cannot get any calendars from my secondary account.

As default I’m Reviewer on any other calendar on the domain, so i can already see other accounts calendars without the need for them to share it with me. But we have tried to share and add the permission manually without any change

I was told by sysadmin that i got the following permissions on the Azure App regarding calendar:

  • Calendars.Read
  • Calendars.ReadWrite
  • Calendars.Read.Shared
  • Calendars.ReadWrite.Shared

Config of O365 scope
image

Get Calendar config
image

If i set user to the currently logged in windows user i get the calendars, if it set the user to my secondary account the returned calendar array is empty

Sysadmin reported back with a possible solution, and it worked!

• Historically, there are two ways that calendar sharing has been implemented, which, for the purpose of differentiating them, are referred to as the “old” approach and “new” approach.
• The new approach is currently available for sharing calendars with view or edit permissions, but not with delegate permissions.
• You can use the calendar REST API to view or edit shared calendars only if the calendars were shared using the new approach.
• You cannot use the calendar REST API to view or edit such calendars (or their events) if the calendars were shared using the old approach.

If a calendar was shared with view or edit permissions but using the old approach, you can now work around the error and manually upgrade the calendar sharing to use the new approach. Over time, Outlook will automatically upgrade all shared calendars to use the new approach, including calendars shared with delegate permissions.

To manually upgrade a shared calendar to use the new approach, follow these steps:
1. The recipient removes the calendar that was previously shared to them.
2. The calendar owner re-shares the calendar in Outlook on the web, Outlook on iOS, or Outlook on Android.
3. The recipient re-accepts the shared calendar using Outlook on the web. (It will be possible to use other Outlook clients soon.)
4. The recipient verifies that the calendar has been re-shared successfully using the new approach by being able to view the shared calendar in Outlook on iOS or Outlook on Android.

So after i removed the shared calendar that was shared using the old method, then reshared and accepted it using web instead of the Outlook client it all worked fine.

So now it’s just a question of waiting on MS to fix this massive issue

More info on the known issue

2 Likes

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.