We have an implementation of the Microsoft Graph API that uses the authorization code grant. We need it to be able to access all calendars of the tenant, so we added Calendars.ReadWrite
to the scope (Calendars.ReadWrite.all
does not exist). So far, it has only been possible to access one user's calendars with it (whatever account was used to grant access to the application). This is contrary to what the documentation states, or at least how I interpreted it in lieu of an explicit all
permission, and due to the fact that the documentation does not say "signed in user" as it does for other permissions.
It seems that Calendars.ReadWrite
does not even grant access to shared calendars (even when using the tenant admin during OAuth). Although there's a separate scope for that, I would expect this to preclude that scope, just like User.ReadWrite
precludes User.Read
. Also, I don't want to require users to share their calendar. It should just work.
I've seen it working with the "client credentials" grant, but the application also requires the "authorization code" grant, since apparently the subscriptions feature doesn't work as expected with the other flow. I would like to prevent having to require 2 different flows, which would honestly be really stupid. Is this possible?