Now Available: Zoom AI Services Summarizer & Translator APIs.
APIsMCPBlogChangelogAgent Skills
Help
/
Calendar
APIWebhooks
View as MarkdownPostmanDownload OpenAPI
APIsMCPBlogChangelogAgent SkillsHelp
Theme

Calendar API

  • 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

Parameters

calId required
  • In: path

The calendar identifier. To retrieve calendar IDs call, the calendarList.list method.

string

maxResults
  • In: query

The maximum number of entries returned on one result page.

integer

showDeleted
  • In: query

Whether to include deleted ACLs in the result.

boolean

pageToken
  • In: query

The token that specifies which result page to return.

string

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

Parameters

calId required
  • In: path

The calendar identifier. To retrieve calendar IDs call, the calendarList.list method.

string

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

Parameters

calId required
  • In: path

The calendar identifier. To retrieve calendar IDs, call the calendarList.list method.

string

aclId required
  • In: path

The ACL rule identifier.

string

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

Parameters

calId required
  • In: path

The calendar identifier. To retrieve calendar IDs, call the calendarList.list method.

string

aclId required
  • In: path

The ACL rule identifier.

string

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

Parameters

calId required
  • In: path

The calendar identifier. To retrieve calendar IDs, call the calendarList.list method.

string

aclId required
  • In: path

The ACL rule identifier.

string

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

Parameters

userIdentifier required
  • In: path

The user identifier. It identifies which user's calendarList to operate.

string

maxResults
  • In: query

The maximum number of entries returned on one result page.

integer

minAccessRole
  • In: query

The minimum access role for the user in the returned entries.

string, possible values: "freeBusyReader", "reader", "writer", "owner"

pageToken
  • In: query

The token that specifies which result page to return.

string

showDeleted
  • In: query

Whether to include deleted calendar list entries in the result.

boolean

showHidden
  • In: query

Whether to show hidden entries.

boolean

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

Parameters

userIdentifier required
  • In: path

The user identifier. It indicates which user's calendarList to operate.

string

colorRgbFormat
  • In: query

This parameter must be set to true when the user wants to change the foreground or background color.

boolean

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

Parameters

userIdentifier required
  • In: path

The user identifier. It indicates Which user's calendarList to operate.

string

calendarId required
  • In: path

The calendar identifier. It specifies which calendarList entry in the user's calendarList to operate on. To retrieve calendar IDs, call the List all calendars in a calendarlist API.

string

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

Parameters

userIdentifier required
  • In: path

The user identifier. It indicates which user's calendarList to operate.

string

calendarId required
  • In: path

The calendar identifier. It specifies which calendarList entry in the user's calendarList to operate. To retrieve calendar IDs, call the List all calendars in a calendarlist API.

string

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

Parameters

userIdentifier required
  • In: path

The user identifier. It indicates which user's calendarList to operate.

string

calendarId required
  • In: path

The calendar identifier. It specifies which calendarList entry in the user's calendarList to operate. To retrieve the calendar ids, call the 'List all calendars in a calendarlist' API.

string

colorRgbFormat
  • In: query

This parameter must be set to true when user wants to change the foreground or background color.

boolean

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

Parameters

calId required
  • In: path

The calendar identifier. To retrieve calendar IDs, call the calendarList.list method.

string

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

Parameters

calId required
  • In: path

The calendar ID of the calendar to be removed.

string

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

Parameters

calId required
  • In: path

The calendar identifier. To retrieve calendar IDs, call the calendarList.list method.

string

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

Parameters

calId required
  • In: path

The calendar identifier. To retrieve calendar IDs, call the calendarList.list method.

string

maxResults
  • In: query

The maximum number of events returned on one result page.

integer

orderBy
  • In: query

The order of the events returned in the result.

string, possible values: "startTime", "updated"

showDeleted
  • In: query

Whether to include deleted events (with status equals "cancelled") in the result. Cancelled instances of recurring events (but not the underlying recurring event) will still be included if showDeleted and singleEvents are both False. If showDeleted and singleEvents are both True and only single instances of deleted events (but not the underlying recurring events) are returned. The default is False. Optional.

boolean

singleEvents
  • In: query

Whether to expand recurring events into instances and only return single one-off events and instances of recurring events, but not the underlying recurring events themselves. The default is False. Optional.

boolean

pageToken
  • In: query

The token that specifies which result page to return. Optional.

string

timeMax
  • In: query

The upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time. It must be an RFC3339 timestamp with mandatory time zone offset, for example, 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. Milliseconds may be provided but are ignored. If timeMin is set, timeMax must be greater than timeMin.

string

timeMin
  • In: query

The lower bound (exclusive) for an event's end time from which to filter. Optional. The default is not to filter by end time. It must be an RFC3339 timestamp with mandatory time zone offset, for example, 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. Milliseconds can be provided but are ignored. If timeMax is set, timeMin must be smaller than timeMax.

string

timeZone
  • In: query

The time zone in the response. The default is the time zone of the calendar. Optional.

string

syncToken
  • In: query

The syncToken records the time of the last event list. By providing this parameter, the event list results will only include the events that are updated after last sync.

string

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

Parameters

calId required
  • In: path

The calendar identifier. To retrieve calendar IDs, call the calendarList.list method.

string

sendUpdates
  • In: query

Whether to send notifications about the creation of the new event. Note that some emails might still be sent.

string, possible values: "all", "externalOnly", "none"

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

Parameters

calId required
  • In: path

The calendar identifier. To retrieve calendar IDs call the calendarList.list method.

string

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

Parameters

calId required
  • In: path

The calendar identifier. To retrieve calendar IDs, call the calendarList.list method.

string

text required
  • In: query

The text that describes the event to be created.

string

sendUpdates
  • In: query

The guests who should receive notifications about the creation of the new event.

string, possible values: "all", "externalOnly", "none"

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

Parameters

calId required
  • In: path

The calendar identifier. To retrieve calendar IDs, call the calendarList.list method.

string

eventId required
  • In: path

The event identifier.

string

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

Parameters

calId required
  • In: path

The calendar identifier. To retrieve calendar IDs, call the calendarList.list method.

string

eventId required
  • In: path

The event identifier.

string

sendUpdates
  • In: query

Whether to send notifications about the deletion of the event. Note that some emails might still be sent.

string, possible values: "all", "externalOnly", "none"

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

Parameters

calId required
  • In: path

The calendar identifier. To retrieve calendar IDs, call the calendarList.list method.

string

eventId required
  • In: path

The event identifier.

string

sendUpdates
  • In: query

The guests who should receive notifications about the event update.

string, possible values: "all", "externalOnly", "none"

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

Parameters

calId required
  • In: path

The calendar identifier. To retrieve calendar IDs, call the calendarList.list method.

string

eventId required
  • In: path

The event identifier.

string

maxResults
  • In: query

The maximum number of events returned on one result page.

integer

showDeleted
  • In: query

Whether to include deleted events (with status equals "cancelled") in the result. Cancelled instances of recurring events (but not the underlying recurring event) will still be included if showDeleted and singleEvents are both False. If showDeleted and singleEvents are both True, only single instances of deleted events (but not the underlying recurring events) are returned. Optional. The default is False.

boolean

pageToken
  • In: query

The token that specifies which result page to return. Optional.

string

timeMax
  • In: query

The upper bound (exclusive) for an event's start time to filter by. Optional. The default is not to filter by start time. Must be an RFC3339 timestamp with mandatory time zone offset, for example, 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. Milliseconds may be provided but are ignored. If timeMin is set, timeMax must be greater than timeMin.

string

timeMin
  • In: query

The lower bound (exclusive) for an event's end time to filter by. Optional. The default is not to filter by end time. Must be an RFC3339 timestamp with mandatory time zone offset, for example, 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. Milliseconds may be provided but are ignored. If timeMax is set, timeMin must be smaller than timeMax.

string

timeZone
  • In: query

The time zone in the response. Optional. The default is the time zone of the calendar.

string

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

Parameters

calId required
  • In: path

The calendar identifier. To retrieve calendar IDs, call the calendarList.list method.

string

eventId required
  • In: path

The event identifier.

string

destination required
  • In: query

The calendar identifier of the target calendar where the event is to be moved.

string

sendUpdates
  • In: query

Whether to send notifications about the creation of the new event. Note that some emails might still be sent.

string, possible values: "all", "externalOnly", "none"

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

Parameters

userIdentifier required
  • In: path

The user identifier. It indicates Which user's calendarList to operate.

string

maxResults
  • In: query

The maximum number of entries returned on one result page.

integer

pageToken
  • In: query

The token that specifies which result page to return.

string

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

Parameters

userIdentifier required
  • In: path

The user identifier.

string

settingId required
  • In: path

The identifier of the user setting. To retrieve calendar IDs, call the 'List all user settings' API.

string

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

Parameters

userIdentifier required
  • In: path

The user identifier.

string

settingId required
  • In: path

The ID of the setting to be patched.

string

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/).