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