{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://github.com/api-evangelist/microsoft-exchange/json-schema/microsoft-exchange-calendar-schema.json",
  "title": "Microsoft Exchange Calendar",
  "description": "Represents a calendar container for event resources as exposed through the Microsoft Graph Calendar API. Can be a calendar for a user or the default calendar of a Microsoft 365 group. Users can organize calendars in calendar groups.",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The calendar's unique identifier",
      "readOnly": true
    },
    "name": {
      "type": "string",
      "description": "The calendar name"
    },
    "color": {
      "type": "string",
      "enum": [
        "auto",
        "lightBlue",
        "lightGreen",
        "lightOrange",
        "lightGray",
        "lightYellow",
        "lightTeal",
        "lightPink",
        "lightBrown",
        "lightRed",
        "maxColor"
      ],
      "description": "Specifies the color theme to distinguish the calendar in the UI"
    },
    "hexColor": {
      "type": "string",
      "pattern": "^#?[0-9a-fA-F]{6}$",
      "description": "The calendar color in hex format (e.g. #FF0000)",
      "readOnly": true
    },
    "isDefaultCalendar": {
      "type": "boolean",
      "description": "Whether this is the default calendar for new events"
    },
    "changeKey": {
      "type": "string",
      "description": "Identifies the version of the calendar object",
      "readOnly": true
    },
    "canEdit": {
      "type": "boolean",
      "description": "Whether the user can write to the calendar",
      "readOnly": true
    },
    "canShare": {
      "type": "boolean",
      "description": "Whether the user has permission to share the calendar",
      "readOnly": true
    },
    "canViewPrivateItems": {
      "type": "boolean",
      "description": "Whether the user can read private calendar items",
      "readOnly": true
    },
    "isRemovable": {
      "type": "boolean",
      "description": "Whether this calendar can be deleted from the mailbox",
      "readOnly": true
    },
    "isTallyingResponses": {
      "type": "boolean",
      "description": "Whether this calendar supports tracking of meeting responses",
      "readOnly": true
    },
    "owner": {
      "$ref": "#/$defs/emailAddress",
      "description": "The user who created or added the calendar"
    },
    "allowedOnlineMeetingProviders": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": ["unknown", "skypeForBusiness", "skypeForConsumer", "teamsForBusiness"]
      },
      "description": "Online meeting providers available for this calendar"
    },
    "defaultOnlineMeetingProvider": {
      "type": "string",
      "enum": ["unknown", "skypeForBusiness", "skypeForConsumer", "teamsForBusiness"],
      "description": "Default online meeting provider for meetings from this calendar"
    }
  },
  "$defs": {
    "emailAddress": {
      "type": "object",
      "description": "The name and email address of a person",
      "properties": {
        "name": {
          "type": "string",
          "description": "The display name"
        },
        "address": {
          "type": "string",
          "format": "email",
          "description": "The email address"
        }
      }
    }
  }
}
