Microsoft Exchange · Schema

Microsoft Exchange Calendar Event

Represents a calendar event in a user calendar or the default calendar of a Microsoft 365 group as exposed through the Microsoft Graph Calendar API. Supports single-instance events, recurring events, meetings with attendees, and online meetings.

CalendarCollaborationContactsEmailEnterprise

Properties

Name Type Description
id string Unique identifier for the event
subject string The text of the event's subject line
body object The body of the message associated with the event
bodyPreview string The preview of the event body in text format
start object The start date, time, and time zone of the event
end object The end date, time, and time zone of the event
location object The location of the event
locations array The locations where the event is held or attended from
attendees array The collection of attendees for the event
organizer object The organizer of the event
isAllDay boolean Whether the event lasts all day
isCancelled boolean Whether the event has been canceled
isDraft boolean Whether updates have been sent to attendees
isOnlineMeeting boolean Whether this event has online meeting information
isOrganizer boolean Whether the calendar owner is the organizer
isReminderOn boolean Whether a reminder alert is set
onlineMeeting object Details for joining the meeting online
onlineMeetingProvider string The online meeting service provider
onlineMeetingUrl string URL for an online meeting
recurrence object The recurrence pattern for the event
reminderMinutesBeforeStart integer Minutes before start that the reminder alert occurs
responseRequested boolean Whether the organizer requests a response from invitees
responseStatus object The response status of the event
sensitivity string The event sensitivity level
seriesMasterId string ID for the recurring series master
showAs string The status to show during the event
type string The event type
importance string The importance of the event
hasAttachments boolean Whether the event has attachments
categories array The categories associated with the event
allowNewTimeProposals boolean Whether the organizer allows invitees to propose new times
iCalUId string A unique identifier for the event across calendars
changeKey string Identifies the version of the event
createdDateTime string When the event was created
lastModifiedDateTime string When the event was last changed
webLink string URL to open the event in Outlook on the web
transactionId string Custom identifier to avoid duplicate event creation on retries
hideAttendees boolean When true, each attendee only sees themselves in the meeting request
originalStartTimeZone string The start time zone set when the event was created
originalEndTimeZone string The end time zone set when the event was created
View JSON Schema on GitHub

JSON Schema

microsoft-exchange-event-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://github.com/api-evangelist/microsoft-exchange/json-schema/microsoft-exchange-event-schema.json",
  "title": "Microsoft Exchange Calendar Event",
  "description": "Represents a calendar event in a user calendar or the default calendar of a Microsoft 365 group as exposed through the Microsoft Graph Calendar API. Supports single-instance events, recurring events, meetings with attendees, and online meetings.",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique identifier for the event",
      "readOnly": true
    },
    "subject": {
      "type": "string",
      "description": "The text of the event's subject line"
    },
    "body": {
      "$ref": "#/$defs/itemBody",
      "description": "The body of the message associated with the event"
    },
    "bodyPreview": {
      "type": "string",
      "description": "The preview of the event body in text format",
      "readOnly": true
    },
    "start": {
      "$ref": "#/$defs/dateTimeTimeZone",
      "description": "The start date, time, and time zone of the event"
    },
    "end": {
      "$ref": "#/$defs/dateTimeTimeZone",
      "description": "The end date, time, and time zone of the event"
    },
    "location": {
      "$ref": "#/$defs/location",
      "description": "The location of the event"
    },
    "locations": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/location"
      },
      "description": "The locations where the event is held or attended from"
    },
    "attendees": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/attendee"
      },
      "description": "The collection of attendees for the event"
    },
    "organizer": {
      "$ref": "#/$defs/recipient",
      "description": "The organizer of the event"
    },
    "isAllDay": {
      "type": "boolean",
      "description": "Whether the event lasts all day"
    },
    "isCancelled": {
      "type": "boolean",
      "description": "Whether the event has been canceled",
      "readOnly": true
    },
    "isDraft": {
      "type": "boolean",
      "description": "Whether updates have been sent to attendees",
      "readOnly": true
    },
    "isOnlineMeeting": {
      "type": "boolean",
      "description": "Whether this event has online meeting information"
    },
    "isOrganizer": {
      "type": "boolean",
      "description": "Whether the calendar owner is the organizer",
      "readOnly": true
    },
    "isReminderOn": {
      "type": "boolean",
      "description": "Whether a reminder alert is set"
    },
    "onlineMeeting": {
      "$ref": "#/$defs/onlineMeetingInfo",
      "description": "Details for joining the meeting online"
    },
    "onlineMeetingProvider": {
      "type": "string",
      "enum": ["unknown", "teamsForBusiness", "skypeForBusiness", "skypeForConsumer"],
      "description": "The online meeting service provider"
    },
    "onlineMeetingUrl": {
      "type": "string",
      "format": "uri",
      "description": "URL for an online meeting",
      "readOnly": true
    },
    "recurrence": {
      "$ref": "#/$defs/patternedRecurrence",
      "description": "The recurrence pattern for the event"
    },
    "reminderMinutesBeforeStart": {
      "type": "integer",
      "minimum": 0,
      "description": "Minutes before start that the reminder alert occurs"
    },
    "responseRequested": {
      "type": "boolean",
      "description": "Whether the organizer requests a response from invitees"
    },
    "responseStatus": {
      "$ref": "#/$defs/responseStatus",
      "description": "The response status of the event"
    },
    "sensitivity": {
      "type": "string",
      "enum": ["normal", "personal", "private", "confidential"],
      "description": "The event sensitivity level"
    },
    "seriesMasterId": {
      "type": "string",
      "description": "ID for the recurring series master",
      "readOnly": true
    },
    "showAs": {
      "type": "string",
      "enum": ["free", "tentative", "busy", "oof", "workingElsewhere", "unknown"],
      "description": "The status to show during the event"
    },
    "type": {
      "type": "string",
      "enum": ["singleInstance", "occurrence", "exception", "seriesMaster"],
      "description": "The event type",
      "readOnly": true
    },
    "importance": {
      "type": "string",
      "enum": ["low", "normal", "high"],
      "description": "The importance of the event"
    },
    "hasAttachments": {
      "type": "boolean",
      "description": "Whether the event has attachments",
      "readOnly": true
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The categories associated with the event"
    },
    "allowNewTimeProposals": {
      "type": "boolean",
      "description": "Whether the organizer allows invitees to propose new times"
    },
    "iCalUId": {
      "type": "string",
      "description": "A unique identifier for the event across calendars",
      "readOnly": true
    },
    "changeKey": {
      "type": "string",
      "description": "Identifies the version of the event",
      "readOnly": true
    },
    "createdDateTime": {
      "type": "string",
      "format": "date-time",
      "description": "When the event was created",
      "readOnly": true
    },
    "lastModifiedDateTime": {
      "type": "string",
      "format": "date-time",
      "description": "When the event was last changed",
      "readOnly": true
    },
    "webLink": {
      "type": "string",
      "format": "uri",
      "description": "URL to open the event in Outlook on the web",
      "readOnly": true
    },
    "transactionId": {
      "type": "string",
      "description": "Custom identifier to avoid duplicate event creation on retries"
    },
    "hideAttendees": {
      "type": "boolean",
      "description": "When true, each attendee only sees themselves in the meeting request"
    },
    "originalStartTimeZone": {
      "type": "string",
      "description": "The start time zone set when the event was created"
    },
    "originalEndTimeZone": {
      "type": "string",
      "description": "The end time zone set when the event was created"
    }
  },
  "required": ["subject", "start", "end"],
  "$defs": {
    "attendee": {
      "type": "object",
      "description": "An event attendee with response status",
      "properties": {
        "emailAddress": {
          "$ref": "#/$defs/emailAddress"
        },
        "type": {
          "type": "string",
          "enum": ["required", "optional", "resource"],
          "description": "The type of attendee"
        },
        "status": {
          "$ref": "#/$defs/responseStatus"
        }
      }
    },
    "recipient": {
      "type": "object",
      "properties": {
        "emailAddress": {
          "$ref": "#/$defs/emailAddress"
        }
      }
    },
    "emailAddress": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "The display name"
        },
        "address": {
          "type": "string",
          "format": "email",
          "description": "The email address"
        }
      }
    },
    "itemBody": {
      "type": "object",
      "properties": {
        "contentType": {
          "type": "string",
          "enum": ["text", "html"]
        },
        "content": {
          "type": "string"
        }
      }
    },
    "dateTimeTimeZone": {
      "type": "object",
      "description": "Describes a date, time, and time zone",
      "properties": {
        "dateTime": {
          "type": "string",
          "description": "A date and time in ISO 8601 format"
        },
        "timeZone": {
          "type": "string",
          "description": "A time zone name"
        }
      },
      "required": ["dateTime", "timeZone"]
    },
    "location": {
      "type": "object",
      "description": "Represents location information",
      "properties": {
        "displayName": {
          "type": "string",
          "description": "The name of the location"
        },
        "locationType": {
          "type": "string",
          "enum": ["default", "conferenceRoom", "homeAddress", "businessAddress", "geoCoordinates", "streetAddress", "hotel", "restaurant", "localBusiness", "postalAddress"]
        },
        "locationUri": {
          "type": "string"
        },
        "locationEmailAddress": {
          "type": "string",
          "format": "email"
        },
        "address": {
          "$ref": "#/$defs/physicalAddress"
        },
        "coordinates": {
          "$ref": "#/$defs/geoCoordinates"
        }
      }
    },
    "physicalAddress": {
      "type": "object",
      "properties": {
        "street": { "type": "string" },
        "city": { "type": "string" },
        "state": { "type": "string" },
        "countryOrRegion": { "type": "string" },
        "postalCode": { "type": "string" }
      }
    },
    "geoCoordinates": {
      "type": "object",
      "properties": {
        "latitude": { "type": "number" },
        "longitude": { "type": "number" },
        "accuracy": { "type": "number" },
        "altitude": { "type": "number" },
        "altitudeAccuracy": { "type": "number" }
      }
    },
    "onlineMeetingInfo": {
      "type": "object",
      "description": "Details for joining an online meeting",
      "properties": {
        "joinUrl": {
          "type": "string",
          "format": "uri",
          "description": "URL to join the online meeting"
        },
        "conferenceId": {
          "type": "string"
        },
        "tollNumber": {
          "type": "string"
        },
        "tollFreeNumbers": {
          "type": "array",
          "items": { "type": "string" }
        },
        "quickDial": {
          "type": "string"
        }
      }
    },
    "responseStatus": {
      "type": "object",
      "properties": {
        "response": {
          "type": "string",
          "enum": ["none", "organizer", "tentativelyAccepted", "accepted", "declined", "notResponded"]
        },
        "time": {
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "patternedRecurrence": {
      "type": "object",
      "description": "The recurrence pattern and range",
      "properties": {
        "pattern": {
          "$ref": "#/$defs/recurrencePattern"
        },
        "range": {
          "$ref": "#/$defs/recurrenceRange"
        }
      }
    },
    "recurrencePattern": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["daily", "weekly", "absoluteMonthly", "relativeMonthly", "absoluteYearly", "relativeYearly"]
        },
        "interval": {
          "type": "integer",
          "minimum": 1
        },
        "month": {
          "type": "integer",
          "minimum": 1,
          "maximum": 12
        },
        "dayOfMonth": {
          "type": "integer",
          "minimum": 1,
          "maximum": 31
        },
        "daysOfWeek": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": ["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"]
          }
        },
        "firstDayOfWeek": {
          "type": "string",
          "enum": ["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"]
        },
        "index": {
          "type": "string",
          "enum": ["first", "second", "third", "fourth", "last"]
        }
      }
    },
    "recurrenceRange": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["endDate", "noEnd", "numbered"]
        },
        "startDate": {
          "type": "string",
          "format": "date"
        },
        "endDate": {
          "type": "string",
          "format": "date"
        },
        "recurrenceTimeZone": {
          "type": "string"
        },
        "numberOfOccurrences": {
          "type": "integer",
          "minimum": 1
        }
      }
    }
  }
}