Calendar

  • OpenAPI Version: 3.1.1
  • API Version: 2

The Calendar APIs allow developers to interface with Zoom Calendar features programmatically. These APIs enable applications to manage calendar events, automate scheduling, sync across platforms, and integrate Zoom Calendar with third-party apps for seamless event management.

Servers

  • URL: https://api.zoom.us/v2

Operations

List ACL rules of specified calendar

  • Method: GET
  • Path: /calendars/{calId}/acl
  • Tags: acl

Returns the rules in the access control list for the calendar.

Scopes: calendar:read,calendar:read:admin

Granular Scopes: calendar:read:list_acl,calendar:read:list_acl:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 If successful, this method returns a response body with the following structure:
Content-Type: application/json
  • etag

    string — The ETag of the collection.

  • items

    array — The list of rules for the access control list.

    Items:

    • role (required)

      string, possible values: "none", "freeBusyReader", "reader", "writer", "owner" — The role assigned to the scope.

    • scope (required)

      object — The extent to which calendar access is granted by this ACL rule.

    • etag

      string — The ETag of the resource.

    • id

      string — The identifier of the ACL rule.

    • kind

      string, possible values: "calendar#aclRule" — The type of resource.

  • kind

    string — The type of collection.

  • nextPageToken

    string — The token that accesses the next page of this result.

Example:

{
  "kind": "calendar#acl",
  "etag": "\"00000000000000000000\"",
  "nextPageToken": "user:abc@example.com!",
  "items": [
    {
      "kind": "calendar#aclRule",
      "etag": "\"00000000000000000000\"",
      "id": "user:cba.fed@zoom.com",
      "scope": {
        "type": "default"
      },
      "role": "reader"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error

Create a new ACL rule

  • Method: POST
  • Path: /calendars/{calId}/acl
  • Tags: acl

Creates an access control list rule.

Scopes: calendar:write,calendar:write:admin

Granular Scopes: calendar:write:acl,calendar:write:acl:admin

Rate Limit Label: HEAVY

Request Body

Content-Type: application/json
  • role (required)

    string, possible values: "none", "freeBusyReader", "reader", "writer", "owner" — The role assigned to the scope.

  • scope (required)

    object — The extent to which calendar access is granted by this ACL rule.

Example:

{
  "scope": {
    "type": "default"
  },
  "role": "reader"
}

Responses

Status: 200 If successful, this method returns an ACL resource in the response body.
Content-Type: application/json
  • role (required)

    string, possible values: "none", "freeBusyReader", "reader", "writer", "owner" — The role assigned to the scope.

  • scope (required)

    object — The extent to which calendar access is granted by this ACL rule.

  • etag

    string — The ETag of the resource.

  • id

    string — The identifier of the ACL rule.

  • kind

    string, possible values: "calendar#aclRule" — The type of resource.

Example:

{
  "kind": "calendar#aclRule",
  "etag": "\"00000000000000000000\"",
  "id": "user:cba.fed@zoom.com",
  "scope": {
    "type": "default"
  },
  "role": "reader"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error

Get the specified ACL rule

  • Method: GET
  • Path: /calendars/{calId}/acl/{aclId}
  • Tags: acl

Returns an access control list (ACL) rule.

Scopes: calendar:read,calendar:read:admin

Granular Scopes: calendar:read:acl,calendar:read:acl:admin

Rate Limit Label: LIGHT

Responses

Status: 200 If successful, this method returns an ACL resource in the response body.
Content-Type: application/json
  • role (required)

    string, possible values: "none", "freeBusyReader", "reader", "writer", "owner" — The role assigned to the scope.

  • scope (required)

    object — The extent to which calendar access is granted by this ACL rule.

  • etag

    string — The ETag of the resource.

  • id

    string — The identifier of the ACL rule.

  • kind

    string, possible values: "calendar#aclRule" — The type of resource.

Example:

{
  "kind": "calendar#aclRule",
  "etag": "\"00000000000000000000\"",
  "id": "user:cba.fed@zoom.com",
  "scope": {
    "type": "default"
  },
  "role": "reader"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error

Delete an existing ACL rule

  • Method: DELETE
  • Path: /calendars/{calId}/acl/{aclId}
  • Tags: acl

Deletes an access control list (ACL) rule.

Scopes: calendar:write,calendar:write:admin

Granular Scopes: calendar:delete:acl,calendar:delete:acl:admin

Rate Limit Label: HEAVY

Responses

Status: 204 If successful, the specified ACL rule is deleted and this method returns an empty response body.
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error

Update the specified ACL rule

  • Method: PATCH
  • Path: /calendars/{calId}/acl/{aclId}
  • Tags: acl

Updates an access control list rule.

Scopes: calendar:write,calendar:write:admin

Granular Scopes: calendar:update:acl,calendar:update:acl:admin

Rate Limit Label: HEAVY

Request Body

Content-Type: application/json
  • role (required)

    string, possible values: "none", "freeBusyReader", "reader", "writer", "owner" — The role assigned to the scope.

  • scope (required)

    object — The extent to which calendar access is granted by this ACL rule.

    One of:

    • type (required)

      string, possible values: "default" — The type of the scope.

    • type (required)

      string, possible values: "domain" — The type of scope.

    • value

      string, format: hostname — The name of a domain.

    • type (required)

      string, possible values: "group", "user" — The type of scope.

    • value

      string, format: email — The email address of a user or group.

Example:

{
  "scope": {
    "type": "default"
  },
  "role": "reader"
}

Responses

Status: 200 If successful, this method returns an ACL resource in the response body.
Content-Type: application/json
  • role (required)

    string, possible values: "none", "freeBusyReader", "reader", "writer", "owner" — The role assigned to the scope.

  • scope (required)

    object — The extent to which calendar access is granted by this ACL rule.

  • etag

    string — The ETag of the resource.

  • id

    string — The identifier of the ACL rule.

  • kind

    string, possible values: "calendar#aclRule" — The type of resource.

Example:

{
  "kind": "calendar#aclRule",
  "etag": "\"00000000000000000000\"",
  "id": "user:cba.fed@zoom.com",
  "scope": {
    "type": "default"
  },
  "role": "reader"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error

List the calendars in the user's own calendarList

  • Method: GET
  • Path: /calendars/users/{userIdentifier}/calendarList
  • Tags: calendar list

Returns the calendars in the user's calendar list.

Scopes: calendar:read,calendar:read:admin

Granular Scopes: calendar:read:list_calendar_lists

Rate Limit Label: HEAVY

Responses

Status: 200 If successful, this method returns a response body with the following structure:
Content-Type: application/json
  • etag

    string — The ETag of the collection.

  • items

    array — The calendars in the user's calendar list.

    Items:

    • id (required)

      string, format: email — The identifier of the calendar.

    • accessRole

      string, possible values: "freeBusyReader", "reader", "writer", "owner" — The effective access role that the authenticated user has on the calendar.

    • backgroundColor

      string — The main color of the calendar in the hexadecimal format.

    • colorId

      string — The color of the calendar.

    • defaultAllDayReminders

      array — The default reminders for all day events that the authenticated user has for this calendar.

      Items:

      • method

        string, possible values: "email", "popup" — The method this reminder uses.

      • minutes

        integer — The number of minutes before the start of the event when the reminder should trigger.

    • defaultReminders

      array — The default reminders for non-all day events that the authenticated user has for this calendar.

      Items:

      • method

        string, possible values: "email", "popup" — The method this reminder uses.

      • minutes

        integer — The number of minutes before the start of the event when the reminder should trigger.

    • deleted

      boolean — Whether this calendar list entry has been deleted from the calendar list.

    • description

      string — The description of the calendar.

    • etag

      string — The ETag of the resource.

    • foregroundColor

      string — The foreground color of the calendar in the hexadecimal format.

    • hidden

      boolean — Whether the calendar has been hidden from the list.

    • kind

      string — The type of the resource.

    • location

      string — The geographic location of the calendar as free-form text.

    • notificationSettings

      object — The notifications that the authenticated user is receiving for this calendar.

      • notifications

        array — The list of notifications set for this calendar.

        Items:

        • method

          string, possible values: "email" — The method that delivers the notification.

        • type

          string, possible values: "eventCreation", "eventChange", "eventCancellation", "eventResponse", "agenda" — The type of notification.

    • primary

      boolean — Whether the calendar is the primary calendar of the authenticated user.

    • selected

      boolean — Whether the calendar content shows up in the calendar UI.

    • summary

      string — The title of the calendar.

    • summaryOverride

      string — The summary that the authenticated user has set for this calendar.

    • timeZone

      string — The time zone of the calendar.

  • kind

    string — The type of the collection.

  • nextPageToken

    string — The token that accesses the next page of this result.

Example:

{
  "kind": "calendar#calendarList",
  "etag": "\"00000000000000000000\"",
  "nextPageToken": "c_fn3h8xf6ce6ehefnclpp869700@group.calendar.zoom.us!",
  "items": [
    {
      "kind": "calendar#calendarListEntry",
      "etag": "\"00000000000000000000\"",
      "id": "abc.def@zoom.com",
      "summary": "My calendar",
      "description": "Calendar description",
      "location": "San Jose",
      "timeZone": "America/Los_Angeles",
      "colorId": "6",
      "backgroundColor": "#0088aa",
      "foregroundColor": "#ffffff",
      "hidden": false,
      "selected": false,
      "accessRole": "freeBusyReader",
      "defaultReminders": [
        {
          "method": "email",
          "minutes": 5
        }
      ],
      "defaultAllDayReminders": [
        {
          "method": "email",
          "minutes": 5
        }
      ],
      "notificationSettings": {
        "notifications": [
          {
            "type": "eventCreation",
            "method": "email"
          }
        ]
      },
      "primary": false,
      "deleted": false,
      "summaryOverride": "new summary"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error

Insert an existing calendar to the user's own calendarList

  • Method: POST
  • Path: /calendars/users/{userIdentifier}/calendarList
  • Tags: calendar list

Inserts an existing calendar into the user's calendar list. The user can be me or a given calendar ID.

Scopes: calendar:write,calendar:write:admin

Granular Scopes: calendar:write:calendar_list

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • id (required)

    string, format: email — The identifier of the calendar.

  • accessRole

    string, possible values: "freeBusyReader", "reader", "writer", "owner" — The effective access role that the authenticated user has on the calendar.

  • backgroundColor

    string — The main color of the calendar in the hexadecimal format.

  • colorId

    string — The color of the calendar.

  • defaultAllDayReminders

    array — The default reminders for all day events that the authenticated user has for this calendar.

    Items:

    • method

      string, possible values: "email", "popup" — The method this reminder uses.

    • minutes

      integer — The number of minutes before the start of the event when the reminder should trigger.

  • defaultReminders

    array — The default reminders for non-all day events that the authenticated user has for this calendar.

    Items:

    • method

      string, possible values: "email", "popup" — The method this reminder uses.

    • minutes

      integer — The number of minutes before the start of the event when the reminder should trigger.

  • deleted

    boolean — Whether this calendar list entry has been deleted from the calendar list.

  • description

    string — The description of the calendar.

  • foregroundColor

    string — The foreground color of the calendar in the hexadecimal format.

  • hidden

    boolean — Whether the calendar has been hidden from the list.

  • location

    string — The geographic location of the calendar as free-form text.

  • notificationSettings

    object — The notifications that the authenticated user is receiving for this calendar.

    • notifications

      array — The list of notifications set for this calendar.

      Items:

      • method

        string, possible values: "email" — The method that delivers the notification.

      • type

        string, possible values: "eventCreation", "eventChange", "eventCancellation", "eventResponse", "agenda" — The type of notification.

  • primary

    boolean — Whether the calendar is the primary calendar of the authenticated user.

  • selected

    boolean — Whether the calendar content shows up in the calendar UI.

  • summary

    string — The title of the calendar.

  • summaryOverride

    string — The summary that the authenticated user has set for this calendar.

  • timeZone

    string — The time zone of the calendar.

Example:

{
  "id": "abc.def@zoom.com",
  "summary": "My calendar",
  "description": "Calendar description",
  "location": "San Jose",
  "timeZone": "America/Los_Angeles",
  "colorId": "6",
  "backgroundColor": "#0088aa",
  "foregroundColor": "#ffffff",
  "hidden": false,
  "selected": false,
  "accessRole": "freeBusyReader",
  "defaultReminders": [
    {
      "method": "email",
      "minutes": 5
    }
  ],
  "defaultAllDayReminders": [
    {
      "method": "email",
      "minutes": 5
    }
  ],
  "notificationSettings": {
    "notifications": [
      {
        "type": "eventCreation",
        "method": "email"
      }
    ]
  },
  "primary": false,
  "deleted": false,
  "summaryOverride": "new summary"
}

Responses

Status: 200 If successful, this method returns a CalendarList resource in the response body.
Content-Type: application/json
  • id (required)

    string, format: email — The identifier of the calendar.

  • accessRole

    string, possible values: "freeBusyReader", "reader", "writer", "owner" — The effective access role that the authenticated user has on the calendar.

  • backgroundColor

    string — The main color of the calendar in the hexadecimal format.

  • colorId

    string — The color of the calendar.

  • defaultAllDayReminders

    array — The default reminders for all day events that the authenticated user has for this calendar.

    Items:

    • method

      string, possible values: "email", "popup" — The method that this reminder uses.

    • minutes

      integer — The number of minutes before the start of the event when the reminder should trigger.

  • defaultReminders

    array — The default reminders for non-all day events that the authenticated user has for this calendar.

    Items:

    • method

      string, possible values: "email", "popup" — The method that this reminder uses.

    • minutes

      integer — The number of minutes before the start of the event when the reminder should trigger.

  • deleted

    boolean — Whether this calendar list entry has been deleted from the calendar list.

  • description

    string — The description of the calendar.

  • etag

    string — The ETag of the resource.

  • foregroundColor

    string — The foreground color of the calendar in the hexadecimal format

  • hidden

    boolean — Whether the calendar has been hidden from the list.

  • kind

    string — The type of the resource.

  • location

    string — The geographic location of the calendar as free-form text.

  • notificationSettings

    object — The notifications that the authenticated user is receiving for this calendar.

    • notifications

      array — The list of notifications set for this calendar.

      Items:

      • method

        string, possible values: "email" — The method that delivers the notification.

      • type

        string, possible values: "eventCreation", "eventChange", "eventCancellation", "eventResponse", "agenda" — The type of notification.

  • primary

    boolean — Whether the calendar is the primary calendar of the authenticated user.

  • selected

    boolean — Whether the calendar content shows up in the calendar UI.

  • summary

    string — The title of the calendar.

  • summaryOverride

    string — The summary that the authenticated user has set for this calendar.

  • timeZone

    string — The time zone of the calendar.

Example:

{
  "kind": "calendar#calendarListEntry",
  "etag": "\"00000000000000000000\"",
  "id": "abc.def@zoom.com",
  "summary": "My calendar",
  "description": "Calendar description",
  "location": "San Jose",
  "timeZone": "America/Los_Angeles",
  "colorId": "6",
  "backgroundColor": "#0088aa",
  "foregroundColor": "#ffffff",
  "hidden": false,
  "selected": false,
  "accessRole": "freeBusyReader",
  "defaultReminders": [
    {
      "method": "email",
      "minutes": 5
    }
  ],
  "defaultAllDayReminders": [
    {
      "method": "email",
      "minutes": 5
    }
  ],
  "notificationSettings": {
    "notifications": [
      {
        "type": "eventCreation",
        "method": "email"
      }
    ]
  },
  "primary": false,
  "deleted": false,
  "summaryOverride": "new summary"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error

Get a specified calendar from the user's own calendarList

  • Method: GET
  • Path: /calendars/users/{userIdentifier}/calendarList/{calendarId}
  • Tags: calendar list

Returns a calendar from the user's calendar list. The user can be me or a given calendar ID.

Scopes: calendar:read,calendar:read:admin

Granular Scopes: calendar:read:calendar_list

Rate Limit Label: LIGHT

Responses

Status: 200 If successful, this method returns a CalendarList resource in the response body.
Content-Type: application/json
  • id (required)

    string, format: email — The identifier of the calendar.

  • accessRole

    string, possible values: "freeBusyReader", "reader", "writer", "owner" — The effective access role that the authenticated user has on the calendar.

  • backgroundColor

    string — The main color of the calendar in the hexadecimal format.

  • colorId

    string — The color of the calendar.

  • defaultAllDayReminders

    array — The default reminders for all day events that the authenticated user has for this calendar.

    Items:

    • method

      string, possible values: "email", "popup" — The method this reminder uses.

    • minutes

      integer — The number of minutes before the start of the event when the reminder should trigger.

  • defaultReminders

    array — The default reminders for non-all day events that the authenticated user has for this calendar.

    Items:

    • method

      string, possible values: "email", "popup" — The method this reminder uses.

    • minutes

      integer — The number of minutes before the start of the event when the reminder should trigger.

  • deleted

    boolean — Whether this calendar list entry has been deleted from the calendar list.

  • description

    string — The description of the calendar.

  • etag

    string — The ETag of the resource.

  • foregroundColor

    string — The foreground color of the calendar in the hexadecimal format.

  • hidden

    boolean — Whether the calendar has been hidden from the list.

  • kind

    string — The type of the resource.

  • location

    string — The geographic location of the calendar as free-form text.

  • notificationSettings

    object — The notifications that the authenticated user is receiving for this calendar.

    • notifications

      array — The list of notifications set for this calendar.

      Items:

      • method

        string, possible values: "email" — The method that delivers the notification.

      • type

        string, possible values: "eventCreation", "eventChange", "eventCancellation", "eventResponse", "agenda" — The type of notification.

  • primary

    boolean — Whether the calendar is the primary calendar of the authenticated user.

  • selected

    boolean — Whether the calendar content shows up in the calendar UI.

  • summary

    string — The title of the calendar.

  • summaryOverride

    string — The summary that the authenticated user has set for this calendar.

  • timeZone

    string — The time zone of the calendar.

Example:

{
  "kind": "calendar#calendarListEntry",
  "etag": "\"00000000000000000000\"",
  "id": "abc.def@zoom.com",
  "summary": "My calendar",
  "description": "Calendar description",
  "location": "San Jose",
  "timeZone": "America/Los_Angeles",
  "colorId": "6",
  "backgroundColor": "#0088aa",
  "foregroundColor": "#ffffff",
  "hidden": false,
  "selected": false,
  "accessRole": "freeBusyReader",
  "defaultReminders": [
    {
      "method": "email",
      "minutes": 5
    }
  ],
  "defaultAllDayReminders": [
    {
      "method": "email",
      "minutes": 5
    }
  ],
  "notificationSettings": {
    "notifications": [
      {
        "type": "eventCreation",
        "method": "email"
      }
    ]
  },
  "primary": false,
  "deleted": false,
  "summaryOverride": "new summary"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error

Delete an existing calendar from the user's own calendarList

  • Method: DELETE
  • Path: /calendars/users/{userIdentifier}/calendarList/{calendarId}
  • Tags: calendar list

Removes a calendar from the user's calendar list. The user can be me or a given calendar ID.

Scopes: calendar:write,calendar:write:admin

Granular Scopes: calendar:delete:calendar_list

Rate Limit Label: LIGHT

Responses

Status: 204 If successful, the specified calendar is removed from the user's own calendarList. This method returns an empty response body.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error

Update an existing calendar in the user's own calendarList

  • Method: PATCH
  • Path: /calendars/users/{userIdentifier}/calendarList/{calendarId}
  • Tags: calendar list

Updates an existing calendar on the user's calendar list.

Scopes: calendar:write,calendar:write:admin

Granular Scopes: calendar:update:calendar_list

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • id (required)

    string, format: email — The identifier of the calendar.

  • accessRole

    string, possible values: "freeBusyReader", "reader", "writer", "owner" — The effective access role that the authenticated user has on the calendar.

  • backgroundColor

    string — The main color of the calendar in the hexadecimal format.

  • colorId

    string — The color of the calendar.

  • defaultAllDayReminders

    array — The default reminders for all day events that the authenticated user has for this calendar.

    Items:

    • method

      string, possible values: "email", "popup" — The method this reminder uses.

    • minutes

      integer — The number of minutes before the start of the event when the reminder should trigger.

  • defaultReminders

    array — The default reminders for non-all day events that the authenticated user has for this calendar.

    Items:

    • method

      string, possible values: "email", "popup" — The method that this reminder uses.

    • minutes

      integer — The number of minutes before the start of the event when the reminder should trigger.

  • deleted

    boolean — Whether this calendar list entry has been deleted from the calendar list.

  • description

    string — The description of the calendar.

  • foregroundColor

    string — The foreground color of the calendar in the hexadecimal format.

  • hidden

    boolean — Whether the calendar has been hidden from the list.

  • location

    string — The geographic location of the calendar as free-form text.

  • notificationSettings

    object — The notifications that the authenticated user is receiving for this calendar.

    • notifications

      array — The list of notifications set for this calendar.

      Items:

      • method

        string, possible values: "email" — The method to deliver the notification.

      • type

        string, possible values: "eventCreation", "eventChange", "eventCancellation", "eventResponse", "agenda" — The type of notification.

  • primary

    boolean — Whether the calendar is the primary calendar of the authenticated user.

  • selected

    boolean — Whether the calendar content shows up in the calendar UI.

  • summary

    string — The title of the calendar.

  • summaryOverride

    string — The summary that the authenticated user has set for this calendar.

  • timeZone

    string — The time zone of the calendar.

Example:

{
  "id": "abc.def@zoom.com",
  "summary": "My calendar",
  "description": "Calendar description",
  "location": "San Jose",
  "timeZone": "America/Los_Angeles",
  "colorId": "6",
  "backgroundColor": "#0088aa",
  "foregroundColor": "#ffffff",
  "hidden": false,
  "selected": false,
  "accessRole": "freeBusyReader",
  "defaultReminders": [
    {
      "method": "email",
      "minutes": 5
    }
  ],
  "defaultAllDayReminders": [
    {
      "method": "email",
      "minutes": 5
    }
  ],
  "notificationSettings": {
    "notifications": [
      {
        "type": "eventCreation",
        "method": "email"
      }
    ]
  },
  "primary": false,
  "deleted": false,
  "summaryOverride": "new summary"
}

Responses

Status: 200 If successful, this method returns a CalendarList resource in the response body.
Content-Type: application/json
  • id (required)

    string, format: email — The identifier of the calendar.

  • accessRole

    string, possible values: "freeBusyReader", "reader", "writer", "owner" — The effective access role that the authenticated user has on the calendar.

  • backgroundColor

    string — The main color of the calendar in the hexadecimal format.

  • colorId

    string — The color of the calendar.

  • defaultAllDayReminders

    array — The default reminders for all day events that the authenticated user has for this calendar.

    Items:

    • method

      string, possible values: "email", "popup" — The method this reminder uses.

    • minutes

      integer — The number of minutes before the start of the event when the reminder should trigger.

  • defaultReminders

    array — The default reminders for non-all day events that the authenticated user has for this calendar.

    Items:

    • method

      string, possible values: "email", "popup" — The method this reminder uses.

    • minutes

      integer — The number of minutes before the start of the event when the reminder should trigger.

  • deleted

    boolean — Whether this calendar list entry has been deleted from the calendar list.

  • description

    string — The description of the calendar.

  • etag

    string — The ETag of the resource.

  • foregroundColor

    string — The foreground color of the calendar in the hexadecimal format.

  • hidden

    boolean — Whether the calendar has been hidden from the list.

  • kind

    string — The type of the resource.

  • location

    string — The geographic location of the calendar as free-form text.

  • notificationSettings

    object — The notifications that the authenticated user is receiving for this calendar.

    • notifications

      array — The list of notifications set for this calendar.

      Items:

      • method

        string, possible values: "email" — The method that delivers the notification.

      • type

        string, possible values: "eventCreation", "eventChange", "eventCancellation", "eventResponse", "agenda" — The type of notification.

  • primary

    boolean — Whether the calendar is the primary calendar of the authenticated user.

  • selected

    boolean — Whether the calendar content shows up in the calendar UI.

  • summary

    string — The title of the calendar.

  • summaryOverride

    string — The summary that the authenticated user has set for this calendar.

  • timeZone

    string — The time zone of the calendar.

Example:

{
  "kind": "calendar#calendarListEntry",
  "etag": "\"00000000000000000000\"",
  "id": "abc.def@zoom.com",
  "summary": "My calendar",
  "description": "Calendar description",
  "location": "San Jose",
  "timeZone": "America/Los_Angeles",
  "colorId": "6",
  "backgroundColor": "#0088aa",
  "foregroundColor": "#ffffff",
  "hidden": false,
  "selected": false,
  "accessRole": "freeBusyReader",
  "defaultReminders": [
    {
      "method": "email",
      "minutes": 5
    }
  ],
  "defaultAllDayReminders": [
    {
      "method": "email",
      "minutes": 5
    }
  ],
  "notificationSettings": {
    "notifications": [
      {
        "type": "eventCreation",
        "method": "email"
      }
    ]
  },
  "primary": false,
  "deleted": false,
  "summaryOverride": "new summary"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error

Create a new secondary calendar

  • Method: POST
  • Path: /calendars
  • Tags: calendars

Creates a secondary calendar.

Scopes: calendar:write,calendar:write:admin

Granular Scopes: calendar:write:calendar,calendar:write:calendar:admin

Rate Limit Label: HEAVY

Request Body

Content-Type: application/json
  • summary (required)

    string — The title of the calendar.

Example:

{
  "summary": "my calendar"
}

Responses

Status: 200 If successful, this method returns a calendars resource in the response body.
Content-Type: application/json
  • description

    string — The description of the calendar.

  • etag

    string — The ETag of the resource.

  • id

    string, format: email — The identifier of the calendar.

  • kind

    string, possible values: "calendar#calendar" — The type of resource.

  • location

    string — The geographic location of the calendar as free-form text.

  • summary

    string — The title of the calendar.

  • timeZone

    string — The time zone of the calendar.

Example:

{
  "kind": "calendar#calendar",
  "etag": "\"00000000000000000000\"",
  "id": "abc.def@zoom.com",
  "summary": "My calendar",
  "timeZone": "America/Los_Angeles",
  "description": "calendar description",
  "location": "San Jose"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error

Get the specified calendar

  • Method: GET
  • Path: /calendars/{calId}
  • Tags: calendars

Returns metadata for a calendar.

Scopes: calendar:read,calendar:read:admin

Granular Scopes: calendar:read:calendar,calendar:read:calendar:admin

Rate Limit Label: LIGHT

Responses

Status: 200 If successful, this method returns a calendar's resource in the response body.
Content-Type: application/json
  • etag (required)

    string — The ETag of the resource.

  • id (required)

    string, format: email — The identifier of the calendar.

  • kind (required)

    string, possible values: "calendar#calendar" — The type of the resource.

  • summary (required)

    string — The title of the calendar.

  • timeZone (required)

    string — The time zone of the calendar.

  • description

    string — The description of the calendar.

  • location

    string — The geographic location of the calendar as free-form text.

Example:

{
  "kind": "calendar#calendar",
  "etag": "\"00000000000000000000\"",
  "id": "abc.def@zoom.com",
  "summary": "My calendar",
  "timeZone": "America/Los_Angeles",
  "description": "calendar description",
  "location": "San Jose"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error

Delete a calendar owned by a user

  • Method: DELETE
  • Path: /calendars/{calId}
  • Tags: calendars

Deletes a calendar

Scopes: calendar:write,calendar:write:admin

Granular Scopes: calendar:delete:calendar,calendar:delete:calendar:admin

Rate Limit Label: LIGHT

Responses

Status: 204 If successful, the specified calendar is deleted and this method returns an empty response body.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error

Update the specified calendar

  • Method: PATCH
  • Path: /calendars/{calId}
  • Tags: calendars

Updates metadata for a calendar.

Scopes: calendar:write,calendar:write:admin

Granular Scopes: calendar:update:calendar,calendar:update:calendar:admin

Rate Limit Label: HEAVY

Request Body

Content-Type: application/json
  • description

    string — The description of the calendar.

  • location

    string — The geographic location of the calendar as free-form text.

  • summary

    string — The title of the calendar.

  • timeZone

    string — The time zone of the calendar.

Example:

{
  "summary": "My calendar",
  "timeZone": "America/Los_Angeles",
  "description": "calendar description",
  "location": "San Jose"
}

Responses

Status: 200 If successful, this method returns a Calendars resource in the response body.
Content-Type: application/json
  • description

    string — The description of the calendar.

  • etag

    string — The ETag of the resource.

  • id

    string, format: email — The identifier of the calendar.

  • kind

    string, possible values: "calendar#calendar" — The type of the resource.

  • location

    string — The geographic location of the calendar as free-form text.

  • summary

    string — The title of the calendar.

  • timeZone

    string — The time zone of the calendar.

Example:

{
  "kind": "calendar#calendar",
  "etag": "\"00000000000000000000\"",
  "id": "abc.def@zoom.com",
  "summary": "My calendar",
  "timeZone": "America/Los_Angeles",
  "description": "calendar description",
  "location": "San Jose"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error

Get the color definitions for calendars and events

  • Method: GET
  • Path: /calendars/colors
  • Tags: colors

Returns the color definitions for calendars and events.

Scopes: calendar:read,calendar:read:admin

Granular Scopes: calendar:read:color,calendar:read:color:admin

Rate Limit Label: LIGHT

Responses

Status: 200 If successful, this method returns a color's resource in the response body.
Content-Type: application/json
  • calendar

    array — A global palette of calendar colors, mapping from the color ID to its definition.

    Items:

    • color_id

      string — The ID of the color.

    • value

      object

      • background

        string — The background color value.

      • foreground

        string — The foreground color value.

  • event

    array — A global palette of event colors, mapping from the color ID to its definition.

    Items:

    • color_id

      string — The ID of the color.

    • value

      object

      • background

        string — The background color value.

      • foreground

        string — The foreground color value.

  • kind

    string, possible values: "calendar#colors" — ThetType of the resource.

  • updated

    string, format: date-time — The last modification time of the color palette.

Example:

{
  "kind": "\"calendar#colors\"",
  "updated": "2012-02-14T00:00:00Z",
  "calendar": [
    {
      "color_id": "\"1\"",
      "value": {
        "foreground": "\"#FD3D4A\"",
        "background": "\"#F7F9FA\""
      }
    }
  ],
  "event": [
    {
      "color_id": "\"1\"",
      "value": {
        "foreground": "\"#FD3D4A\"",
        "background": "\"#F7F9FA\""
      }
    }
  ]
}
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List events on the specified calendar

  • Method: GET
  • Path: /calendars/{calId}/events
  • Tags: events

Returns events on the specified calendar.

Scopes: calendar:read:admin,calendar:read

Granular Scopes: calendar:read:list_events,calendar:read:list_events:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 If successful, this method returns a response body with the following structure:
Content-Type: application/json
  • accessRole

    string, possible values: "none", "freeBusyReader", "reader", "writer", "owner" — **Read-only** The user's access role for this calendar.

  • defaultReminders

    array — The default reminders on the calendar for the authenticated user.

    Items:

    • method

      string, possible values: "email", "popup" — The method this reminder uses.

    • minutes

      integer — The number of minutes before the start of the event when the reminder should trigger.

  • description

    object — **Read-only** The description of the calendar.

  • etag

    string — The ETag of the collection.

  • items

    array — The list of events on the calendar.

    Items:

    • end (required)

      object — The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance.

      • date

        string, format: date — The date, in the format "yyyy-mm-dd", if this is an all-day event.

      • dateTime

        string, format: date-time — The time, as a combined date-time value (formatted according to RFC3339). We require a time zone offset unless you explicitly specify it in `timeZone`.

      • timeZone

        string — The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events we require this field. It specifies the time zone used to expand the recurrence. For single events this field is optional and indicates a custom time zone for the event's start or end.

    • start (required)

      object — The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance.

      • date

        string, format: date — The date, in the format "yyyy-mm-dd", if this is an all-day event.

      • dateTime

        string, format: date-time — The time, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in `timeZone`.

      • timeZone

        string — The time zone in which there is a specified time. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events wwe require this field. It specifies the time zone used to expand the recurrence. For single events this field is optional and indicates a custom time zone for the event's start or end.

    • attendees

      array — The attendees of the event.

      Items:

      • email (required)

        string, format: email — The attendee's email address.

      • additionalGuests

        integer — **Optional** The number of additional guests. The default is 0.

      • displayName

        string — The attendee's name, if available.

      • optional

        boolean — **Optional** Whether this is an optional attendee. The default is False.

      • resource

        boolean — Whether the attendee is a resource. It only sets when someone adds the attendee to the event for the first time.

      • responseStatus

        string, possible values: "needsAction", "declined", "tentative", "accepted" — The attendee's response status.

    • colorId

      string — The color of the event. This is an ID referring to an entry in the event section of the colors definition (use `color.get`)

    • created

      string — The creation time of the event.

    • creator

      object — The creator of the event.

      • email

        string — The creator's email address.

    • description

      string — The description of the event.

    • guestsCanInviteOthers

      boolean — **Optional** Whether attendees other than the organizer can invite others to the event. The default is True.

    • guestsCanModify

      boolean — **Optional** Whether attendees other than the organizer can modify the event. The default is False.

    • guestsCanSeeOtherGuests

      boolean — **Optional** Whether attendees other than the organizer can see who the event's attendees are. The default is True.

    • id

      string — The identifier of the event.

    • kind

      string — The type of the resource.

    • location

      string — The geographic location of the event as free-form text.

    • organizer

      object — The organizer of the event.

      • email

        string — The organizer's email address.

    • recurrence

      array — The list of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event

      Items:

      string — A recurring rule.

    • reminders

      object — The information about the event's reminders for the authenticated user.

      • overrides

        array — If the event doesn't use the default reminders, this field lists the reminders specific to the event. If not, it indicates that no reminders are set for this event.

        Items:

        • method

          string, possible values: "email", "popup" — The method this reminder uses.

        • minutes

          integer — The number of minutes before the start of the event when the reminder should trigger.

      • useDefault

        boolean — Whether the default reminders of the calendar apply to the event.

    • status

      string, possible values: "confirmed", "tentative", "cancelled" — The status of the event.

    • summary

      string — The title of the event.

    • transparency

      string, possible values: "opaque", "transparent" — Whether the event blocks time on the calendar.

    • updated

      string — The last modification time of the event.

    • visibility

      string, possible values: "default", "public", "private" — The visibility of the event.

  • kind

    string — The type of the collection ("calendar#events").

  • nextPageToken

    string — The token to access the next page of this result.

  • nextSyncToken

    string

  • summary

    string — **Read-only** The title of the calendar.

  • timeZone

    string — **Read-only** The time zone of the calendar.

  • updated

    string, format: date-time — The last modification time of the calendar (as a RFC3339 timestamp). Read-only.

Example:

{
  "kind": "calendar#events",
  "etag": "\"00000000000000000000\"",
  "summary": "calendar summary",
  "description": "calendar description",
  "updated": "2020-01-01T00:00:00Z",
  "timeZone": "America/Los_Angeles",
  "accessRole": "owner",
  "defaultReminders": [
    {
      "method": "email",
      "minutes": 5
    }
  ],
  "nextPageToken": "ffffffffa8b32bff_te7ldipj31fqfo3mw3jjzgz6c0!",
  "items": [
    {
      "start": {
        "date": "2020-01-01",
        "dateTime": "2020-01-01T00:00:00Z",
        "timeZone": "America/Los_Angeles"
      },
      "end": {
        "date": "2020-01-01",
        "dateTime": "2020-01-01T00:00:00Z",
        "timeZone": "America/Los_Angeles"
      },
      "attendees": [
        {
          "additionalGuests": 1,
          "displayName": "Mark Joe",
          "email": "mark.joe@zoom.com",
          "optional": false,
          "resource": false,
          "responseStatus": "needsAction"
        }
      ],
      "colorId": "5",
      "description": "event description",
      "guestsCanInviteOthers": true,
      "guestsCanModify": false,
      "guestsCanSeeOtherGuests": true,
      "location": "San Jose",
      "recurrence": [
        "RRULE:FREQ=DAILY;COUNT=2;INTERVAL=3"
      ],
      "reminders": {
        "useDefault": false,
        "overrides": [
          {
            "method": "email",
            "minutes": 5
          }
        ]
      },
      "status": "confirmed",
      "summary": "event title",
      "transparency": "transparent",
      "visibility": "default",
      "id": "0lyk1qjjd8t8thnf5y1f02a6c0",
      "created": "2020-01-01T00:00:00Z",
      "creator": {
        "email": "mark.joe@zoom.com"
      },
      "organizer": {
        "email": "mark.joe@zoom.com"
      },
      "kind": "calendar#event",
      "updated": "2020-01-01T00:00:00Z"
    }
  ],
  "nextSyncToken": "The next page token retrieves events changed after returning this result. This system omits it when you add the `nextPageToken`. Users need to retrieve all pages of result before getting the `nextSyncToken`."
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error

Insert a new event to the specified calendar

  • Method: POST
  • Path: /calendars/{calId}/events
  • Tags: events

Creates an event.

Scopes: calendar:write,calendar:write:admin

Granular Scopes: calendar:write:event,calendar:write:event:admin

Rate Limit Label: HEAVY

Request Body

Content-Type: application/json
  • end (required)

    object — The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance.

    • date

      string, format: date — The date, in the format "yyyy-mm-dd", if this is an all-day event.

    • dateTime

      string, format: date-time — The time, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in `timeZone`.

    • timeZone

      string — The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event's start or end.

  • start (required)

    object — The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance.

    • date

      string, format: date — The date, in the format "yyyy-mm-dd", if this is an all-day event.

    • dateTime

      string, format: date-time — The time, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in `timeZone`.

    • timeZone

      string — The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event's start or end.

  • attendees

    array — The attendees of the event.

    Items:

    • email (required)

      string, format: email — The attendee's email address.

    • additionalGuests

      integer — The number of additional guests. Optional. The default is 0.

    • displayName

      string — The attendee's name, if available.

    • optional

      boolean — Whether this is an optional attendee. Optional. The default is False.

    • resource

      boolean — Whether the attendee is a resource. It can only be set when the attendee is added to the event for the first time.

    • responseStatus

      string, possible values: "needsAction", "declined", "tentative", "accepted" — The attendee's response status.

  • colorId

    string — The color of the event. This is an ID referring to an entry in the event section of the colors definition (`use color.get`).

  • description

    string — The description of the event.

  • guestsCanInviteOthers

    boolean — Whether attendees other than the organizer can invite others to the event. Optional. The default is True.

  • guestsCanModify

    boolean — Whether attendees other than the organizer can modify the event. Optional. The default is False.

  • guestsCanSeeOtherGuests

    boolean — Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.

  • location

    string — The geographic location of the event as free-form text.

  • recurrence

    array — The list of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event.

    Items:

    string — A recurring rule.

  • reminders

    object — The information about the event's reminders for the authenticated user.

    • overrides

      array — If the event doesn't use the default reminders, this field lists the reminders specific to the event. If not, it indicates that no reminders are set for this event.

      Items:

      • method

        string, possible values: "email", "popup" — The method that this reminder uses.

      • minutes

        integer — Number of minutes before the start of the event when the reminder should trigger.

    • useDefault

      boolean — Whether the default reminders of the calendar apply to the event.

  • status

    string, possible values: "confirmed", "tentative", "cancelled" — The status of the event.

  • summary

    string — The title of the event.

  • transparency

    string, possible values: "opaque", "transparent" — Whether the event blocks time on the calendar.

  • visibility

    string, possible values: "default", "public", "private" — The visibility of the event.

Example:

{
  "start": {
    "date": "2020-01-01",
    "dateTime": "2020-01-01T00:00:00Z",
    "timeZone": "America/Los_Angeles"
  },
  "end": {
    "date": "2020-01-01",
    "dateTime": "2020-01-01T00:00:00Z",
    "timeZone": "America/Los_Angeles"
  },
  "attendees": [
    {
      "additionalGuests": 1,
      "displayName": "Mark Joe",
      "email": "mark.joe@zoom.com",
      "optional": false,
      "resource": false,
      "responseStatus": "needsAction"
    }
  ],
  "colorId": "5",
  "description": "event description",
  "guestsCanInviteOthers": true,
  "guestsCanModify": false,
  "guestsCanSeeOtherGuests": true,
  "location": "San Jose",
  "recurrence": [
    "RRULE:FREQ=DAILY;COUNT=2;INTERVAL=3"
  ],
  "reminders": {
    "useDefault": false,
    "overrides": [
      {
        "method": "email",
        "minutes": 5
      }
    ]
  },
  "status": "confirmed",
  "summary": "event title",
  "transparency": "transparent",
  "visibility": "default"
}

Responses

Status: 200 If successful, this method returns an events resource in the response body.
Content-Type: application/json
  • attendees

    array — The attendees of the event.

    Items:

    • email (required)

      string, format: email — The attendee's email address

    • additionalGuests

      integer — The number of additional guests. Optional. The default is 0.

    • displayName

      string — The attendee's name, if available.

    • optional

      boolean — Whether this is an optional attendee. Optional. The default is False.

    • organizer

      boolean — Whether this is the organizer of this event. Optional. The default is False.

    • resource

      boolean — Whether the attendee is a resource. It can only be set when the attendee is added to the event for the first time.

    • responseStatus

      string, possible values: "needsAction", "declined", "tentative", "accepted" — The attendee's response status.

    • self

      boolean — Whether this is the attendee sending this request. Optional. The default is False.

  • colorId

    string — The color of the event. This is an ID referring to an entry in the event section of the colors definition (use `color.get`)

  • created

    string — The creation time of the event.

  • creator

    object — The creator of the event.

    • email

      string — The creator's email address.

  • description

    string — Description of the event.

  • end

    object — The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance.

    • date

      string, format: date — The date, in the format "yyyy-mm-dd", if this is an all-day event.

    • dateTime

      string, format: date-time — The time, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in `timeZone`.

    • timeZone

      string — The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event's start or end.

  • guestsCanInviteOthers

    boolean — Whether attendees other than the organizer can invite others to the event. Optional. The default is True.

  • guestsCanModify

    boolean — Whether attendees other than the organizer can modify the event. Optional. The default is False.

  • guestsCanSeeOtherGuests

    boolean — Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.

  • id

    string — The identifier of the event.

  • kind

    string — The type of resource.

  • location

    string — The geographic location of the event as free-form text.

  • organizer

    object — The organizer of the event.

    • email

      string — The organizer's email address.

  • recurrence

    array — The list of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event.

    Items:

    string — A recurring rule.

  • reminders

    object — The information about the event's reminders for the authenticated user.

    • overrides

      array — If the event doesn't use the default reminders, this field lists the reminders specific to the event. If not, it indicates that no reminders are set for this event.

      Items:

      • method

        string, possible values: "email", "popup" — The method that this reminder uses.

      • minutes

        integer — The number of minutes before the start of the event when the reminder should trigger.

    • useDefault

      boolean — Whether the default reminders of the calendar apply to the event.

  • start

    object — The (inclusive) start time of the event. For a recurring event, this field is the start time of the first instance.

    • date

      string, format: date — The date, in the format "yyyy-mm-dd", if this is an all-day event.

    • dateTime

      string, format: date-time — The time, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in `timeZone`.

    • timeZone

      string — The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event's start or end.

  • status

    string, possible values: "confirmed", "tentative", "cancelled" — The status of the event.

  • summary

    string — The title of the event.

  • transparency

    string, possible values: "opaque", "transparent" — Whether the event blocks time on the calendar.

  • updated

    string — The last modification time of the event.

  • visibility

    string, possible values: "default", "public", "private" — The visibility of the event.

Example:

{
  "start": {
    "date": "2020-01-01",
    "dateTime": "2020-01-01T00:00:00Z",
    "timeZone": "America/Los_Angeles"
  },
  "end": {
    "date": "2020-01-01",
    "dateTime": "2020-01-01T00:00:00Z",
    "timeZone": "America/Los_Angeles"
  },
  "attendees": [
    {
      "additionalGuests": 1,
      "displayName": "Mark Joe",
      "organizer": false,
      "email": "mark.joe@zoom.com",
      "optional": false,
      "self": false,
      "resource": false,
      "responseStatus": "needsAction"
    }
  ],
  "colorId": "5",
  "description": "event description",
  "guestsCanInviteOthers": true,
  "guestsCanModify": false,
  "guestsCanSeeOtherGuests": true,
  "location": "San Jose",
  "recurrence": [
    "RRULE:FREQ=DAILY;COUNT=2;INTERVAL=3"
  ],
  "reminders": {
    "useDefault": false,
    "overrides": [
      {
        "method": "email",
        "minutes": 5
      }
    ]
  },
  "status": "confirmed",
  "summary": "event title",
  "transparency": "transparent",
  "visibility": "default",
  "id": "0lyk1qjjd8t8thnf5y1f02a6c0",
  "created": "2020-01-01T00:00:00Z",
  "creator": {
    "email": "mark.joe@zoom.com"
  },
  "organizer": {
    "email": "mark.joe@zoom.com"
  },
  "kind": "calendar#event",
  "updated": "2020-01-01T00:00:00Z"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error

Import event to the specified calendar

  • Method: POST
  • Path: /calendars/{calId}/events/import
  • Tags: events

Imports an event. This operation adds a private copy of an existing event to a calendar.

Scopes: calendar:write,calendar:write:admin

Granular Scopes: calendar:write:import_event,calendar:write:import_event:admin

Rate Limit Label: HEAVY

Request Body

Content-Type: application/json
  • end (required)

    object — The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance.

    • date

      string, format: date — The date, in the format "yyyy-mm-dd", if this is an all-day event.

    • dateTime

      string, format: date-time — The time, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in `timeZone`.

    • timeZone

      string — The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event's start or end.

  • start (required)

    object — The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance.

    • date

      string, format: date — The date, in the format "yyyy-mm-dd", if this is an all-day event.

    • dateTime

      string, format: date-time — The time, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in `timeZone`.

    • timeZone

      string — The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event's start or end.

  • attendees

    array — The attendees of the event.

    Items:

    • email (required)

      string, format: email — The attendee's email address.

    • additionalGuests

      integer — The number of additional guests. Optional. The default is 0.

    • displayName

      string — The attendee's name, if available.

    • optional

      boolean — Whether this is an optional attendee. Optional. The default is false.

    • resource

      boolean — Whether the attendee is a resource. It can only be set when the attendee is added to the event for the first time.

    • responseStatus

      string, possible values: "needsAction", "declined", "tentative", "accepted" — The attendee's response status.

  • colorId

    string — The color of the event. This is an ID referring to an entry in the event section of the colors definition (use `color.get`).

  • description

    string — Description of the event.

  • guestsCanInviteOthers

    boolean — Whether attendees other than the organizer can invite others to the event. Optional. The default is True.

  • guestsCanModify

    boolean — Whether attendees other than the organizer can modify the event. Optional. The default is False.

  • guestsCanSeeOtherGuests

    boolean — Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.

  • location

    string — The geographic location of the event as free-form text.

  • recurrence

    array — The list of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event.

    Items:

    string — A recurring rule.

  • reminders

    object — The information about the event's reminders for the authenticated user.

    • overrides

      array — If the event doesn't use the default reminders, this field lists the reminders specific to the event. If not set, it indicates that no reminders are set for this event.

      Items:

      • method

        string, possible values: "email", "popup" — The method that this reminder uses.

      • minutes

        integer — The number of minutes before the start of the event when the reminder should trigger.

    • useDefault

      boolean — Whether the default reminders of the calendar apply to the event.

  • status

    string, possible values: "confirmed", "tentative", "cancelled" — The status of the event.

  • summary

    string — The title of the event.

  • transparency

    string, possible values: "opaque", "transparent" — Whether the event blocks time on the calendar.

  • visibility

    string, possible values: "default", "public", "private" — The visibility of the event.

Example:

{
  "start": {
    "date": "2020-01-01",
    "dateTime": "2020-01-01T00:00:00Z",
    "timeZone": "America/Los_Angeles"
  },
  "end": {
    "date": "2020-01-01",
    "dateTime": "2020-01-01T00:00:00Z",
    "timeZone": "America/Los_Angeles"
  },
  "attendees": [
    {
      "additionalGuests": 1,
      "displayName": "Mark Joe",
      "email": "mark.joe@zoom.com",
      "optional": false,
      "resource": false,
      "responseStatus": "needsAction"
    }
  ],
  "colorId": "5",
  "description": "event description",
  "guestsCanInviteOthers": true,
  "guestsCanModify": false,
  "guestsCanSeeOtherGuests": true,
  "location": "San Jose",
  "recurrence": [
    "RRULE:FREQ=DAILY;COUNT=2;INTERVAL=3"
  ],
  "reminders": {
    "useDefault": false,
    "overrides": [
      {
        "method": "email",
        "minutes": 5
      }
    ]
  },
  "status": "confirmed",
  "summary": "event title",
  "transparency": "transparent",
  "visibility": "default"
}

Responses

Status: 200 If successful, this method returns an Events resource in the response body.
Content-Type: application/json
  • attendees

    array — The attendees of the event.

    Items:

    • email (required)

      string, format: email — The attendee's email address

    • additionalGuests

      integer — The number of additional guests. Optional. The default is 0.

    • displayName

      string — The attendee's name, if available.

    • optional

      boolean — Whether this is an optional attendee. Optional. The default is False.

    • resource

      boolean — Whether the attendee is a resource. It can only be set when the attendee is added to the event for the first time.

    • responseStatus

      string, possible values: "needsAction", "declined", "tentative", "accepted" — The attendee's response status.

  • colorId

    string — The color of the event. This is an ID referring to an entry in the event section of the colors definition (use `color.get`).

  • created

    string — The creation time of the event.

  • creator

    object — The creator of the event.

    • email

      string — The creator's email address.

  • description

    string — Description of the event.

  • end

    object — The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance.

    • date

      string, format: date — The date, in the format "yyyy-mm-dd", if this is an all-day event.

    • dateTime

      string, format: date-time — The time, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in `timeZone`.

    • timeZone

      string — The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event's start or end.

  • guestsCanInviteOthers

    boolean — Whether attendees other than the organizer can invite others to the event. Optional. The default is True.

  • guestsCanModify

    boolean — Whether attendees other than the organizer can modify the event. Optional. The default is False.

  • guestsCanSeeOtherGuests

    boolean — Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.

  • id

    string — The identifier of the event.

  • kind

    string — The type of the resource.

  • location

    string — The geographic location of the event as free-form text.

  • organizer

    object — The organizer of the event.

    • email

      string — The organizer's email address.

  • recurrence

    array — The list of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event.

    Items:

    string — A recurring rule.

  • reminders

    object — The information about the event's reminders for the authenticated user.

    • overrides

      array — If the event doesn't use the default reminders, this field lists the reminders specific to the event. If not it indicates that no reminders are set for this event.

      Items:

      • method

        string, possible values: "email", "popup" — The method that this reminder uses/

      • minutes

        integer — The number of minutes before the start of the event when the reminder should trigger.

    • useDefault

      boolean — Whether the default reminders of the calendar apply to the event.

  • start

    object — The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance.

    • date

      string, format: date — The date, in the format "yyyy-mm-dd", if this is an all-day event.

    • dateTime

      string, format: date-time — The time, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in `timeZone`.

    • timeZone

      string — The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event's start or end.

  • status

    string, possible values: "confirmed", "tentative", "cancelled" — The status of the event.

  • summary

    string — The title of the event.

  • transparency

    string, possible values: "opaque", "transparent" — Whether the event blocks time on the calendar.

  • updated

    string — The last modification time of the event.

  • visibility

    string, possible values: "default", "public", "private" — The visibility of the event.

Example:

{
  "start": {
    "date": "2020-01-01",
    "dateTime": "2020-01-01T00:00:00Z",
    "timeZone": "America/Los_Angeles"
  },
  "end": {
    "date": "2020-01-01",
    "dateTime": "2020-01-01T00:00:00Z",
    "timeZone": "America/Los_Angeles"
  },
  "attendees": [
    {
      "additionalGuests": 1,
      "displayName": "Mark Joe",
      "email": "mark.joe@zoom.com",
      "optional": false,
      "resource": false,
      "responseStatus": "needsAction"
    }
  ],
  "colorId": "5",
  "description": "event description",
  "guestsCanInviteOthers": true,
  "guestsCanModify": false,
  "guestsCanSeeOtherGuests": true,
  "location": "San Jose",
  "recurrence": [
    "RRULE:FREQ=DAILY;COUNT=2;INTERVAL=3"
  ],
  "reminders": {
    "useDefault": false,
    "overrides": [
      {
        "method": "email",
        "minutes": 5
      }
    ]
  },
  "status": "confirmed",
  "summary": "event title",
  "transparency": "transparent",
  "visibility": "default",
  "id": "0lyk1qjjd8t8thnf5y1f02a6c0",
  "created": "2020-01-01T00:00:00Z",
  "creator": {
    "email": "mark.joe@zoom.com"
  },
  "organizer": {
    "email": "mark.joe@zoom.com"
  },
  "kind": "calendar#event",
  "updated": "2020-01-01T00:00:00Z"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error

Quick add an event to the specified calendar

  • Method: POST
  • Path: /calendars/{calId}/events/quickAdd
  • Tags: events

Creates an event based on a simple text string.

Scopes: calendar:write,calendar:write:admin

Granular Scopes: calendar:write:quick_add_event,calendar:write:quick_add_event:admin

Rate Limit Label: HEAVY

Request Body

Content-Type: undefined

Example:

{}

Responses

Status: 200 If successful, this method returns an Events resource in the response body.
Content-Type: application/json
  • attendees

    array — The attendees of the event.

    Items:

    • email (required)

      string, format: email — The attendee's email address.

    • additionalGuests

      integer — The number of additional guests. Optional. The default is 0.

    • displayName

      string — The attendee's name, if available.

    • optional

      boolean — Whether this is an optional attendee. Optional. The default is False.

    • resource

      boolean — Whether the attendee is a resource. It can only be set when the attendee is added to the event for the first time.

    • responseStatus

      string, possible values: "needsAction", "declined", "tentative", "accepted" — The attendee's response status.

  • colorId

    string — The color of the event. This is an ID referring to an entry in the event section of the colors definition (use `color.get`).

  • created

    string — The creation time of the event.

  • creator

    object — The creator of the event.

    • email

      string — The creator's email address.

  • description

    string — The description of the event.

  • end

    object — The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance.

    • date

      string, format: date — The date, in the format "yyyy-mm-dd", if this is an all-day event.

    • dateTime

      string, format: date-time — The time, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in `timeZone`.

    • timeZone

      string — The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event's start or end.

  • guestsCanInviteOthers

    boolean — Whether attendees other than the organizer can invite others to the event. Optional. The default is True.

  • guestsCanModify

    boolean — Whether attendees other than the organizer can modify the event. Optional. The default is False.

  • guestsCanSeeOtherGuests

    boolean — Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.

  • id

    string — The identifier of the event.

  • kind

    string — The type of the resource.

  • location

    string — The geographic location of the event as free-form text.

  • organizer

    object — The organizer of the event.

    • email

      string — The organizer's email address

  • recurrence

    array — The list of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event.

    Items:

    string — A recurring rule.

  • reminders

    object — The information about the event's reminders for the authenticated user.

    • overrides

      array — If the event doesn't use the default reminders, this lists the reminders specific to the event. If not it indicates that no reminders are set for this event.

      Items:

      • method

        string, possible values: "email", "popup" — The method that this reminder uses.

      • minutes

        integer — The number of minutes before the start of the event when the reminder should trigger.

    • useDefault

      boolean — Whether the default reminders of the calendar apply to the event.

  • start

    object — The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance.

    • date

      string, format: date — The date, in the format "yyyy-mm-dd", if this is an all-day event.

    • dateTime

      string, format: date-time — The time, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in `timeZone`.

    • timeZone

      string — The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event's start or end.

  • status

    string, possible values: "confirmed", "tentative", "cancelled" — The status of the event.

  • summary

    string — The title of the event.

  • transparency

    string, possible values: "opaque", "transparent" — Whether the event blocks time on the calendar.

  • updated

    string — The last modification time of the event.

  • visibility

    string, possible values: "default", "public", "private" — The visibility of the event.

Example:

{
  "start": {
    "date": "2020-01-01",
    "dateTime": "2020-01-01T00:00:00Z",
    "timeZone": "America/Los_Angeles"
  },
  "end": {
    "date": "2020-01-01",
    "dateTime": "2020-01-01T00:00:00Z",
    "timeZone": "America/Los_Angeles"
  },
  "attendees": [
    {
      "additionalGuests": 1,
      "displayName": "Mark Joe",
      "email": "mark.joe@zoom.com",
      "optional": false,
      "resource": false,
      "responseStatus": "needsAction"
    }
  ],
  "colorId": "5",
  "description": "event description",
  "guestsCanInviteOthers": true,
  "guestsCanModify": false,
  "guestsCanSeeOtherGuests": true,
  "location": "San Jose",
  "recurrence": [
    "RRULE:FREQ=DAILY;COUNT=2;INTERVAL=3"
  ],
  "reminders": {
    "useDefault": false,
    "overrides": [
      {
        "method": "email",
        "minutes": 5
      }
    ]
  },
  "status": "confirmed",
  "summary": "event title",
  "transparency": "transparent",
  "visibility": "default",
  "id": "0lyk1qjjd8t8thnf5y1f02a6c0",
  "created": "2020-01-01T00:00:00Z",
  "creator": {
    "email": "mark.joe@zoom.com"
  },
  "organizer": {
    "email": "mark.joe@zoom.com"
  },
  "kind": "calendar#event",
  "updated": "2020-01-01T00:00:00Z"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error

Get the specified event on the specified calendar

  • Method: GET
  • Path: /calendars/{calId}/events/{eventId}
  • Tags: events

Returns a Zcalendar event.

Scopes: calendar:read,calendar:read:admin

Granular Scopes: calendar:read:event,calendar:read:event:admin

Rate Limit Label: LIGHT

Responses

Status: 200 If successful, this method returns an event's resource in the response body.
Content-Type: application/json
  • attendees

    array — The attendees of the event.

    Items:

    • additionalGuests

      integer — The number of additional guests. Optional. The default is 0.

    • displayName

      string — The attendee's name, if available.

    • email

      string, format: email — The attendee's email address

    • optional

      boolean — Whether this is an optional attendee. Optional. The default is False.

    • resource

      boolean — Whether the attendee is a resource. It can only be set when the attendee is added to the event for the first time.

    • responseStatus

      string, possible values: "needsAction", "declined", "tentative", "accepted" — The attendee's response status.

  • colorId

    string — The color of the event. This is an ID referring to an entry in the event section of the colors definition (use `color.get`).

  • created

    string — The creation time of the event.

  • creator

    object — The creator of the event.

    • email

      string — The creator's email address.

  • description

    string — The description of the event.

  • end

    object — The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance.

    • date

      string — The date, in the format "yyyy-mm-dd", if this is an all-day event.

    • dateTime

      string — The time, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.

    • timeZone

      string — The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.

  • etag

    string — The Etag of the resource.

  • eventType

    string — The type of the target event.

  • guestsCanInviteOthers

    boolean — Whether attendees other than the organizer can invite others to the event. Optional. The default is True.

  • guestsCanModify

    boolean — Whether attendees other than the organizer can modify the event. Optional. The default is False.

  • guestsCanSeeOtherGuests

    boolean — Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.

  • iCalUID

    string — The iCalendar UID of the event.

  • id

    string — The identifier of the event.

  • kind

    string — The type of the resource.

  • location

    string — The geographic location of the event as free-form text.

  • organizer

    object — The organizer of the event.

    • email

      string — The organizer's email address

  • recurrence

    array — The list of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event.

    Items:

    string — A recurring rule.

  • reminders

    object — The information about the event's reminders for the authenticated user.

    • overrides

      array — If the event doesn't use the default reminders, this field lists the reminders specific to the event. If not, it indicates that no reminders are set for this event.

      Items:

      • method

        string, possible values: "email", "popup" — The method this reminder uses.

      • minutes

        integer — The number of minutes before the start of the event when the reminder should trigger.

    • useDefault

      boolean — Whether the default reminders of the calendar apply to the event.

  • sequence

    integer — The sequence number of the target event.

  • start

    object — The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance.

    • date

      string, format: date — The date, in the format "yyyy-mm-dd", if this is an all-day event.

    • dateTime

      string, format: date-time — The time, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.

    • timeZone

      string — The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events, this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event's start and end.

  • status

    string, possible values: "confirmed", "tentative", "cancelled" — The status of the event.

  • summary

    string — The title of the event.

  • transparency

    string, possible values: "opaque", "transparent" — Whether the event blocks time on the calendar.

  • updated

    string — The last modification time of the event.

  • visibility

    string, possible values: "default", "public", "private" — The visibility of the event.

Example:

{
  "attendees": [
    {
      "additionalGuests": 1,
      "displayName": "Mark Joe",
      "email": "mark.joe@zoom.com",
      "optional": false,
      "resource": false,
      "responseStatus": "needsAction"
    }
  ],
  "colorId": "5",
  "created": "2020-01-01T00:00:00Z",
  "creator": {
    "email": "mark.joe@zoom.com"
  },
  "description": "event description",
  "end": {
    "date": "2020-01-01",
    "dateTime": "2020-01-01T00:00:00Z",
    "timeZone": "America/Los_Angeles"
  },
  "etag": "\"123456789\"",
  "eventType": "default",
  "guestsCanInviteOthers": true,
  "guestsCanModify": false,
  "guestsCanSeeOtherGuests": true,
  "iCalUID": "abc@zoom.us",
  "id": "0lyk1qjjd8t8thnf5y1f02a6c0",
  "kind": "calendar#event",
  "location": "San Jose",
  "organizer": {
    "email": "mark.joe@zoom.com"
  },
  "recurrence": [
    "RRULE:FREQ=DAILY;COUNT=2;INTERVAL=3"
  ],
  "reminders": {
    "useDefault": false,
    "overrides": [
      {
        "method": "email",
        "minutes": 5
      }
    ]
  },
  "sequence": 1,
  "start": {
    "timeZone": "America/Los_Angeles",
    "date": "2020-01-01",
    "dateTime": "2020-01-01T00:00:00Z"
  },
  "status": "confirmed",
  "summary": "event title",
  "transparency": "transparent",
  "visibility": "default",
  "updated": "2020-01-01T00:00:00Z"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error

Delete an existing event from the specified calendar

  • Method: DELETE
  • Path: /calendars/{calId}/events/{eventId}
  • Tags: events

Deletes an event.

Scopes: calendar:write,calendar:write:admin

Granular Scopes: calendar:delete:event,calendar:delete:event:admin

Rate Limit Label: HEAVY

Responses

Status: 204 If successful, the specified event is deleted and this method returns an empty response body.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error

Update the specified event on the specified calendar

  • Method: PATCH
  • Path: /calendars/{calId}/events/{eventId}
  • Tags: events

Updates an event.

Scopes: calendar:write,calendar:write:admin

Granular Scopes: calendar:update:event,calendar:update:event:admin

Rate Limit Label: HEAVY

Request Body

Content-Type: application/json
  • end (required)

    object — The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance.

  • start (required)

    object — The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance.

  • attendees

    array — The attendees of the event.

    Items:

    • email (required)

      string, format: email — The attendee's email address.

    • additionalGuests

      integer — The number of additional guests. The default is 0. Optional.

    • displayName

      string — The attendee's name, if available.

    • optional

      boolean — Whether this is an optional attendee. The default is False. Optional.

    • resource

      boolean — Whether the attendee is a resource. It can only be set when the attendee is added to the event for the first time.

    • responseStatus

      string, possible values: "needsAction", "declined", "tentative", "accepted" — The attendee's response status.

  • colorId

    string — The color of the event. This is an ID referring to an entry in the event section of the colors definition (use `color.get`).

  • description

    string — The description of the event.

  • guestsCanInviteOthers

    boolean — Whether attendees other than the organizer can invite others to the event. The default is True. Optional.

  • guestsCanModify

    boolean — Whether attendees other than the organizer can modify the event. The default is False. Optional.

  • guestsCanSeeOtherGuests

    boolean — Whether attendees other than the organizer can see who the event's attendees are. The default is True. Optional.

  • location

    string — The geographic location of the event as free-form text.

  • recurrence

    array — The list of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event.

    Items:

    string — A recurring rule.

  • reminders

    object — The information about the event's reminders for the authenticated user.

    • overrides

      array — If the event doesn't use the default reminders, this field lists the reminders specific to the event. If not, it indicates that no reminders are set for this event.

      Items:

      • method

        string, possible values: "email", "popup" — The method this reminder uses.

      • minutes

        integer — The number of minutes before the start of the event when the reminder should trigger.

    • useDefault

      boolean — Whether the default reminders of the calendar apply to the event.

  • status

    string, possible values: "confirmed", "tentative", "cancelled" — The status of the event.

  • summary

    string — The title of the event.

  • transparency

    string, possible values: "opaque", "transparent" — Whether the event blocks time on the calendar.

  • visibility

    string, possible values: "default", "public", "private" — The visibility of the event.

Example:

{
  "start": {
    "date": "2020-01-01",
    "timeZone": "America/Los_Angeles"
  },
  "end": {
    "date": "2020-01-01",
    "timeZone": "America/Los_Angeles"
  },
  "attendees": [
    {
      "additionalGuests": 1,
      "displayName": "Mark Joe",
      "email": "mark.joe@zoom.com",
      "optional": false,
      "resource": false,
      "responseStatus": "needsAction"
    }
  ],
  "colorId": "5",
  "description": "event description",
  "guestsCanInviteOthers": true,
  "guestsCanModify": false,
  "guestsCanSeeOtherGuests": true,
  "location": "San Jose",
  "recurrence": [
    "RRULE:FREQ=DAILY;COUNT=2;INTERVAL=3"
  ],
  "reminders": {
    "useDefault": false,
    "overrides": [
      {
        "method": "email",
        "minutes": 5
      }
    ]
  },
  "status": "confirmed",
  "summary": "event title",
  "transparency": "transparent",
  "visibility": "default"
}

Responses

Status: 200 If successful, this method returns an event's resource in the response body.
Content-Type: application/json
  • attendees

    array — The attendees of the event.

    Items:

    • email (required)

      string, format: email — The attendee's email address.

    • additionalGuests

      integer — The number of additional guests. The default is 0. Optional.

    • displayName

      string — The attendee's name, if available.

    • optional

      boolean — Whether this is an optional attendee. The default is False. Optional.

    • resource

      boolean — Whether the attendee is a resource. It can only be set when the attendee is added to the event for the first time.

    • responseStatus

      string, possible values: "needsAction", "declined", "tentative", "accepted" — The attendee's response status.

  • colorId

    string — The color of the event. This is an ID referring to an entry in the event section of the colors definition (use `color.get`).

  • created

    string — The creation time of the event.

  • creator

    object — The creator of the event.

    • email

      string — The creator's email address.

  • description

    string — The description of the event.

  • end

    object — The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance.

    • date

      string — The date, in the format "yyyy-mm-dd", if this is an all-day event.

    • dateTime

      string — The time, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in `timeZone`.

    • timeZone

      string — The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event's start or end.

  • guestsCanInviteOthers

    boolean — Whether attendees other than the organizer can invite others to the event. The default is True. Optional.

  • guestsCanModify

    boolean — Whether attendees other than the organizer can modify the event. The default is False. Optional.

  • guestsCanSeeOtherGuests

    boolean — Whether attendees other than the organizer can see who the event's attendees are. The default is True. Optional.

  • id

    string — The identifier of the event.

  • kind

    string — The type of resource.

  • location

    string — The geographic location of the event as free-form text.

  • organizer

    object — The organizer of the event.

    • email

      string — The organizer's email address.

  • recurrence

    array — The list of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event.

    Items:

    string — A recurring rule.

  • reminders

    object — The information about the event's reminders for the authenticated user.

    • overrides

      array — If the event doesn't use the default reminders, this field lists the reminders specific to the event. If not, it indicates that no reminders are set for this event.

      Items:

      • method

        string, possible values: "email", "popup" — The method this reminder uses.

      • minutes

        integer — The number of minutes before the start of the event when the reminder should trigger.

    • useDefault

      boolean — Whether the default reminders of the calendar apply to the event.

  • start

    object — The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance.

    • date

      string — The date, in the format "yyyy-mm-dd", if this is an all-day event.

    • dateTime

      string — The time, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in `timeZone`.

    • timeZone

      string — The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event's start or end.

  • status

    string, possible values: "confirmed", "tentative", "cancelled" — The status of the event.

  • summary

    string — The title of the event.

  • transparency

    string, possible values: "opaque", "transparent" — Whether the event blocks time on the calendar.

  • updated

    string — The last modification time of the event.

  • visibility

    string, possible values: "default", "public", "private" — The visibility of the event.

Example:

{
  "start": {
    "dateTime": "2020-01-01T00:00:00Z",
    "date": "2020-01-01",
    "timeZone": "America/Los_Angeles"
  },
  "end": {
    "dateTime": "2020-01-01T01:00:00Z",
    "date": "2020-01-02",
    "timeZone": "America/Los_Angeles"
  },
  "attendees": [
    {
      "additionalGuests": 1,
      "displayName": "Mark Joe",
      "email": "mark.joe@zoom.com",
      "optional": false,
      "resource": false,
      "responseStatus": "needsAction"
    }
  ],
  "colorId": "5",
  "description": "event description",
  "guestsCanInviteOthers": true,
  "guestsCanModify": false,
  "guestsCanSeeOtherGuests": true,
  "location": "San Jose",
  "recurrence": [
    "RRULE:FREQ=DAILY;COUNT=2;INTERVAL=3"
  ],
  "reminders": {
    "useDefault": false,
    "overrides": [
      {
        "method": "email",
        "minutes": 5
      }
    ]
  },
  "status": "confirmed",
  "summary": "event title",
  "transparency": "transparent",
  "visibility": "default",
  "id": "0lyk1qjjd8t8thnf5y1f02a6c0",
  "created": "2020-01-01T00:00:00Z",
  "creator": {
    "email": "mark.joe@zoom.com"
  },
  "organizer": {
    "email": "mark.joe@zoom.com"
  },
  "kind": "calendar#event",
  "updated": "2020-01-01T00:00:00Z"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error

List all instances of the specified recurring event

  • Method: GET
  • Path: /calendars/{calId}/events/{eventId}/instances
  • Tags: events

Returns instances of the specified recurring event.

Scopes: calendar:read,calendar:read:admin

Granular Scopes: calendar:read:instance_event,calendar:read:instance_event:admin

Rate Limit Label: MEDIUM

Responses

Status: 200 If successful, this method returns a response body with the following structure:
Content-Type: application/json
  • accessRole

    string, possible values: "none", "freeBusyReader", "reader", "writer", "owner" — The user's access role for this calendar. Read-only.

  • defaultReminders

    array — The default reminders on the calendar for the authenticated user.

    Items:

    • method

      string, possible values: "email", "popup" — The method this reminder uses.

    • minutes

      integer — The number of minutes before the start of the event when the reminder should trigger.

  • description

    string — The description of the calendar. Read-only.

  • etag

    string — The ETag of the collection.

  • items

    array — The list of instances of the event on the calendar.

    Items:

    • end (required)

      object — The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance.

      • date

        string, format: date — The date, in the format "yyyy-mm-dd", if this is an all-day event.

      • dateTime

        string, format: date-time — The time, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.

      • timeZone

        string — The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.

    • start (required)

      object — The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance.

      • date

        string, format: date — The date, in the format "yyyy-mm-dd", if this is an all-day event.

      • dateTime

        string, format: date-time — The time, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.

      • timeZone

        string — The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start/end.

    • attendees

      array — The attendees of the event.

      Items:

      • email (required)

        string, format: email — The attendee's email address.

      • additionalGuests

        integer — The number of additional guests. Optional. The default is 0.

      • displayName

        string — The attendee's name, if available.

      • optional

        boolean — Whether this is an optional attendee. Optional. The default is False.

      • resource

        boolean — Whether the attendee is a resource. It can only be set when the attendee is added to the event for the first time.

      • responseStatus

        string, possible values: "needsAction", "declined", "tentative", "accepted" — The attendee's response status.

    • colorId

      string — The color of the event. This is an ID referring to an entry in the event section of the colors definition (use color.get)

    • created

      string — The creation time of the event.

    • creator

      object — The creator of the event.

      • email

        string — The creator's email address.

    • description

      string — The description of the event.

    • guestsCanInviteOthers

      boolean — Whether attendees other than the organizer can invite others to the event. Optional. The default is True.

    • guestsCanModify

      boolean — Whether attendees other than the organizer can modify the event. Optional. The default is False.

    • guestsCanSeeOtherGuests

      boolean — Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.

    • id

      string — The identifier of the event.

    • kind

      string — The type of the resource.

    • location

      string — The geographic location of the event as free-form text.

    • organizer

      object — The organizer of the event.

      • email

        string — The organizer's email address

    • recurrence

      array — The list of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event.

      Items:

      string — A recurring rule.

    • reminders

      object — Information about the event's reminders for the authenticated user.

      • overrides

        array — If the event doesn't use the default reminders, this field lists the reminders specific to the event. If not, it indicates that no reminders are set for this event.

        Items:

        • method

          string, possible values: "email", "popup" — The method this reminder uses.

        • minutes

          integer — The number of minutes before the start of the event when the reminder should trigger.

      • useDefault

        boolean — Whether the default reminders of the calendar apply to the event.

    • status

      string, possible values: "confirmed", "tentative", "cancelled" — The status of the event.

    • summary

      string — The title of the event.

    • transparency

      string, possible values: "opaque", "transparent" — Whether the event blocks time on the calendar.

    • updated

      string — The last modification time of the event.

    • visibility

      string, possible values: "default", "public", "private" — The visibility of the event.

  • kind

    string — The type of the collection ("calendar#events").

  • nextPageToken

    string — The token used to access the next page of this result.

  • summary

    string — The title of the calendar. Read-only.

  • timeZone

    string — The time zone of the calendar. Read-only.

  • updated

    string, format: date-time — The last modification time of the calendar (as a RFC3339 timestamp). Read-only.

Example:

{
  "kind": "calendar#events",
  "etag": "\"00000000000000000000\"",
  "summary": "calendar summary",
  "description": "calendar description",
  "updated": "2020-01-01T00:00:00Z",
  "timeZone": "America/Los_Angeles",
  "accessRole": "owner",
  "defaultReminders": [
    {
      "method": "email",
      "minutes": 5
    }
  ],
  "nextPageToken": "ffffffffa8b32bff_te7ldipj31fqfo3mw3jjzgz6c0!",
  "items": [
    {
      "start": {
        "date": "2020-01-01",
        "dateTime": "2020-01-01T00:00:00Z",
        "timeZone": "America/Los_Angeles"
      },
      "end": {
        "date": "2020-01-01",
        "dateTime": "2020-01-01T00:00:00Z",
        "timeZone": "America/Los_Angeles"
      },
      "attendees": [
        {
          "additionalGuests": 1,
          "displayName": "Mark Joe",
          "email": "mark.joe@zoom.com",
          "optional": false,
          "resource": false,
          "responseStatus": "needsAction"
        }
      ],
      "colorId": "5",
      "description": "event description",
      "guestsCanInviteOthers": true,
      "guestsCanModify": false,
      "guestsCanSeeOtherGuests": true,
      "location": "San Jose",
      "recurrence": [
        "RRULE:FREQ=DAILY;COUNT=2;INTERVAL=3"
      ],
      "reminders": {
        "useDefault": false,
        "overrides": [
          {
            "method": "email",
            "minutes": 5
          }
        ]
      },
      "status": "confirmed",
      "summary": "event title",
      "transparency": "transparent",
      "visibility": "default",
      "id": "0lyk1qjjd8t8thnf5y1f02a6c0",
      "created": "2020-01-01T00:00:00Z",
      "creator": {
        "email": "mark.joe@zoom.com"
      },
      "organizer": {
        "email": "mark.joe@zoom.com"
      },
      "kind": "calendar#event",
      "updated": "2020-01-01T00:00:00Z"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error

Move the specified event from a calendar to another specified calendar

  • Method: POST
  • Path: /calendars/{calId}/events/{eventId}/move
  • Tags: events

Moves an event to another calendar, such as changing an event's organizer.

Scopes: calendar:write,calendar:write:admin

Granular Scopes: calendar:write:move_event,calendar:write:move_event:admin

Rate Limit Label: HEAVY

Responses

Status: 200 If successful, this method returns an Events resource in the response body.
Content-Type: application/json
  • attendees

    array — The attendees of the event.

    Items:

    • email (required)

      string, format: email — The attendee's email address

    • additionalGuests

      integer — The number of additional guests. Optional. The default is 0.

    • displayName

      string — The attendee's name, if available.

    • optional

      boolean — Whether this is an optional attendee. Optional. The default is False.

    • resource

      boolean — Whether the attendee is a resource. It can only be set when the attendee is added to the event for the first time.

    • responseStatus

      string, possible values: "needsAction", "declined", "tentative", "accepted" — The attendee's response status.

  • colorId

    string — The color of the event. This is an ID referring to an entry in the event section of the colors definition (use `color.get`).

  • created

    string — The creation time of the event.

  • creator

    object — The creator of the event.

    • email

      string — The creator's email address.

  • description

    string — Description of the event.

  • end

    object — The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance.

    • date

      string, format: date — The date, in the format "yyyy-mm-dd", if this is an all-day event.

    • dateTime

      string, format: date-time — The time, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in `timeZone`.

    • timeZone

      string — The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event's start or end.

  • guestsCanInviteOthers

    boolean — Whether attendees other than the organizer can invite others to the event. Optional. The default is True.

  • guestsCanModify

    boolean — Whether attendees other than the organizer can modify the event. Optional. The default is False.

  • guestsCanSeeOtherGuests

    boolean — Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.

  • id

    string — The identifier of the event.

  • kind

    string — The type of the resource.

  • location

    string — The geographic location of the event as free-form text.

  • organizer

    object — The organizer of the event.

    • email

      string — The organizer's email address.

  • recurrence

    array — The list of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event.

    Items:

    string — A recurring rule.

  • reminders

    object — The information about the event's reminders for the authenticated user.

    • overrides

      array — If the event doesn't use the default reminders, this field lists the reminders specific to the event. If not, it indicates that no reminders are set for this event.

      Items:

      • method

        string, possible values: "email", "popup" — The method used by this reminder.

      • minutes

        integer — The number of minutes before the start of the event when the reminder should trigger.

    • useDefault

      boolean — Whether the default reminders of the calendar apply to the event.

  • start

    object — The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance.

    • date

      string, format: date — The date, in the format "yyyy-mm-dd", if this is an all-day event.

    • dateTime

      string, format: date-time — The time, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in `timeZone`.

    • timeZone

      string — The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. "Europe/Zurich".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event's start or end.

  • status

    string, possible values: "confirmed", "tentative", "cancelled" — The status of the event.

  • summary

    string — The title of the event.

  • transparency

    string, possible values: "opaque", "transparent" — Whether the event blocks time on the calendar.

  • updated

    string — The last modification time of the event.

  • visibility

    string, possible values: "default", "public", "private" — The visibility of the event.

Example:

{
  "start": {
    "date": "2020-01-01",
    "dateTime": "2020-01-01T00:00:00Z",
    "timeZone": "America/Los_Angeles"
  },
  "end": {
    "date": "2020-01-01",
    "dateTime": "2020-01-01T00:00:00Z",
    "timeZone": "America/Los_Angeles"
  },
  "attendees": [
    {
      "additionalGuests": 1,
      "displayName": "Mark Joe",
      "email": "mark.joe@zoom.com",
      "optional": false,
      "resource": false,
      "responseStatus": "needsAction"
    }
  ],
  "colorId": "5",
  "description": "event description",
  "guestsCanInviteOthers": true,
  "guestsCanModify": false,
  "guestsCanSeeOtherGuests": true,
  "location": "San Jose",
  "recurrence": [
    "RRULE:FREQ=DAILY;COUNT=2;INTERVAL=3"
  ],
  "reminders": {
    "useDefault": false,
    "overrides": [
      {
        "method": "email",
        "minutes": 5
      }
    ]
  },
  "status": "confirmed",
  "summary": "event title",
  "transparency": "transparent",
  "visibility": "default",
  "id": "0lyk1qjjd8t8thnf5y1f02a6c0",
  "created": "2020-01-01T00:00:00Z",
  "creator": {
    "email": "mark.joe@zoom.com"
  },
  "organizer": {
    "email": "mark.joe@zoom.com"
  },
  "kind": "calendar#event",
  "updated": "2020-01-01T00:00:00Z"
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 403 **HTTP Status Code:** `403` <br> Forbidden
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error

Query freebusy information for a set of calendars

  • Method: POST
  • Path: /calendars/freeBusy
  • Tags: freebusy

Returns free or busy information for a set of calendars.

Scopes: calendar:read,calendar:read:admin

Granular Scopes: calendar:read:list_events,calendar:read:list_events:admin

Rate Limit Label: MEDIUM

Request Body

Content-Type: application/json
  • timeMax (required)

    string, format: date-time — The end of the interval for the query.

  • timeMin (required)

    string, format: date-time — The start of the interval for the query.

  • calendarExpansionMax

    integer — The maximum number of calendars for which FreeBusy information is to be provided.

  • groupExpansionMax

    integer — The maximum number of calendar identifiers to be provided for a single group.

  • items

    array — The list of calendars and/or groups to query.

    Items:

    • id

      string, format: email — The identifier of a calendar or a group.

  • timeZone

    string — The time zone in the response.

Example:

{
  "timeZone": "America/Los_Angeles",
  "timeMin": "2024-01-01T00:00:00Z",
  "timeMax": "2024-02-01T00:00:00Z",
  "calendarExpansionMax": 50,
  "groupExpansionMax": 100,
  "items": [
    {
      "id": "abc.def@zoom.com"
    }
  ]
}

Responses

Status: 200 If successful, this method returns a response body with the following structure:
Content-Type: application/json
  • kind (required)

    string, possible values: "calendar#freeBusy" — The type of the resource.

  • timeMax (required)

    string, format: date-time — The end of the interval.

  • timeMin (required)

    string, format: date-time — The start of the interval.

  • calendars

    array — The expansion of calendars.

    Items:

    • busy

      array — The list of time ranges during which this calendar should be regarded as busy.

      Items:

      • end

        string — The (exclusive) end of the time period.

      • start

        string — The (inclusive) start of the time period.

    • errors

      array — The optional errors.

      Items:

      • domain

        string — The domain, or broad category, of the error.

      • reason

        string — The specific reason for the error.

    • id

      string — The calendar identifier.

  • groups

    array — The expansion of groups.

    Items:

    • calendars

      array — The list of calendars included in the group.

      Items:

      string

    • errors

      object

      • domain

        string — The domain, or broad category, of the error.

      • reason

        string — The specific reason for the error.

    • id

      string — The group identifier.

Example:

{
  "kind": "calendar#freeBusy",
  "timeMin": "2024-01-01T00:00:00Z",
  "timeMax": "2024-02-01T00:00:00Z",
  "calendars": [
    {
      "id": "abc.def@zoom.com",
      "errors": [
        {
          "domain": "global",
          "reason": "notFound"
        }
      ],
      "busy": [
        {
          "start": "2024-01-20T17:00:00Z",
          "end": "2024-01-20T18:00:00Z"
        }
      ]
    }
  ],
  "groups": [
    {
      "id": "abc.group@zoom.com",
      "errors": {
        "domain": "global",
        "reason": "notFound"
      },
      "calendars": [
        ""
      ]
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).

List all user calendar settings of the authenticated user

  • Method: GET
  • Path: /calendars/users/{userIdentifier}/settings
  • Tags: settings

Returns all user settings for the authenticated user.

Scopes: calendar:read,calendar:read:admin

Granular Scopes: calendar:read:list_settings

Rate Limit Label: MEDIUM

Responses

Status: 200 If successful, this method returns a response body with the following structure:
Content-Type: application/json
  • etag

    string — The Etag of the collection.

  • items

    array — The list of user settings.

    Items:

    • id

      string — The ID of the user setting.

    • value

      string — The value of the user setting. The format of the value depends on the ID of the setting.

  • kind

    string — The type of collection

  • nextPageToken

    string — The token that accesses the next page of this result.

Example:

{
  "kind": "calendar#settings",
  "etag": "\"00000000000000000000\"",
  "nextPageToken": "displaySecondaryTimezone",
  "items": [
    {
      "id": "autoAddZoomMeeting",
      "value": "false"
    }
  ]
}
Status: 400 **HTTP Status Code:** `400` <br> Bad Request
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error

Get the specified user calendar settings of the authenticated user

  • Method: GET
  • Path: /calendars/users/{userIdentifier}/settings/{settingId}
  • Tags: settings

Returns a single setting.

Scopes: calendar:read,calendar:read:admin

Granular Scopes: calendar:read:setting

Rate Limit Label: LIGHT

Responses

Status: 200 If successful, this method returns a setting's resource in the response body.
Content-Type: application/json

One of:

  • id (required)

    string, possible values: "autoAddZoomMeeting", "hideInvitations", "hideInvitationsFromOthers", "hideWeekends", "remindOnRespondedEventsOnly", "showDeclinedEvents", "useKeyboardShortcuts", "format24HourTime", "displaySecondaryTimezone"

  • value (required)

    string, possible values: "true", "false" — The allowed values are `true` or `false`.

  • id (required)

    string, possible values: "defaultEventLength"

  • value (required)

    string — The allowed values are positive numbers.

  • id (required)

    string, possible values: "defaultGuestPermissions" — The combinations of "Modify the event", "Invite others" and "See list of attendees" in an event.

  • value (required)

    string, possible values: "0", "1", "2", "3", "7" — The allowed values are 0, 1, 2, 3, and 7. These values respesent as bitmap with three digits, from left to right are "Modify the event", "Invite others" and "See list of attendees."

  • id (required)

    string, possible values: "locale", "timezone"

  • value (required)

    string

  • id (required)

    string, possible values: "secondaryTimezone"

  • value (required)

    string

  • id (required)

    string, possible values: "weekStart" — Whether the week should start on Sunday (0), Monday (1), or Saturday (6).

  • value (required)

    string, possible values: "0", "1", "6" — The allowed values are 0, 1, and 6.

  • id (required)

    string, possible values: "defaultAddOnType" — The default `addon` type in an event: 1 as Zoom meeting, 2 as phone, and 3 as offline.

  • value (required)

    string, possible values: "1", "2", "3" — The allowed values are 1, 2, and 3.

  • id (required)

    string, possible values: "dateFieldOrder" — What should the order of day (D), month (M) and year (Y) be when displaying dates.

  • value (required)

    string, possible values: "MDY", "DMY", "YMD" — The allowed values are ”MDY”, “DMY”,and “YMD”.

  • id (required)

    string, possible values: "dateViewSelected" — The view in the calendar: D as day, W as week, M as month, Y as year, A as schedule, X as 4 days, WW as work week, and N as no fix time.

  • value (required)

    string, possible values: "D", "W", "M", "Y", "A", "X", "WW", "N" — The allowed values are D, W, M, Y, A, X, WW, and N.

Example:

{
  "id": "autoAddZoomMeeting",
  "value": "false"
}
Status: 404 **HTTP Status Code:** `404` <br> Not Found
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error

Patch the specified user calendar settings of the authenticated user

  • Method: PATCH
  • Path: /calendars/users/{userIdentifier}/settings/{settingId}
  • Tags: settings

Patches a single setting.

Scopes: calendar:write,calendar:write:admin

Granular Scopes: calendar:update:setting,calendar:update:setting:admin

Rate Limit Label: LIGHT

Request Body

Content-Type: application/json
  • id (required)

    string — The target setting ID to patch.

  • value (required)

    string — The target setting value to patch.

Example:

{
  "id": "timezone",
  "value": "Asia/Shanghai"
}

Responses

Status: 200
Content-Type: application/json
  • id

    string — The patched setting ID.

  • value

    string — The patched setting value.

Example:

{
  "id": "timezone",
  "value": "Asia/Shanghai"
}
Status: 429 **HTTP Status Code:** `429` <br> Too Many Requests. For more information, see [rate limits](https://developers.zoom.us/docs/api/rest/rate-limits/).