calendar

Partially update a calendar

Changed on

Updates a calendar's editable fields.

Authorization rules (enforced after org-scoping):

  • BUNDLE calendar: caller must be an org admin. Non-admin members receive 403.
  • Non-bundle calendar (PERSONAL/RESOURCE/VIRTUAL): caller must own the calendar (CalendarOwnership) or be an org admin. Non-owner non-admins receive 403.

Activation: imported calendars other than the account's default one arrive unlisted with sync_enabled=false. Setting sync_enabled=true here also requests the calendar's first sync (over a one-year window, using the owner's linked account), so no follow-up call to /calendar/{id}/request-sync/ is needed. Set visibility=active in the same request to list it for booking.

patch/calendar/{id}/

Request

  • The document declares no server URL.
  • Auth: one of:
    • HTTP bearer
    • API key in cookie sessionid

Path parameters

idstring required

Headers

X-Organization-Idstring

Selects the active organization for this request. Optional for callers that belong to exactly one active organization — the single membership is resolved implicitly. Required when the caller has two or more active memberships; omitting it in that case returns 400. If the header names an organization the caller is not an active member of, the server returns 403.

Request body

idinteger
namestring
descriptionstring
emailstring email
external_idstring
provider'internal' | 'google' | 'microsoft' | 'apple' | 'ics'
  • internal - Internal Calendar
  • google - Google Calendar
  • microsoft - Microsoft Outlook Calendar
  • apple - Apple Calendar
  • ics - ICS
calendar_type'personal' | 'resource' | 'virtual' | 'bundle'
  • personal - Personal Calendar
  • resource - Resource Calendar
  • virtual - Virtual Calendar
  • bundle - Bundle Calendar
capacityinteger nullable

The maximum number of attendees that can be accommodated in this calendar's events. This is only applicable for resource calendars.

manage_available_windowsboolean

If true, this calendar can manage its own available time windows. If not, it will use the available time windows of the external calendar it's attached to.

visibility'active' | 'unlisted' | 'inactive'
  • active - Active
  • unlisted - Unlisted
  • inactive - Inactive
sync_enabledboolean

Whether this calendar's events are pulled from the external provider. Set to False to skip syncing calendars that aren't useful for scheduling — holidays, birthdays, organization-wide events, etc. When False, no new CalendarSync is requested for this calendar (including webhook- and import-triggered syncs); previously synced events are left untouched. Default True keeps existing calendars syncing as before.

Response

idinteger required
namestring required
descriptionstring
emailstring email required
external_idstring required
provider'internal' | 'google' | 'microsoft' | 'apple' | 'ics' required
  • internal - Internal Calendar
  • google - Google Calendar
  • microsoft - Microsoft Outlook Calendar
  • apple - Apple Calendar
  • ics - ICS
calendar_type'personal' | 'resource' | 'virtual' | 'bundle' required
  • personal - Personal Calendar
  • resource - Resource Calendar
  • virtual - Virtual Calendar
  • bundle - Bundle Calendar
capacityinteger nullable

The maximum number of attendees that can be accommodated in this calendar's events. This is only applicable for resource calendars.

manage_available_windowsboolean

If true, this calendar can manage its own available time windows. If not, it will use the available time windows of the external calendar it's attached to.

visibility'active' | 'unlisted' | 'inactive'
  • active - Active
  • unlisted - Unlisted
  • inactive - Inactive
sync_enabledboolean

Whether this calendar's events are pulled from the external provider. Set to False to skip syncing calendars that aren't useful for scheduling — holidays, birthdays, organization-wide events, etc. When False, no new CalendarSync is requested for this calendar (including webhook- and import-triggered syncs); previously synced events are left untouched. Default True keeps existing calendars syncing as before.

Changes

    • ▲

      the response property became optional for the status

    • ●

      the request property's max was set to 2147483647.00 (media type: application/json)

    • ●

      the request property's max was set to 2147483647.00 (media type: application/x-www-form-urlencoded)

    • ●

      the request property's max was set to 2147483647.00 (media type: multipart/form-data)

    • ●

      the request property's min was set to 0.00 (media type: application/json)

    • ●

      the request property's min was set to 0.00 (media type: application/x-www-form-urlencoded)

    • ●

      the request property's min was set to 0.00 (media type: multipart/form-data)

    • ○

      the request optional property became not read-only (media type: application/json)

    • ○

      the request optional property became not read-only (media type: application/x-www-form-urlencoded)

    • ○

      the request optional property became not read-only (media type: multipart/form-data)

    • ○

      the response required property became not read-only for the status

    • ○

      added the new optional header request parameter X-Organization-Id