openapi: 3.0.0 info: title: Cal.diy API v2 Api Keys Bookings / Attendees API description: '' version: 1.0.0 contact: {} servers: [] tags: - name: Bookings / Attendees paths: /v2/bookings/{bookingUid}/attendees: get: operationId: BookingAttendeesController_2024_08_13_getBookingAttendees summary: Get all attendees for a booking description: "Retrieve all attendees for a specific booking by its UID.\n \n The cal-api-version header is required for this endpoint. Without it, the request will fail with a 404 error.\n " 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 responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/GetBookingAttendeesOutput_2024_08_13' tags: - Bookings / Attendees post: operationId: BookingAttendeesController_2024_08_13_addAttendee summary: Add an attendee to a booking description: "Add a new attendee to an existing booking by its UID.\n\n **Side effects:**\n - The booking's attendee list is updated in the database\n - The calendar event is updated on connected calendars (Google Calendar, Outlook, etc.) to include the new attendee\n - An email notification is sent to the new attendee with the booking details\n\n **Permissions:**\n - The authenticated user must be either the booking organizer, an existing attendee, or have the `booking.update` permission for the team\n\n The cal-api-version header is required for this endpoint. Without it, the request will fail with a 404 error.\n " 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/AddAttendeeInput_2024_08_13' responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/AddAttendeeOutput_2024_08_13' tags: - Bookings / Attendees /v2/bookings/{bookingUid}/attendees/{attendeeId}: get: operationId: BookingAttendeesController_2024_08_13_getBookingAttendee summary: Get a specific attendee for a booking description: "Retrieve a specific attendee by their ID for a booking identified by its UID.\n \n The cal-api-version header is required for this endpoint. Without it, the request will fail with a 404 error.\n " 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: attendeeId 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 responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/GetBookingAttendeeOutput_2024_08_13' tags: - Bookings / Attendees delete: operationId: BookingAttendeesController_2024_08_13_removeAttendee summary: Remove an attendee from a booking description: "Remove an attendee from an existing booking by their attendee ID. The primary attendee (first attendee) cannot be removed — to remove them, cancel the booking instead. The removed attendee will receive a cancellation email notification.\n\n The cal-api-version header is required for this endpoint. Without it, the request will fail with a 404 error.\n " 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: attendeeId 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 responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/RemoveAttendeeOutput_2024_08_13' tags: - Bookings / Attendees components: schemas: RemovedAttendeeOutput_2024_08_13: type: object properties: id: type: number description: The ID of the attendee. example: 123 bookingId: type: number description: The ID of the booking. example: 456 name: type: string description: The name of the attendee. example: John Doe email: type: string description: The email of the attendee. example: john.doe@example.com timeZone: type: string description: The time zone of the attendee. example: America/New_York required: - id - bookingId - name - email - timeZone AddAttendeeInput_2024_08_13: 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 - email GetBookingAttendeesOutput_2024_08_13: type: object properties: status: type: string example: success enum: - success - error data: type: array items: $ref: '#/components/schemas/BookingAttendeeWithId_2024_08_13' required: - status - data BookingAttendeeOutput_2024_08_13: 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' id: type: number example: 251 bookingId: type: number example: 313 required: - name - email - displayEmail - timeZone - absent - id - bookingId BookingAttendeeWithId_2024_08_13: 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' id: type: number example: 251 required: - name - email - displayEmail - timeZone - absent - id GetBookingAttendeeOutput_2024_08_13: type: object properties: status: type: string example: success enum: - success - error data: $ref: '#/components/schemas/BookingAttendeeWithId_2024_08_13' required: - status - data RemoveAttendeeOutput_2024_08_13: type: object properties: status: type: string example: success enum: - success - error data: $ref: '#/components/schemas/RemovedAttendeeOutput_2024_08_13' required: - status - data AddAttendeeOutput_2024_08_13: type: object properties: status: type: string example: success enum: - success - error data: $ref: '#/components/schemas/BookingAttendeeOutput_2024_08_13' required: - status - data