This question has been asked several times and as per answers such as this it seems the API didn't support this then until recently as here which mentions that there are new scopes which allow accessing the shared calendars. But it still does not work.
I have tested this on two platforms: Azure and Microsoft Graph
- Azure Ad App
My application in Azure AD has all the required permissions:
I make a call to Office API v.1.0 as:
Authorise URL:
https://login.microsoftonline.com/common/oauth2/authorize?client_id=%1$s&redirect_uri=%2$s&response_type=code
Token URL:
https://login.microsoftonline.com/common/oauth2/token
Calendars URL:
https://outlook.office.com/api/v1.0/Me/Calendars
It only gives me the calendar created by the current logged-in/authorising user.
Since this didn't work, I tried with the version 2 of the API but I got the following:
Additional technical information: Correlation ID: 7abf370a-d918-4514-bd74-cf5fc93fe3cf Timestamp: 2016-10-31 09:32:06Z AADSTS70001: Application 'f7571710-84e2-4444-8bfe-5eef92f4a46d' is not supported for this API version.
So I tried with a Microsoft Graph Application
- Microsoft Graph App
My application here also contains all the required permissions.
I make call to the office API v2.0 as:
Authorize URL:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=%1$s&redirect_uri=%2$s&response_type=code&scope=%3$s
Where scopes are:
private static $scopes = array( 'https://outlook.office.com/calendars.read', 'https://outlook.office.com/calendars.readwrite', 'https://outlook.office.com/calendars.read.shared', 'https://outlook.office.com/calendars.readwrite.shared', );
Token URL:
https://login.microsoftonline.com/common/oauth2/v2.0/token
Calendars URL:
https://outlook.office.com/api/v2.0/Me/Calendars
Again does not give me the shared calendars.
Any help is appreciated.