{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-365/json-schema/microsoft-365-microsoft-graph-calendar-permission-schema.json",
  "title": "microsoft.graph.calendarPermission",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/microsoft-365-calendar-api-openapi.yml#/components/schemas/microsoft.graph.calendarPermission",
  "allOf": [
    {
      "$ref": "#/$defs/microsoft.graph.entity"
    },
    {
      "title": "calendarPermission",
      "type": "object",
      "properties": {
        "allowedRoles": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.calendarRoleType"
          },
          "description": "List of allowed sharing or delegating permission levels for the calendar. The possible values are: none, freeBusyRead, limitedRead, read, write, delegateWithoutPrivateEventAccess, delegateWithPrivateEventAccess, custom."
        },
        "emailAddress": {
          "$ref": "#/$defs/microsoft.graph.emailAddress"
        },
        "isInsideOrganization": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "True if the user in context (recipient or delegate) is inside the same organization as the calendar owner."
        },
        "isRemovable": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "True if the user can be removed from the list of recipients or delegates for the specified calendar, false otherwise. The 'My organization' user determines the permissions other people within your organization have to the given calendar. You can't remove 'My organization' as a share recipient to a calendar."
        },
        "role": {
          "$ref": "#/$defs/microsoft.graph.calendarRoleType"
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    }
  ],
  "$defs": {
    "microsoft.graph.calendarRoleType": {
      "title": "calendarRoleType",
      "enum": [
        "none",
        "freeBusyRead",
        "limitedRead",
        "read",
        "write",
        "delegateWithoutPrivateEventAccess",
        "delegateWithPrivateEventAccess",
        "custom"
      ],
      "type": "string"
    },
    "microsoft.graph.emailAddress": {
      "title": "emailAddress",
      "type": "object",
      "properties": {
        "address": {
          "type": [
            "string",
            "null"
          ],
          "description": "The email address of the person or entity."
        },
        "name": {
          "type": [
            "string",
            "null"
          ],
          "description": "The display name of the person or entity."
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.entity": {
      "title": "entity",
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique identifier for an entity. Read-only."
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    }
  }
}