Search code examples
microsoft-graph-apiazure-ad-graph-apimicrosoft-graph-calendar

Create calendar Permissions in Microsoft graph API not removable by end users


We would like to create calendar permissions on all users calendar in organization which allow a service (user mailbox) to read/write on users calendars.

There is no problem to do that by using Microsoft Graph endpoint : Create calendarPermission

But we would like this permission was not removable by end users. That's why we tried to use isRemovable property set to true. For example :

POST https://graph.microsoft.com/v1.0/users/UPN_OF_USER/calendar/calendarPermissions
Request Body
{
    "emailAddress": {
        "name": "VALID_USER_NAME",
        "address": "VALID_USER_EMAIL_IN_TENANT@TENANT_DOMAIN"
    },
    "isInsideOrganization": true,
    "isRemovable": false,
    "role": "read"
}

But each time we add this permission, isRemovable property is set to true.

It doesn't seems isRemovable property is readonly in documentation


Solution

  • I tested the API in my environment and it came up with the same result. I tested couple of Scenarios and found that isInsideOrganization is decided by the My Organization user and isRemovable is default set to true for all users as they can be removed/deleted from the Sharee and Delegate list except for My Organization User as its the deciding authority of which permissions are assigned to what user.

    It is also mentioned in calendar permission resource type Microsoft Documentation as shown below :

    enter image description here

    Scenarios:

    1. Create a Permission for User inside the Organization by providing the two parameters and not providing the parameters as well:

      With Parameters:

      enter image description here

      Without Parameters:

      enter image description here

    2. Create a Permission for User present outside the Organization by providing the two parameters and not providing the parameters as well:

      With Parameters:

      enter image description here

      Without Parameters:

      enter image description here

    Note : IsRemovable is set to false only for My Organization User as can be seen below:

    enter image description here