Create calendarPermission

Namespace: microsoft.graph

Create a calendarPermission resource to specify the identity and role of the user with whom the specified calendar is being shared or delegated.


Depending on the type of calendar that the event is in and the permission type (delegated or application) requested, one of the following permissions is required to call this API. To learn more, including how to choose permissions, see Permissions.

Calendar Delegated (work or school account) Delegated (personal Microsoft account) Application
user calendar Calendars.Read, Calendars.ReadWrite Calendars.Read, Calendars.ReadWrite Calendars.Read, Calendars.ReadWrite
group calendar Group.Read.All, Group.ReadWrite.All Not supported. Not supported.

HTTP request

Create the specified permissions of a user's primary calendar:

POST /users/{id}/calendar/calendarPermissions

Create the specified permissions of a group calendar:

POST /groups/{id}/calendar/calendarPermissions

Create the specified permissions of the user calendar that contains the identified event:

POST /users/{id}/events/{id}/calendar/calendarPermissions

Request headers

Name Description
Authorization Bearer {token}. Required.
Content-Type application/json. Required.

Request body

In the request body, supply a JSON representation of a calendarPermission object.


If successful, this method returns a 200 OK response code and a collection of calendarPermission objects in the response body.



The following is an example of the request.


    "emailAddress": {
        "name": "Samantha Booth",
        "address": ""
    "isInsideOrganization": true,
    "isRemovable": true,
    "role": "read"


The following is an example of the response.

Note: The response object shown here might be shortened for readability.

HTTP/1.1 200 OK
Content-type: application/json

    "@odata.context": "$metadata#users('458d4c95-124e-49da-ba9d-1dd0387e682e')/calendar/calendarPermissions/$entity",
    "id": "RXhjaGFuZ2VQdWJsaXNoZWRVc2VyLnNhbWFudGhhYkBhZGF0dW0ub25taWNyb3NvZnQuY29t",
    "isRemovable": true,
    "isInsideOrganization": true,
    "role": "read",
    "allowedRoles": [
    "emailAddress": {
        "name": "Samantha Booth",
        "address": ""