openapi: 3.0.0
info:
title: Cal.diy API v2 Api Keys Bookings API
description: ''
version: 1.0.0
contact: {}
servers: []
tags:
- name: Bookings
paths:
/v2/bookings:
post:
operationId: BookingsController_2024_08_13_createBooking
summary: Create a booking
description: "\n POST /v2/bookings is used to create regular bookings, recurring bookings and instant bookings. The request bodies for all 3 are almost the same except:\n If eventTypeId in the request body is id of a regular event, then regular booking is created.\n\n If it is an id of a recurring event type, then recurring booking is created.\n\n Meaning that the request bodies are equal but the outcome depends on what kind of event type it is with the goal of making it as seamless for developers as possible.\n\n The start needs to be in UTC aka if the timezone is GMT+2 in Rome and meeting should start at 11, then UTC time should have hours 09:00 aka without time zone.\n\n Finally, there are 2 ways to book an event type belonging to an individual user:\n 1. Provide `eventTypeId` in the request body.\n 2. Provide `eventTypeSlug` and `username` and optionally `organizationSlug` if the user with the username is within an organization.\n\n And 2 ways to book and event type belonging to a team:\n 1. Provide `eventTypeId` in the request body.\n 2. Provide `eventTypeSlug` and `teamSlug` and optionally `organizationSlug` if the team with the teamSlug is within an organization.\n\n If you are creating a seated booking for an event type with 'show attendees' disabled, then to retrieve attendees in the response either set 'show attendees' to true on event type level or\n you have to provide an authentication method of event type owner, host, team admin or owner or org admin or owner.\n\n For event types that have SMS reminders enabled, you need to pass the attendee's phone number in the request body via `attendee.phoneNumber` (e.g., \"+19876543210\" in international format). This is an optional field, but becomes required when SMS reminders are enabled for the event type. For the complete attendee object structure, see the attendee schema in the `/docs` Swagger endpoint.\n\n Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint.\n "
parameters:
- name: cal-api-version
in: header
description: Must be set to 2024-08-13. If not set to this value, the endpoint will default to an older version.
required: true
schema:
type: string
default: '2024-08-13'
- name: Authorization
in: header
description: value must be `Bearer ` where `` is api key prefixed with cal_ or managed user access token
required: false
schema:
type: string
- name: x-cal-secret-key
in: header
description: For platform customers - OAuth client secret key
required: false
schema:
type: string
- name: x-cal-client-id
in: header
description: For platform customers - OAuth client ID
required: false
schema:
type: string
requestBody:
required: true
description: 'Accepts different types of booking input: Create Booking (Option 1) or Create Recurring Booking (Option 2)'
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/CreateBookingInput_2024_08_13'
- $ref: '#/components/schemas/CreateRecurringBookingInput_2024_08_13'
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/CreateBookingOutput_2024_08_13'
tags:
- Bookings
get:
operationId: BookingsController_2024_08_13_getBookings
summary: Get all bookings
description: Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint.
parameters:
- name: cal-api-version
in: header
description: Must be set to 2024-08-13. If not set to this value, the endpoint will default to an older version.
required: true
schema:
type: string
default: '2024-08-13'
- name: status
required: false
in: query
description: Filter bookings by status. If you want to filter by multiple statuses, separate them with a comma.
schema:
example: ?status=upcoming,past
type: array
items:
type: string
enum:
- upcoming
- recurring
- past
- cancelled
- unconfirmed
- name: attendeeEmail
required: false
in: query
description: Filter bookings by the attendee's email address.
schema:
example: example@domain.com
type: string
- name: attendeeName
required: false
in: query
description: Filter bookings by the attendee's name.
schema:
example: John Doe
type: string
- name: bookingUid
required: false
in: query
description: Filter bookings by the booking Uid.
schema:
example: 2NtaeaVcKfpmSZ4CthFdfk
type: string
- name: eventTypeIds
required: false
in: query
description: Filter bookings by event type ids belonging to the user. Event type ids must be separated by a comma.
schema:
example: ?eventTypeIds=100,200
type: string
- name: eventTypeId
required: false
in: query
description: Filter bookings by event type id belonging to the user.
schema:
example: ?eventTypeId=100
type: string
- name: teamsIds
required: false
in: query
description: Filter bookings by team ids that user is part of. Team ids must be separated by a comma.
schema:
example: ?teamIds=50,60
type: string
- name: teamId
required: false
in: query
description: Filter bookings by team id that user is part of
schema:
example: ?teamId=50
type: string
- name: afterStart
required: false
in: query
description: Filter bookings with start after this date string.
schema:
example: ?afterStart=2025-03-07T10:00:00.000Z
type: string
- name: beforeEnd
required: false
in: query
description: Filter bookings with end before this date string.
schema:
example: ?beforeEnd=2025-03-07T11:00:00.000Z
type: string
- name: afterCreatedAt
required: false
in: query
description: Filter bookings that have been created after this date string.
schema:
example: ?afterCreatedAt=2025-03-07T10:00:00.000Z
type: string
- name: beforeCreatedAt
required: false
in: query
description: Filter bookings that have been created before this date string.
schema:
example: ?beforeCreatedAt=2025-03-14T11:00:00.000Z
type: string
- name: afterUpdatedAt
required: false
in: query
description: Filter bookings that have been updated after this date string.
schema:
example: ?afterUpdatedAt=2025-03-07T10:00:00.000Z
type: string
- name: beforeUpdatedAt
required: false
in: query
description: Filter bookings that have been updated before this date string.
schema:
example: ?beforeUpdatedAt=2025-03-14T11:00:00.000Z
type: string
- name: sortStart
required: false
in: query
description: Sort results by their start time in ascending or descending order.
schema:
example: ?sortStart=asc OR ?sortStart=desc
enum:
- asc
- desc
type: string
- name: sortEnd
required: false
in: query
description: Sort results by their end time in ascending or descending order.
schema:
example: ?sortEnd=asc OR ?sortEnd=desc
enum:
- asc
- desc
type: string
- name: sortCreated
required: false
in: query
description: Sort results by their creation time (when booking was made) in ascending or descending order.
schema:
example: ?sortCreated=asc OR ?sortCreated=desc
enum:
- asc
- desc
type: string
- name: sortUpdatedAt
required: false
in: query
description: Sort results by their updated time (for example when booking status changes) in ascending or descending order.
schema:
example: ?sortUpdated=asc OR ?sortUpdated=desc
enum:
- asc
- desc
type: string
- name: take
required: false
in: query
description: The number of items to return
schema:
default: 100
example: 10
type: number
- name: skip
required: false
in: query
description: The number of items to skip
schema:
default: 0
example: 0
type: number
- name: Authorization
in: header
description: value must be `Bearer ` where `` is api key prefixed with cal_ or managed user access token
required: true
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/GetBookingsOutput_2024_08_13'
tags:
- Bookings
/v2/bookings/by-seat/{seatUid}:
get:
operationId: BookingsController_2024_08_13_getBookingBySeatUid
summary: Get a booking by seat UID
description: "Get a seated booking by its seat reference UID. This is useful when you have a seatUid from a seated booking and want to retrieve the full booking details.\n\n If you are fetching a seated booking for an event type with 'show attendees' disabled, then to retrieve attendees in the response either set 'show attendees' to true on event type level or\n you have to provide an authentication method of event type owner, host, team admin or owner or org admin or owner.\n\n Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint.\n "
parameters:
- name: cal-api-version
in: header
description: Must be set to 2024-08-13. If not set to this value, the endpoint will default to an older version.
required: true
schema:
type: string
default: '2024-08-13'
- name: seatUid
required: true
in: path
schema:
type: string
- name: Authorization
in: header
description: value must be `Bearer ` where `` is api key prefixed with cal_ or managed user access token
required: false
schema:
type: string
- name: x-cal-secret-key
in: header
description: For platform customers - OAuth client secret key
required: false
schema:
type: string
- name: x-cal-client-id
in: header
description: For platform customers - OAuth client ID
required: false
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/GetBookingOutput_2024_08_13'
tags:
- Bookings
/v2/bookings/{bookingUid}:
get:
operationId: BookingsController_2024_08_13_getBooking
summary: Get a booking
description: "`:bookingUid` can be\n\n 1. uid of a normal booking\n\n 2. uid of one of the recurring booking recurrences\n\n 3. uid of recurring booking which will return an array of all recurring booking recurrences (stored as recurringBookingUid on one of the individual recurrences).\n\n If you are fetching a seated booking for an event type with 'show attendees' disabled, then to retrieve attendees in the response either set 'show attendees' to true on event type level or\n you have to provide an authentication method of event type owner, host, team admin or owner or org admin or owner.\n\n Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint.\n "
parameters:
- name: cal-api-version
in: header
description: Must be set to 2024-08-13. If not set to this value, the endpoint will default to an older version.
required: true
schema:
type: string
default: '2024-08-13'
- name: bookingUid
required: true
in: path
schema:
type: string
- name: Authorization
in: header
description: value must be `Bearer ` where `` is api key prefixed with cal_ or managed user access token
required: false
schema:
type: string
- name: x-cal-secret-key
in: header
description: For platform customers - OAuth client secret key
required: false
schema:
type: string
- name: x-cal-client-id
in: header
description: For platform customers - OAuth client ID
required: false
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/GetBookingOutput_2024_08_13'
tags:
- Bookings
/v2/bookings/{bookingUid}/recordings:
get:
operationId: BookingsController_2024_08_13_getBookingRecordings
summary: Get all the recordings for the booking
description: "Fetches all the recordings for the booking `:bookingUid`. Requires authentication and proper authorization. Access is granted if you are the booking organizer, team admin or org admin/owner.\n\n cal-api-version: `2024-08-13` is required in the request header.\n "
parameters:
- name: cal-api-version
in: header
description: Must be set to 2024-08-13. If not set to this value, the endpoint will default to an older version.
required: true
schema:
type: string
default: '2024-08-13'
- name: bookingUid
required: true
in: path
schema:
type: string
- name: Authorization
in: header
description: value must be `Bearer ` where `` is api key prefixed with cal_ or managed user access token
required: true
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/GetBookingRecordingsOutput'
tags:
- Bookings
/v2/bookings/{bookingUid}/transcripts:
get:
operationId: BookingsController_2024_08_13_getBookingTranscripts
summary: Get Cal Video real time transcript download links for the booking
description: "Fetches all the transcript download links for the booking `:bookingUid`\n\n \n Transcripts are generated when clicking \"Transcribe\" during a Cal Video meeting. Download links are valid for 1 hour only - make a new request to generate fresh links after expiration.\n\n Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint.\n \n "
parameters:
- name: cal-api-version
in: header
description: Must be set to 2024-08-13. If not set to this value, the endpoint will default to an older version.
required: true
schema:
type: string
default: '2024-08-13'
- name: bookingUid
required: true
in: path
schema:
type: string
- name: Authorization
in: header
description: value must be `Bearer ` where `` is api key prefixed with cal_ or managed user access token
required: true
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/GetBookingTranscriptsOutput'
tags:
- Bookings
/v2/bookings/{bookingUid}/reschedule:
post:
operationId: BookingsController_2024_08_13_rescheduleBooking
summary: Reschedule a booking
description: "Reschedule a booking or seated booking\n\n Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint.\n "
parameters:
- name: cal-api-version
in: header
description: Must be set to 2024-08-13. If not set to this value, the endpoint will default to an older version.
required: true
schema:
type: string
default: '2024-08-13'
- name: bookingUid
required: true
in: path
schema:
type: string
- name: Authorization
in: header
description: value must be `Bearer ` where `` is api key prefixed with cal_ or managed user access token
required: false
schema:
type: string
- name: x-cal-secret-key
in: header
description: For platform customers - OAuth client secret key
required: false
schema:
type: string
- name: x-cal-client-id
in: header
description: For platform customers - OAuth client ID
required: false
schema:
type: string
requestBody:
required: true
description: "Accepts different types of reschedule booking input: Reschedule Booking (Option 1) or Reschedule Seated Booking (Option 2). If you're rescheduling a seated booking as org admin of booking host, pass booking input for Reschedule Booking (Option 1) along with your access token in the request header.\n\n If you are rescheduling a seated booking for an event type with 'show attendees' disabled, then to retrieve attendees in the response either set 'show attendees' to true on event type level or\n you have to provide an authentication method of event type owner, host, team admin or owner or org admin or owner."
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/RescheduleBookingInput_2024_08_13'
- $ref: '#/components/schemas/RescheduleSeatedBookingInput_2024_08_13'
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/RescheduleBookingOutput_2024_08_13'
tags:
- Bookings
/v2/bookings/{bookingUid}/cancel:
post:
operationId: BookingsController_2024_08_13_cancelBooking
summary: Cancel a booking
description: ":bookingUid can be :bookingUid of an usual booking, individual recurrence or recurring booking to cancel all recurrences.\n\n \nCancelling normal bookings:\n If the booking is not seated and not recurring, simply pass :bookingUid in the request URL `/bookings/:bookingUid/cancel` and optionally cancellationReason in the request body `{\"cancellationReason\": \"Will travel\"}`.\n\n \nCancelling seated bookings:\n It is possible to cancel specific seat within a booking as an attendee or all of the seats as the host.\n \n1. As an attendee - provide :bookingUid in the request URL `/bookings/:bookingUid/cancel` and seatUid in the request body `{\"seatUid\": \"123-123-123\"}` . This will remove this particular attendance from the booking.\n \n2. As the host or org admin of host - host can cancel booking for all attendees aka for every seat, this also applies to org admins. Provide :bookingUid in the request URL `/bookings/:bookingUid/cancel` and cancellationReason in the request body `{\"cancellationReason\": \"Will travel\"}` and `Authorization: Bearer token` request header where token is event type owner (host) credential. This will cancel the booking for all attendees.\n\n \nCancelling recurring seated bookings:\n For recurring seated bookings it is not possible to cancel all of them with 1 call\n like with non-seated recurring bookings by providing recurring bookind uid - you have to cancel each recurrence booking by its bookingUid + seatUid.\n\n If you are cancelling a seated booking for an event type with 'show attendees' disabled, then to retrieve attendees in the response either set 'show attendees' to true on event type level or\n you have to provide an authentication method of event type owner, host, team admin or owner or org admin or owner.\n\n Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint.\n "
parameters:
- name: cal-api-version
in: header
description: Must be set to 2024-08-13. If not set to this value, the endpoint will default to an older version.
required: true
schema:
type: string
default: '2024-08-13'
- name: bookingUid
required: true
in: path
schema:
type: string
- name: Authorization
in: header
description: value must be `Bearer ` where `` is api key prefixed with cal_ or managed user access token
required: false
schema:
type: string
- name: x-cal-secret-key
in: header
description: For platform customers - OAuth client secret key
required: false
schema:
type: string
- name: x-cal-client-id
in: header
description: For platform customers - OAuth client ID
required: false
schema:
type: string
requestBody:
required: true
description: 'Accepts different types of cancel booking input: Cancel Booking (Option 1 which is for normal or recurring bookings) or Cancel Seated Booking (Option 2 which is for seated bookings)'
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/CancelBookingInput_2024_08_13'
- $ref: '#/components/schemas/CancelSeatedBookingInput_2024_08_13'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/CancelBookingOutput_2024_08_13'
tags:
- Bookings
/v2/bookings/{bookingUid}/mark-absent:
post:
operationId: BookingsController_2024_08_13_markNoShow
summary: Mark a booking absence
description: "The provided authorization header refers to the owner of the booking.\n\n Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint.\n "
parameters:
- name: cal-api-version
in: header
description: Must be set to 2024-08-13. If not set to this value, the endpoint will default to an older version.
required: true
schema:
type: string
default: '2024-08-13'
- name: bookingUid
required: true
in: path
schema:
type: string
- name: Authorization
in: header
description: value must be `Bearer ` where `` is api key prefixed with cal_ or managed user access token
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MarkAbsentBookingInput_2024_08_13'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/MarkAbsentBookingOutput_2024_08_13'
tags:
- Bookings
/v2/bookings/{bookingUid}/reassign:
post:
operationId: BookingsController_2024_08_13_reassignBooking
summary: Reassign a booking to auto-selected host
description: "Currently only supports reassigning host for round robin bookings. The provided authorization header refers to the owner of the booking.\n\n Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint.\n "
parameters:
- name: cal-api-version
in: header
description: Must be set to 2024-08-13. If not set to this value, the endpoint will default to an older version.
required: true
schema:
type: string
default: '2024-08-13'
- name: bookingUid
required: true
in: path
schema:
type: string
- name: Authorization
in: header
description: value must be `Bearer ` where `` is api key prefixed with cal_ or managed user access token
required: true
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ReassignBookingOutput_2024_08_13'
tags:
- Bookings
/v2/bookings/{bookingUid}/reassign/{userId}:
post:
operationId: BookingsController_2024_08_13_reassignBookingToUser
summary: Reassign a booking to a specific host
description: "Currently only supports reassigning host for round robin bookings. The provided authorization header refers to the owner of the booking.\n\n Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint.\n "
parameters:
- name: cal-api-version
in: header
description: Must be set to 2024-08-13. If not set to this value, the endpoint will default to an older version.
required: true
schema:
type: string
default: '2024-08-13'
- name: bookingUid
required: true
in: path
schema:
type: string
- name: userId
required: true
in: path
schema:
type: number
- name: Authorization
in: header
description: value must be `Bearer ` where `` is api key prefixed with cal_ or managed user access token
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ReassignToUserBookingInput_2024_08_13'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ReassignBookingOutput_2024_08_13'
tags:
- Bookings
/v2/bookings/{bookingUid}/confirm:
post:
operationId: BookingsController_2024_08_13_confirmBooking
summary: Confirm a booking
description: "The provided authorization header refers to the owner of the booking.\n\n Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint.\n "
parameters:
- name: cal-api-version
in: header
description: Must be set to 2024-08-13. If not set to this value, the endpoint will default to an older version.
required: true
schema:
type: string
default: '2024-08-13'
- name: bookingUid
required: true
in: path
schema:
type: string
- name: Authorization
in: header
description: value must be `Bearer ` where `` is api key prefixed with cal_ or managed user access token
required: true
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/GetBookingOutput_2024_08_13'
tags:
- Bookings
/v2/bookings/{bookingUid}/decline:
post:
operationId: BookingsController_2024_08_13_declineBooking
summary: Decline a booking
description: "The provided authorization header refers to the owner of the booking.\n\n Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint.\n "
parameters:
- name: cal-api-version
in: header
description: Must be set to 2024-08-13. If not set to this value, the endpoint will default to an older version.
required: true
schema:
type: string
default: '2024-08-13'
- name: bookingUid
required: true
in: path
schema:
type: string
- name: Authorization
in: header
description: value must be `Bearer ` where `` is api key prefixed with cal_ or managed user access token
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DeclineBookingInput_2024_08_13'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/GetBookingOutput_2024_08_13'
tags:
- Bookings
/v2/bookings/{bookingUid}/calendar-links:
get:
operationId: BookingsController_2024_08_13_getCalendarLinks
summary: Get 'Add to Calendar' links for a booking
description: "Retrieve calendar links for a booking that can be used to add the event to various calendar services. Returns links for Google Calendar, Microsoft Office, Microsoft Outlook, and a downloadable ICS file.\n\n Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint.\n "
parameters:
- name: cal-api-version
in: header
description: Must be set to 2024-08-13. If not set to this value, the endpoint will default to an older version.
required: true
schema:
type: string
default: '2024-08-13'
- name: bookingUid
required: true
in: path
schema:
type: string
- name: Authorization
in: header
description: value must be `Bearer ` where `` is api key prefixed with cal_ or managed user access token
required: true
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/CalendarLinksOutput_2024_08_13'
tags:
- Bookings
/v2/bookings/{bookingUid}/references:
get:
operationId: BookingsController_2024_08_13_getBookingReferences
summary: Get booking references
description: Please make sure to pass in the cal-api-version header value as mentioned in the Headers section. Not passing the correct value will default to an older version of this endpoint.
parameters:
- name: cal-api-version
in: header
description: Must be set to 2024-08-13. If not set to this value, the endpoint will default to an older version.
required: true
schema:
type: string
default: '2024-08-13'
- name: bookingUid
required: true
in: path
schema:
type: string
- name: type
required: false
in: query
description: Filter booking references by type
schema:
example: google_calendar
enum:
- google_calendar
- office365_calendar
- daily_video
- google_video
- office365_video
- zoom_video
type: string
- name: Authorization
in: header
description: value must be `Bearer ` where `` is api key prefixed with cal_ or managed user access token
required: true
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/BookingReferencesOutput_2024_08_13'
tags:
- Bookings
/v2/bookings/{bookingUid}/conferencing-sessions:
get:
operationId: BookingsController_2024_08_13_getVideoSessions
summary: Get Video Meeting Sessions. Only supported for Cal Video
description: "Requires authentication and proper authorization. Access is granted if you are the booking organizer, team admin or org admin/owner.\n\n cal-api-version: `2024-08-13` is required in the request header."
parameters:
- name: cal-api-version
in: header
description: Must be set to 2024-08-13. If not set to this value, the endpoint will default to an older version.
required: true
schema:
type: string
default: '2024-08-13'
- name: bookingUid
required: true
in: path
schema:
type: string
- name: Authorization
in: header
description: value must be `Bearer ` where `` is api key prefixed with cal_ or managed user access token
required: true
schema:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/GetBookingVideoSessionsOutput'
tags:
- Bookings
/v2/bookings/{bookingUid}/location:
patch:
operationId: BookingLocationController_2024_08_13_updateBookingLocation
summary: Update booking location for an existing booking
description: 'Updates the location for an existing booking.
**Integration Fallback Behavior:**
- **Google Meet**: Requires Google Calendar to be connected. If the booking has no Google Calendar event, it will automatically fall back to Cal Video.
- **MS Teams**: If Office 365 Calendar is connected, generates the meeting link via calendar. Otherwise, uses the MS Teams video integration directly.
The cal-api-version header is required for this endpoint. Without it, the request will fail with a 404 error.'
parameters:
- name: cal-api-version
in: header
description: Must be set to 2024-08-13. This header is required as this endpoint does not exist in older API versions.
required: true
schema:
type: string
- name: bookingUid
required: true
in: path
schema:
type: string
- name: Authorization
in: header
description: value must be `Bearer ` where `` is api key prefixed with cal_ or managed user access token
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateBookingLocationInput_2024_08_13'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateBookingLocationOutput_2024_08_13'
tags:
- Bookings
components:
schemas:
Routing:
type: object
properties:
responseId:
type: number
description: The ID of the routing form response that determined this booking assignment.
example: 123
teamMemberIds:
description: Array of team member IDs that were routed to handle this booking.
example:
- 101
- 102
type: array
items:
type: number
teamMemberEmail:
type: string
description: The email of the team member assigned to handle this booking.
example: john.doe@example.com
skipContactOwner:
type: boolean
description: Whether to skip contact owner assignment from CRM integration.
example: true
crmAppSlug:
type: string
description: The CRM application slug for integration.
example: salesforce
crmOwnerRecordType:
type: string
description: The CRM owner record type for contact assignment.
example: Account
required:
- responseId
- teamMemberIds
CreateBookingInput_2024_08_13:
type: object
properties:
start:
type: string
description: The start time of the booking in ISO 8601 format in UTC timezone.
example: '2024-08-13T09:00:00Z'
attendee:
description: The attendee's details.
allOf:
- $ref: '#/components/schemas/CreateBookingAttendee'
bookingFieldsResponses:
type: object
description: Booking field responses consisting of an object with booking field slug as keys and user response as values for custom booking fields added by you.
example:
customField: customValue
eventTypeId:
type: number
description: The ID of the event type that is booked. Required unless eventTypeSlug and username are provided as an alternative to identifying the event type.
example: 123
eventTypeSlug:
type: string
description: The slug of the event type. Required along with username / teamSlug and optionally organizationSlug if eventTypeId is not provided.
example: my-event-type
username:
type: string
description: The username of the event owner. Required along with eventTypeSlug and optionally organizationSlug if eventTypeId is not provided.
example: john-doe
teamSlug:
type: string
description: Team slug for team that owns event type for which slots are fetched. Required along with eventTypeSlug and optionally organizationSlug if the team is part of organization
example: john-doe
organizationSlug:
type: string
description: The organization slug. Optional, only used when booking with eventTypeSlug + username or eventTypeSlug + teamSlug.
example: acme-corp
guests:
description: An optional list of guest emails attending the event.
example:
- guest1@example.com
- guest2@example.com
type: array
items:
type: string
meetingUrl:
type: string
description: Deprecated - use 'location' instead. Meeting URL just for this booking. Displayed in email and calendar event. If not provided then cal video link will be generated.
example: https://example.com/meeting
deprecated: true
location:
description: One of the event type locations. If instead of passing one of the location objects as required by schema you are still passing a string please use an object.
oneOf:
- $ref: '#/components/schemas/BookingInputAddressLocation_2024_08_13'
- $ref: '#/components/schemas/BookingInputAttendeeAddressLocation_2024_08_13'
- $ref: '#/components/schemas/BookingInputAttendeeDefinedLocation_2024_08_13'
- $ref: '#/components/schemas/BookingInputAttendeePhoneLocation_2024_08_13'
- $ref: '#/components/schemas/BookingInputIntegrationLocation_2024_08_13'
- $ref: '#/components/schemas/BookingInputLinkLocation_2024_08_13'
- $ref: '#/components/schemas/BookingInputPhoneLocation_2024_08_13'
- $ref: '#/components/schemas/BookingInputOrganizersDefaultAppLocation_2024_08_13'
metadata:
type: object
description: You can store any additional data you want here. Metadata must have at most 50 keys, each key up to 40 characters, and string values up to 500 characters.
example:
key: value
lengthInMinutes:
type: number
example: 30
description: "If it is an event type that has multiple possible lengths that attendee can pick from, you can pass the desired booking length here.\n If not provided then event type default length will be used for the booking."
routing:
description: Routing information from routing forms that determined the booking assignment. Both responseId and teamMemberIds are required if provided.
example:
responseId: 123
teamMemberIds:
- 101
- 102
allOf:
- $ref: '#/components/schemas/Routing'
emailVerificationCode:
type: string
description: Email verification code required when event type has email verification enabled.
example: '123456'
required:
- start
- attendee
RecurringBookingOutput_2024_08_13:
type: object
properties:
id:
type: number
example: 123
uid:
type: string
example: booking_uid_123
title:
type: string
example: Consultation
description:
type: string
example: Learn how to integrate scheduling into marketplace.
hosts:
type: array
items:
$ref: '#/components/schemas/BookingHost'
status:
type: string
enum:
- cancelled
- accepted
- rejected
- pending
example: accepted
cancellationReason:
type: string
example: User requested cancellation
cancelledByEmail:
type: string
example: canceller@example.com
reschedulingReason:
type: string
example: User rescheduled the event
rescheduledByEmail:
type: string
example: rescheduler@example.com
rescheduledFromUid:
type: string
example: previous_uid_123
description: UID of the previous booking from which this booking was rescheduled.
rescheduledToUid:
type: string
example: new_uid_456
description: UID of the new booking to which this booking was rescheduled.
start:
type: string
example: '2024-08-13T15:30:00Z'
end:
type: string
example: '2024-08-13T16:30:00Z'
duration:
type: number
example: 60
eventTypeId:
type: number
example: 50
deprecated: true
description: Deprecated - rely on 'eventType' object containing the id instead.
eventType:
$ref: '#/components/schemas/EventType'
meetingUrl:
type: string
description: Deprecated - rely on 'location' field instead.
example: https://example.com/recurring-meeting
deprecated: true
location:
type: string
example: https://example.com/meeting
absentHost:
type: boolean
example: true
createdAt:
type: string
example: '2024-08-13T15:30:00Z'
updatedAt:
type: string
example: '2024-08-13T15:30:00Z'
metadata:
type: object
example:
key: value
rating:
type: number
example: 4
icsUid:
type: string
example: ics_uid_123
description: UID of ICS event.
attendees:
type: array
items:
$ref: '#/components/schemas/BookingAttendee'
guests:
example:
- guest1@example.com
- guest2@example.com
type: array
items:
type: string
bookingFieldsResponses:
type: object
description: Booking field responses consisting of an object with booking field slug as keys and user response as values.
example:
customField: customValue
recurringBookingUid:
type: string
example: recurring_uid_987
required:
- id
- uid
- title
- description
- hosts
- status
- start
- end
- duration
- eventTypeId
- eventType
- location
- absentHost
- createdAt
- updatedAt
- attendees
- bookingFieldsResponses
- recurringBookingUid
MarkAbsentAttendee:
type: object
properties:
email:
type: string
absent:
type: boolean
required:
- email
- absent
ReassignBookingOutput_2024_08_13:
type: object
properties:
status:
type: string
example: success
enum:
- success
- error
data:
oneOf:
- $ref: '#/components/schemas/ReassignBookingOutput_2024_08_13'
description: Booking data, which can be either a ReassignAutoBookingOutput object or a ReassignManualBookingOutput object
allOf:
- $ref: '#/components/schemas/ReassignBookingOutput_2024_08_13'
required:
- status
- data
RescheduleBookingInput_2024_08_13:
type: object
properties:
start:
type: string
description: The start time of the booking in ISO 8601 format in UTC timezone.
example: '2024-08-13T09:00:00Z'
rescheduledBy:
type: string
description: 'Email of the person who is rescheduling the booking - only needed when rescheduling a booking that requires a confirmation.
If event type owner email is provided then rescheduled booking will be automatically confirmed. If attendee email or no email is passed then the event type
owner will have to confirm the rescheduled booking.'
reschedulingReason:
type: string
example: User requested reschedule
description: Reason for rescheduling the booking
emailVerificationCode:
type: string
description: Email verification code required when event type has email verification enabled.
example: '123456'
required:
- start
RescheduleSeatedBookingInput_2024_08_13:
type: object
properties:
start:
type: string
description: The start time of the booking in ISO 8601 format in UTC timezone.
example: '2024-08-13T09:00:00Z'
rescheduledBy:
type: string
description: 'Email of the person who is rescheduling the booking - only needed when rescheduling a booking that requires a confirmation.
If event type owner email is provided then rescheduled booking will be automatically confirmed. If attendee email or no email is passed then the event type
owner will have to confirm the rescheduled booking.'
seatUid:
type: string
example: 3be561a9-31f1-4b8e-aefc-9d9a085f0dd1
description: Uid of the specific seat within booking.
emailVerificationCode:
type: string
description: Email verification code required when event type has email verification enabled.
example: '123456'
required:
- start
- seatUid
EventType:
type: object
properties:
id:
type: number
example: 1
slug:
type: string
example: some-event
required:
- id
- slug
DeclineBookingInput_2024_08_13:
type: object
properties:
reason:
type: string
example: Host has to take another call
description: Reason for declining a booking that requires a confirmation
BookingOutput_2024_08_13:
type: object
properties:
id:
type: number
example: 123
uid:
type: string
example: booking_uid_123
title:
type: string
example: Consultation
description:
type: string
example: Learn how to integrate scheduling into marketplace.
hosts:
type: array
items:
$ref: '#/components/schemas/BookingHost'
status:
type: string
enum:
- cancelled
- accepted
- rejected
- pending
example: accepted
cancellationReason:
type: string
example: User requested cancellation
cancelledByEmail:
type: string
example: canceller@example.com
reschedulingReason:
type: string
example: User rescheduled the event
rescheduledByEmail:
type: string
example: rescheduler@example.com
rescheduledFromUid:
type: string
example: previous_uid_123
description: UID of the previous booking from which this booking was rescheduled.
rescheduledToUid:
type: string
example: new_uid_456
description: UID of the new booking to which this booking was rescheduled.
start:
type: string
example: '2024-08-13T15:30:00Z'
end:
type: string
example: '2024-08-13T16:30:00Z'
duration:
type: number
example: 60
eventTypeId:
type: number
example: 50
deprecated: true
description: Deprecated - rely on 'eventType' object containing the id instead.
eventType:
$ref: '#/components/schemas/EventType'
meetingUrl:
type: string
description: Deprecated - rely on 'location' field instead.
example: https://example.com/recurring-meeting
deprecated: true
location:
type: string
example: https://example.com/meeting
absentHost:
type: boolean
example: true
createdAt:
type: string
example: '2024-08-13T15:30:00Z'
updatedAt:
type: string
example: '2024-08-13T15:30:00Z'
metadata:
type: object
example:
key: value
rating:
type: number
example: 4
icsUid:
type: string
example: ics_uid_123
description: UID of ICS event.
attendees:
type: array
items:
$ref: '#/components/schemas/BookingAttendee'
guests:
example:
- guest1@example.com
- guest2@example.com
type: array
items:
type: string
bookingFieldsResponses:
type: object
description: Booking field responses consisting of an object with booking field slug as keys and user response as values.
example:
customField: customValue
required:
- id
- uid
- title
- description
- hosts
- status
- start
- end
- duration
- eventTypeId
- eventType
- location
- absentHost
- createdAt
- updatedAt
- attendees
- bookingFieldsResponses
CreateBookingOutput_2024_08_13:
type: object
properties:
status:
type: string
example: success
enum:
- success
- error
data:
oneOf:
- $ref: '#/components/schemas/BookingOutput_2024_08_13'
- type: array
items:
$ref: '#/components/schemas/RecurringBookingOutput_2024_08_13'
- $ref: '#/components/schemas/CreateSeatedBookingOutput_2024_08_13'
- type: array
items:
$ref: '#/components/schemas/CreateRecurringSeatedBookingOutput_2024_08_13'
description: Booking data, which can be either a BookingOutput object or an array of RecurringBookingOutput objects
required:
- status
- data
GetBookingTranscriptsOutput:
type: object
properties:
status:
type: string
example: success
enum:
- success
- error
data:
example:
- https://transcript1.com
- https://transcript2.com
type: array
items:
type: string
error:
type: object
required:
- status
- data
UpdateBookingInputAttendeeDefinedLocation_2024_08_13:
type: object
properties:
type:
type: string
example: attendeeDefined
description: only allowed value for type is `attendeeDefined`
location:
type: string
example: 321 Example St, City, Country
required:
- type
- location
BookingReferencesOutput_2024_08_13:
type: object
properties:
status:
type: object
description: The status of the request, always 'success' for successful responses
example: success
data:
description: Booking References
type: array
items:
$ref: '#/components/schemas/BookingReference'
required:
- status
- data
BookingReference:
type: object
properties:
type:
type: string
description: The type of the booking reference
eventUid:
type: string
description: The event uid of the booking
destinationCalendarId:
type: string
nullable: true
description: The id of the calendar the event is created in
id:
type: number
description: The id of the booking reference
required:
- type
- eventUid
- destinationCalendarId
- id
BookingInputIntegrationLocation_2024_08_13:
type: object
properties:
type:
type: string
example: integration
description: only allowed value for type is `integration`
integration:
type: string
example: cal-video
enum:
- cal-video
- google-meet
- zoom
- whereby-video
- whatsapp-video
- webex-video
- telegram-video
- tandem
- sylaps-video
- skype-video
- sirius-video
- signal-video
- shimmer-video
- salesroom-video
- roam-video
- riverside-video
- ping-video
- office365-video
- mirotalk-video
- jitsi
- jelly-video
- jelly-conferencing
- huddle
- facetime-video
- element-call-video
- eightxeight-video
- discord-video
- demodesk-video
- campfire-video
required:
- type
- integration
ReassignToUserBookingInput_2024_08_13:
type: object
properties:
reason:
type: string
example: Host has to take another call
description: Reason for reassigning the booking
BookingInputLinkLocation_2024_08_13:
type: object
properties:
type:
type: string
example: link
description: only allowed value for type is `link` - it refers to link defined by the organizer.
required:
- type
BookingInputPhoneLocation_2024_08_13:
type: object
properties:
type:
type: string
example: phone
description: only allowed value for type is `phone` - it refers to phone defined by the organizer.
required:
- type
UpdateBookingInputAttendeePhoneLocation_2024_08_13:
type: object
properties:
type:
type: string
example: attendeePhone
description: only allowed value for type is `attendeePhone`
phone:
type: string
example: '+37120993151'
required:
- type
- phone
CalMeetingSession:
type: object
properties:
id:
type: string
example: session123
room:
type: string
example: daily-video-room-123
startTime:
type: number
example: 1678901234
duration:
type: number
example: 3600
ongoing:
type: boolean
example: false
maxParticipants:
type: number
example: 10
participants:
type: array
items:
$ref: '#/components/schemas/CalMeetingParticipant'
required:
- id
- room
- startTime
- duration
- ongoing
- maxParticipants
- participants
CreateRecurringBookingInput_2024_08_13:
type: object
properties:
start:
type: string
description: The start time of the booking in ISO 8601 format in UTC timezone.
example: '2024-08-13T09:00:00Z'
attendee:
description: The attendee's details.
allOf:
- $ref: '#/components/schemas/CreateBookingAttendee'
bookingFieldsResponses:
type: object
description: Booking field responses consisting of an object with booking field slug as keys and user response as values for custom booking fields added by you.
example:
customField: customValue
eventTypeId:
type: number
description: The ID of the event type that is booked. Required unless eventTypeSlug and username are provided as an alternative to identifying the event type.
example: 123
eventTypeSlug:
type: string
description: The slug of the event type. Required along with username / teamSlug and optionally organizationSlug if eventTypeId is not provided.
example: my-event-type
username:
type: string
description: The username of the event owner. Required along with eventTypeSlug and optionally organizationSlug if eventTypeId is not provided.
example: john-doe
teamSlug:
type: string
description: Team slug for team that owns event type for which slots are fetched. Required along with eventTypeSlug and optionally organizationSlug if the team is part of organization
example: john-doe
organizationSlug:
type: string
description: The organization slug. Optional, only used when booking with eventTypeSlug + username or eventTypeSlug + teamSlug.
example: acme-corp
guests:
description: An optional list of guest emails attending the event.
example:
- guest1@example.com
- guest2@example.com
type: array
items:
type: string
meetingUrl:
type: string
description: Deprecated - use 'location' instead. Meeting URL just for this booking. Displayed in email and calendar event. If not provided then cal video link will be generated.
example: https://example.com/meeting
deprecated: true
location:
description: One of the event type locations. If instead of passing one of the location objects as required by schema you are still passing a string please use an object.
oneOf:
- $ref: '#/components/schemas/BookingInputAddressLocation_2024_08_13'
- $ref: '#/components/schemas/BookingInputAttendeeAddressLocation_2024_08_13'
- $ref: '#/components/schemas/BookingInputAttendeeDefinedLocation_2024_08_13'
- $ref: '#/components/schemas/BookingInputAttendeePhoneLocation_2024_08_13'
- $ref: '#/components/schemas/BookingInputIntegrationLocation_2024_08_13'
- $ref: '#/components/schemas/BookingInputLinkLocation_2024_08_13'
- $ref: '#/components/schemas/BookingInputPhoneLocation_2024_08_13'
- $ref: '#/components/schemas/BookingInputOrganizersDefaultAppLocation_2024_08_13'
metadata:
type: object
description: You can store any additional data you want here. Metadata must have at most 50 keys, each key up to 40 characters, and string values up to 500 characters.
example:
key: value
lengthInMinutes:
type: number
example: 30
description: "If it is an event type that has multiple possible lengths that attendee can pick from, you can pass the desired booking length here.\n If not provided then event type default length will be used for the booking."
routing:
description: Routing information from routing forms that determined the booking assignment. Both responseId and teamMemberIds are required if provided.
example:
responseId: 123
teamMemberIds:
- 101
- 102
allOf:
- $ref: '#/components/schemas/Routing'
emailVerificationCode:
type: string
description: Email verification code required when event type has email verification enabled.
example: '123456'
recurrenceCount:
type: number
description: "The number of recurrences. If not provided then event type recurrence count will be used. Can't be more than\n event type recurrence count"
example: 5
required:
- start
- attendee
CreateRecurringSeatedBookingOutput_2024_08_13:
type: object
properties:
id:
type: number
example: 123
uid:
type: string
example: booking_uid_123
title:
type: string
example: Consultation
description:
type: string
example: Learn how to integrate scheduling into marketplace.
hosts:
type: array
items:
$ref: '#/components/schemas/BookingHost'
status:
type: string
enum:
- cancelled
- accepted
- rejected
- pending
example: accepted
cancellationReason:
type: string
example: User requested cancellation
cancelledByEmail:
type: string
example: canceller@example.com
reschedulingReason:
type: string
example: User rescheduled the event
rescheduledByEmail:
type: string
example: rescheduler@example.com
rescheduledFromUid:
type: string
example: previous_uid_123
description: UID of the previous booking from which this booking was rescheduled.
rescheduledToUid:
type: string
example: new_uid_456
description: UID of the new booking to which this booking was rescheduled.
start:
type: string
example: '2024-08-13T15:30:00Z'
end:
type: string
example: '2024-08-13T16:30:00Z'
duration:
type: number
example: 60
eventTypeId:
type: number
example: 50
deprecated: true
description: Deprecated - rely on 'eventType' object containing the id instead.
eventType:
$ref: '#/components/schemas/EventType'
meetingUrl:
type: string
description: Deprecated - rely on 'location' field instead.
example: https://example.com/recurring-meeting
deprecated: true
location:
type: string
example: https://example.com/meeting
absentHost:
type: boolean
example: true
createdAt:
type: string
example: '2024-08-13T15:30:00Z'
updatedAt:
type: string
example: '2024-08-13T15:30:00Z'
metadata:
type: object
example:
key: value
rating:
type: number
example: 4
icsUid:
type: string
example: ics_uid_123
description: UID of ICS event.
seatUid:
type: string
example: 3be561a9-31f1-4b8e-aefc-9d9a085f0dd1
attendees:
type: array
items:
$ref: '#/components/schemas/SeatedAttendee'
recurringBookingUid:
type: string
example: recurring_uid_987
required:
- id
- uid
- title
- description
- hosts
- status
- start
- end
- duration
- eventTypeId
- eventType
- location
- absentHost
- createdAt
- updatedAt
- seatUid
- attendees
- recurringBookingUid
RecordingItem:
type: object
properties:
id:
type: string
example: '1234567890'
roomName:
type: string
example: daily-video-room-123
startTs:
type: number
example: 1678901234
status:
type: string
example: completed
maxParticipants:
type: number
example: 10
duration:
type: number
example: 3600
shareToken:
type: string
example: share-token-123
downloadLink:
type: string
nullable: true
example: https://cal-video-recordings.s3.us-east-2.amazonaws.com/meetco/123s
error:
type: string
nullable: true
example: Error message
required:
- id
- roomName
- startTs
- status
- duration
- shareToken
UpdateBookingInputPhoneLocation_2024_08_13:
type: object
properties:
type:
type: string
example: phone
description: only allowed value for type is `phone` - it refers to phone defined by the organizer.
phone:
type: string
example: '+37120993151'
required:
- type
- phone
PaginationMetaDto:
type: object
properties:
totalItems:
type: number
description: The total number of items available across all pages, matching the query criteria.
example: 123
minimum: 0
remainingItems:
type: number
description: 'The number of items remaining to be fetched *after* the current page. Calculated as: `totalItems - (skip + itemsPerPage)`.'
example: 103
minimum: 0
returnedItems:
type: number
description: The number of items returned in the current page.
example: 10
itemsPerPage:
type: number
description: The maximum number of items requested per page.
example: 10
minimum: 1
currentPage:
type: number
description: The current page number being returned.
example: 2
minimum: 1
totalPages:
type: number
description: The total number of pages available.
example: 13
minimum: 0
hasNextPage:
type: boolean
description: Indicates if there is a subsequent page available after the current one.
example: true
hasPreviousPage:
type: boolean
description: Indicates if there is a preceding page available before the current one.
example: true
required:
- totalItems
- remainingItems
- returnedItems
- itemsPerPage
- currentPage
- totalPages
- hasNextPage
- hasPreviousPage
GetBookingOutput_2024_08_13:
type: object
properties:
status:
type: string
example: success
enum:
- success
- error
data:
oneOf:
- $ref: '#/components/schemas/BookingOutput_2024_08_13'
- $ref: '#/components/schemas/RecurringBookingOutput_2024_08_13'
- type: array
items:
$ref: '#/components/schemas/RecurringBookingOutput_2024_08_13'
- $ref: '#/components/schemas/GetSeatedBookingOutput_2024_08_13'
- $ref: '#/components/schemas/GetRecurringSeatedBookingOutput_2024_08_13'
- type: array
items:
$ref: '#/components/schemas/GetRecurringSeatedBookingOutput_2024_08_13'
description: Booking data, which can be either a BookingOutput object, a RecurringBookingOutput object, or an array of RecurringBookingOutput objects
error:
type: object
required:
- status
- data
CancelSeatedBookingInput_2024_08_13:
type: object
properties:
seatUid:
type: string
example: 3be561a9-31f1-4b8e-aefc-9d9a085f0dd1
description: Uid of the specific seat within booking.
cancellationReason:
type: string
example: User requested cancellation
required:
- seatUid
BookingInputAttendeeDefinedLocation_2024_08_13:
type: object
properties:
type:
type: string
example: attendeeDefined
description: only allowed value for type is `attendeeDefined`
location:
type: string
example: 321 Example St, City, Country
required:
- type
- location
MarkAbsentBookingOutput_2024_08_13:
type: object
properties:
status:
type: string
example: success
enum:
- success
- error
data:
oneOf:
- $ref: '#/components/schemas/BookingOutput_2024_08_13'
- $ref: '#/components/schemas/RecurringBookingOutput_2024_08_13'
description: Booking data, which can be either a BookingOutput object or a RecurringBookingOutput object
required:
- status
- data
CancelBookingOutput_2024_08_13:
type: object
properties:
status:
type: string
example: success
enum:
- success
- error
data:
oneOf:
- $ref: '#/components/schemas/BookingOutput_2024_08_13'
- $ref: '#/components/schemas/RecurringBookingOutput_2024_08_13'
- type: array
items:
$ref: '#/components/schemas/RecurringBookingOutput_2024_08_13'
- $ref: '#/components/schemas/GetSeatedBookingOutput_2024_08_13'
- $ref: '#/components/schemas/GetRecurringSeatedBookingOutput_2024_08_13'
- type: array
items:
$ref: '#/components/schemas/GetRecurringSeatedBookingOutput_2024_08_13'
description: Booking data, which can be either a BookingOutput object, a RecurringBookingOutput object, or an array of RecurringBookingOutput objects
required:
- status
- data
UpdateBookingInputLinkLocation_2024_08_13:
type: object
properties:
type:
type: string
example: link
description: only allowed value for type is `link` - it refers to link defined by the organizer.
link:
type: string
example: https://meet.google.com/txi-fein-xyz
required:
- type
- link
GetBookingRecordingsOutput:
type: object
properties:
status:
type: string
example: success
enum:
- success
- error
error:
type: object
data:
type: array
items:
$ref: '#/components/schemas/RecordingItem'
required:
- status
- data
GetBookingVideoSessionsOutput:
type: object
properties:
status:
type: string
example: success
enum:
- success
- error
data:
type: array
items:
$ref: '#/components/schemas/CalMeetingSession'
error:
type: object
required:
- status
- data
UpdateBookingLocationOutput_2024_08_13:
type: object
properties:
status:
type: string
example: success
enum:
- success
- error
data:
oneOf:
- $ref: '#/components/schemas/BookingOutput_2024_08_13'
- $ref: '#/components/schemas/RecurringBookingOutput_2024_08_13'
- type: array
items:
$ref: '#/components/schemas/RecurringBookingOutput_2024_08_13'
- $ref: '#/components/schemas/GetSeatedBookingOutput_2024_08_13'
- $ref: '#/components/schemas/GetRecurringSeatedBookingOutput_2024_08_13'
- type: array
items:
$ref: '#/components/schemas/GetRecurringSeatedBookingOutput_2024_08_13'
description: Booking data, which can be either a BookingOutput object, a RecurringBookingOutput object, or an array of RecurringBookingOutput objects
required:
- status
- data
GetRecurringSeatedBookingOutput_2024_08_13:
type: object
properties:
id:
type: number
example: 123
uid:
type: string
example: booking_uid_123
title:
type: string
example: Consultation
description:
type: string
example: Learn how to integrate scheduling into marketplace.
hosts:
type: array
items:
$ref: '#/components/schemas/BookingHost'
status:
type: string
enum:
- cancelled
- accepted
- rejected
- pending
example: accepted
cancellationReason:
type: string
example: User requested cancellation
cancelledByEmail:
type: string
example: canceller@example.com
reschedulingReason:
type: string
example: User rescheduled the event
rescheduledByEmail:
type: string
example: rescheduler@example.com
rescheduledFromUid:
type: string
example: previous_uid_123
description: UID of the previous booking from which this booking was rescheduled.
rescheduledToUid:
type: string
example: new_uid_456
description: UID of the new booking to which this booking was rescheduled.
start:
type: string
example: '2024-08-13T15:30:00Z'
end:
type: string
example: '2024-08-13T16:30:00Z'
duration:
type: number
example: 60
eventTypeId:
type: number
example: 50
deprecated: true
description: Deprecated - rely on 'eventType' object containing the id instead.
eventType:
$ref: '#/components/schemas/EventType'
meetingUrl:
type: string
description: Deprecated - rely on 'location' field instead.
example: https://example.com/recurring-meeting
deprecated: true
location:
type: string
example: https://example.com/meeting
absentHost:
type: boolean
example: true
createdAt:
type: string
example: '2024-08-13T15:30:00Z'
updatedAt:
type: string
example: '2024-08-13T15:30:00Z'
metadata:
type: object
example:
key: value
rating:
type: number
example: 4
icsUid:
type: string
example: ics_uid_123
description: UID of ICS event.
attendees:
type: array
items:
$ref: '#/components/schemas/SeatedAttendee'
recurringBookingUid:
type: string
example: recurring_uid_987
required:
- id
- uid
- title
- description
- hosts
- status
- start
- end
- duration
- eventTypeId
- eventType
- location
- absentHost
- createdAt
- updatedAt
- attendees
- recurringBookingUid
BookingHost:
type: object
properties:
id:
type: number
example: 1
name:
type: string
example: Jane Doe
email:
type: string
example: jane100@example.com
displayEmail:
type: string
example: jane100@example.com
description: Clean email for display purposes
username:
type: string
example: jane100
timeZone:
type: string
example: America/Los_Angeles
required:
- id
- name
- email
- displayEmail
- username
- timeZone
BookingAttendee:
type: object
properties:
name:
type: string
example: John Doe
email:
type: string
example: john@example.com
displayEmail:
type: string
example: john@example.com
description: Clean email for display purposes
timeZone:
type: string
example: America/New_York
language:
type: string
enum:
- ar
- ca
- de
- es
- eu
- he
- id
- ja
- lv
- pl
- ro
- sr
- th
- vi
- az
- cs
- el
- es-419
- fi
- hr
- it
- km
- nl
- pt
- ru
- sv
- tr
- zh-CN
- bg
- da
- en
- et
- fr
- hu
- iw
- ko
- 'no'
- pt-BR
- sk
- ta
- uk
- zh-TW
- bn
example: en
absent:
type: boolean
example: false
phoneNumber:
type: string
example: '+1234567890'
required:
- name
- email
- displayEmail
- timeZone
- absent
BookingInputAddressLocation_2024_08_13:
type: object
properties:
type:
type: string
example: address
description: only allowed value for type is `address` - it refers to address defined by the organizer.
required:
- type
UpdateBookingLocationInput_2024_08_13:
type: object
properties:
location:
description: One of the event type locations. If instead of passing one of the location objects as required by schema you are still passing a string please use an object.
oneOf:
- $ref: '#/components/schemas/UpdateInputAddressLocation_2024_08_13'
- $ref: '#/components/schemas/UpdateBookingInputAttendeeAddressLocation_2024_08_13'
- $ref: '#/components/schemas/UpdateBookingInputAttendeeDefinedLocation_2024_08_13'
- $ref: '#/components/schemas/UpdateBookingInputAttendeePhoneLocation_2024_08_13'
- $ref: '#/components/schemas/UpdateBookingInputLinkLocation_2024_08_13'
- $ref: '#/components/schemas/UpdateBookingInputPhoneLocation_2024_08_13'
- $ref: '#/components/schemas/UpdateBookingInputIntegrationLocation_2024_08_13'
BookingInputAttendeePhoneLocation_2024_08_13:
type: object
properties:
type:
type: string
example: attendeePhone
description: only allowed value for type is `attendeePhone`
phone:
type: string
example: '+37120993151'
required:
- type
- phone
CreateSeatedBookingOutput_2024_08_13:
type: object
properties:
id:
type: number
example: 123
uid:
type: string
example: booking_uid_123
title:
type: string
example: Consultation
description:
type: string
example: Learn how to integrate scheduling into marketplace.
hosts:
type: array
items:
$ref: '#/components/schemas/BookingHost'
status:
type: string
enum:
- cancelled
- accepted
- rejected
- pending
example: accepted
cancellationReason:
type: string
example: User requested cancellation
cancelledByEmail:
type: string
example: canceller@example.com
reschedulingReason:
type: string
example: User rescheduled the event
rescheduledByEmail:
type: string
example: rescheduler@example.com
rescheduledFromUid:
type: string
example: previous_uid_123
description: UID of the previous booking from which this booking was rescheduled.
rescheduledToUid:
type: string
example: new_uid_456
description: UID of the new booking to which this booking was rescheduled.
start:
type: string
example: '2024-08-13T15:30:00Z'
end:
type: string
example: '2024-08-13T16:30:00Z'
duration:
type: number
example: 60
eventTypeId:
type: number
example: 50
deprecated: true
description: Deprecated - rely on 'eventType' object containing the id instead.
eventType:
$ref: '#/components/schemas/EventType'
meetingUrl:
type: string
description: Deprecated - rely on 'location' field instead.
example: https://example.com/recurring-meeting
deprecated: true
location:
type: string
example: https://example.com/meeting
absentHost:
type: boolean
example: true
createdAt:
type: string
example: '2024-08-13T15:30:00Z'
updatedAt:
type: string
example: '2024-08-13T15:30:00Z'
metadata:
type: object
example:
key: value
rating:
type: number
example: 4
icsUid:
type: string
example: ics_uid_123
description: UID of ICS event.
seatUid:
type: string
example: 3be561a9-31f1-4b8e-aefc-9d9a085f0dd1
attendees:
type: array
items:
$ref: '#/components/schemas/SeatedAttendee'
required:
- id
- uid
- title
- description
- hosts
- status
- start
- end
- duration
- eventTypeId
- eventType
- location
- absentHost
- createdAt
- updatedAt
- seatUid
- attendees
CalendarLinksOutput_2024_08_13:
type: object
properties:
status:
type: object
description: The status of the request, always 'success' for successful responses
example: success
data:
description: Calendar links for the booking
type: array
items:
$ref: '#/components/schemas/CalendarLink'
required:
- status
- data
CalendarLink:
type: object
properties:
label:
type: string
description: The label of the calendar link
link:
type: string
description: The link to the calendar
required:
- label
- link
CalMeetingParticipant:
type: object
properties:
userId:
type: string
nullable: true
example: user123
userName:
type: string
nullable: true
example: John Doe
joinTime:
type: number
example: 1678901234
duration:
type: number
example: 3600
required:
- userId
- userName
- joinTime
- duration
GetBookingsOutput_2024_08_13:
type: object
properties:
status:
type: string
example: success
enum:
- success
- error
data:
type: array
items:
oneOf:
- $ref: '#/components/schemas/BookingOutput_2024_08_13'
- $ref: '#/components/schemas/RecurringBookingOutput_2024_08_13'
- $ref: '#/components/schemas/GetSeatedBookingOutput_2024_08_13'
- $ref: '#/components/schemas/GetRecurringSeatedBookingOutput_2024_08_13'
description: Array of booking data, which can contain either BookingOutput objects or RecurringBookingOutput objects
pagination:
$ref: '#/components/schemas/PaginationMetaDto'
error:
type: object
required:
- status
- data
- pagination
UpdateBookingInputIntegrationLocation_2024_08_13:
type: object
properties:
type:
type: string
example: integration
description: only allowed value for type is `integration`
integration:
type: string
example: cal-video
enum:
- cal-video
- google-meet
- zoom
- whereby-video
- whatsapp-video
- webex-video
- telegram-video
- tandem
- sylaps-video
- skype-video
- sirius-video
- signal-video
- shimmer-video
- salesroom-video
- roam-video
- riverside-video
- ping-video
- office365-video
- mirotalk-video
- jitsi
- jelly-video
- jelly-conferencing
- huddle
- facetime-video
- element-call-video
- eightxeight-video
- discord-video
- demodesk-video
- campfire-video
required:
- type
- integration
UpdateBookingInputAttendeeAddressLocation_2024_08_13:
type: object
properties:
type:
type: string
example: attendeeAddress
description: only allowed value for type is `attendeeAddress`
address:
type: string
example: 123 Example St, City, Country
required:
- type
- address
BookingInputAttendeeAddressLocation_2024_08_13:
type: object
properties:
type:
type: string
example: attendeeAddress
description: only allowed value for type is `attendeeAddress`
address:
type: string
example: 123 Example St, City, Country
required:
- type
- address
CreateBookingAttendee:
type: object
properties:
name:
type: string
description: The name of the attendee.
example: John Doe
timeZone:
type: string
description: The time zone of the attendee.
example: America/New_York
phoneNumber:
type: string
description: The phone number of the attendee in international format.
example: '+919876543210'
language:
type: string
enum:
- ar
- ca
- de
- es
- eu
- he
- id
- ja
- lv
- pl
- ro
- sr
- th
- vi
- az
- cs
- el
- es-419
- fi
- hr
- it
- km
- nl
- pt
- ru
- sv
- tr
- zh-CN
- bg
- da
- en
- et
- fr
- hu
- iw
- ko
- 'no'
- pt-BR
- sk
- ta
- uk
- zh-TW
- bn
description: The preferred language of the attendee. Used for booking confirmation.
example: it
default: en
email:
type: string
description: The email of the attendee.
example: john.doe@example.com
required:
- name
- timeZone
MarkAbsentBookingInput_2024_08_13:
type: object
properties:
host:
type: boolean
example: false
description: Whether the host was absent
attendees:
type: array
items:
$ref: '#/components/schemas/MarkAbsentAttendee'
SeatedAttendee:
type: object
properties:
name:
type: string
example: John Doe
email:
type: string
example: john@example.com
displayEmail:
type: string
example: john@example.com
description: Clean email for display purposes
timeZone:
type: string
example: America/New_York
language:
type: string
enum:
- ar
- ca
- de
- es
- eu
- he
- id
- ja
- lv
- pl
- ro
- sr
- th
- vi
- az
- cs
- el
- es-419
- fi
- hr
- it
- km
- nl
- pt
- ru
- sv
- tr
- zh-CN
- bg
- da
- en
- et
- fr
- hu
- iw
- ko
- 'no'
- pt-BR
- sk
- ta
- uk
- zh-TW
- bn
example: en
absent:
type: boolean
example: false
phoneNumber:
type: string
example: '+1234567890'
seatUid:
type: string
example: 3be561a9-31f1-4b8e-aefc-9d9a085f0dd1
bookingFieldsResponses:
type: object
description: Booking field responses consisting of an object with booking field slug as keys and user response as values.
example:
customField: customValue
metadata:
type: object
example:
key: value
required:
- name
- email
- displayEmail
- timeZone
- absent
- seatUid
- bookingFieldsResponses
BookingInputOrganizersDefaultAppLocation_2024_08_13:
type: object
properties:
type:
type: string
example: organizersDefaultApp
description: only available for team event types and the only allowed value for type is `organizersDefaultApp` - it refers to the default app defined by the organizer.
required:
- type
GetSeatedBookingOutput_2024_08_13:
type: object
properties:
id:
type: number
example: 123
uid:
type: string
example: booking_uid_123
title:
type: string
example: Consultation
description:
type: string
example: Learn how to integrate scheduling into marketplace.
hosts:
type: array
items:
$ref: '#/components/schemas/BookingHost'
status:
type: string
enum:
- cancelled
- accepted
- rejected
- pending
example: accepted
cancellationReason:
type: string
example: User requested cancellation
cancelledByEmail:
type: string
example: canceller@example.com
reschedulingReason:
type: string
example: User rescheduled the event
rescheduledByEmail:
type: string
example: rescheduler@example.com
rescheduledFromUid:
type: string
example: previous_uid_123
description: UID of the previous booking from which this booking was rescheduled.
rescheduledToUid:
type: string
example: new_uid_456
description: UID of the new booking to which this booking was rescheduled.
start:
type: string
example: '2024-08-13T15:30:00Z'
end:
type: string
example: '2024-08-13T16:30:00Z'
duration:
type: number
example: 60
eventTypeId:
type: number
example: 50
deprecated: true
description: Deprecated - rely on 'eventType' object containing the id instead.
eventType:
$ref: '#/components/schemas/EventType'
meetingUrl:
type: string
description: Deprecated - rely on 'location' field instead.
example: https://example.com/recurring-meeting
deprecated: true
location:
type: string
example: https://example.com/meeting
absentHost:
type: boolean
example: true
createdAt:
type: string
example: '2024-08-13T15:30:00Z'
updatedAt:
type: string
example: '2024-08-13T15:30:00Z'
metadata:
type: object
example:
key: value
rating:
type: number
example: 4
icsUid:
type: string
example: ics_uid_123
description: UID of ICS event.
attendees:
type: array
items:
$ref: '#/components/schemas/SeatedAttendee'
required:
- id
- uid
- title
- description
- hosts
- status
- start
- end
- duration
- eventTypeId
- eventType
- location
- absentHost
- createdAt
- updatedAt
- attendees
CancelBookingInput_2024_08_13:
type: object
properties:
cancellationReason:
type: string
example: User requested cancellation
cancelSubsequentBookings:
type: boolean
description: For recurring non-seated booking only - if true, cancel booking with the bookingUid of the individual recurrence and all recurrences that come after it.
RescheduleBookingOutput_2024_08_13:
type: object
properties:
status:
type: string
example: success
enum:
- success
- error
data:
oneOf:
- $ref: '#/components/schemas/BookingOutput_2024_08_13'
- $ref: '#/components/schemas/RecurringBookingOutput_2024_08_13'
- $ref: '#/components/schemas/CreateSeatedBookingOutput_2024_08_13'
- $ref: '#/components/schemas/CreateRecurringSeatedBookingOutput_2024_08_13'
description: Booking data, which can be either a BookingOutput object or a RecurringBookingOutput object
required:
- status
- data
UpdateInputAddressLocation_2024_08_13:
type: object
properties:
type:
type: string
example: address
description: only allowed value for type is `address` - it refers to address defined by the organizer.
address:
type: string
example: 123 Example St, City, Country
required:
- type
- address