Calendly Invitees API

Endpoints for listing, retrieving, and creating invitees on scheduled events.

OpenAPI Specification

calendly-invitees-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Calendly Scheduling Activity Log Invitees API
  description: The Calendly Scheduling API (v2) is a RESTful API that allows developers to programmatically manage scheduling workflows. It provides endpoints for managing users, organizations, event types, scheduled events, invitees, routing forms, availability schedules, and webhook subscriptions. The API uses JSON for request and response bodies, standard HTTP methods, and supports authentication via personal access tokens and OAuth 2.1. Developers can use it to create events on behalf of invitees, retrieve scheduling data, and integrate Calendly functionality directly into their applications.
  version: 2.0.0
  contact:
    name: Calendly Developer Support
    url: https://developer.calendly.com/
  termsOfService: https://calendly.com/pages/terms
servers:
- url: https://api.calendly.com
  description: Production Server
security:
- bearerAuth: []
tags:
- name: Invitees
  description: Endpoints for listing, retrieving, and creating invitees on scheduled events.
paths:
  /scheduled_events/{event_uuid}/invitees:
    get:
      operationId: listEventInvitees
      summary: List event invitees
      description: Returns a paginated list of invitees for a specific scheduled event. Invitee data includes name, email, timezone, and answers to custom questions from the booking page.
      tags:
      - Invitees
      parameters:
      - name: event_uuid
        in: path
        required: true
        description: The UUID of the scheduled event.
        schema:
          type: string
      - name: status
        in: query
        description: Filter by invitee status.
        schema:
          type: string
          enum:
          - active
          - canceled
      - name: sort
        in: query
        description: Sort order for results. Use created_at:asc or created_at:desc.
        schema:
          type: string
      - $ref: '#/components/parameters/Count'
      - $ref: '#/components/parameters/PageToken'
      responses:
        '200':
          description: Successfully retrieved the list of invitees
          content:
            application/json:
              schema:
                type: object
                properties:
                  collection:
                    type: array
                    items:
                      $ref: '#/components/schemas/Invitee'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /scheduled_events/{event_uuid}/invitees/{invitee_uuid}:
    get:
      operationId: getEventInvitee
      summary: Get event invitee
      description: Returns detailed information about a specific invitee for a scheduled event, including their name, email, timezone, and answers to custom questions on the event booking page.
      tags:
      - Invitees
      parameters:
      - name: event_uuid
        in: path
        required: true
        description: The UUID of the scheduled event.
        schema:
          type: string
      - name: invitee_uuid
        in: path
        required: true
        description: The UUID of the invitee.
        schema:
          type: string
      responses:
        '200':
          description: Successfully retrieved the invitee
          content:
            application/json:
              schema:
                type: object
                properties:
                  resource:
                    $ref: '#/components/schemas/Invitee'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /invitees:
    post:
      operationId: createEventInvitee
      summary: Create event invitee
      description: Creates a new invitee for a scheduled event, effectively booking a meeting on behalf of the invitee. This is the core endpoint of the Scheduling API, enabling programmatic event creation without redirects, iframes, or the Calendly-hosted UI. Requires a paid Calendly plan.
      tags:
      - Invitees
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - event_type
              - start_time
              - invitee
              properties:
                event_type:
                  type: string
                  format: uri
                  description: The URI of the event type to book.
                start_time:
                  type: string
                  format: date-time
                  description: The start time for the event in UTC. Must correspond to a valid available time slot.
                invitee:
                  type: object
                  required:
                  - name
                  - email
                  properties:
                    name:
                      type: string
                      description: The full name of the invitee.
                    email:
                      type: string
                      format: email
                      description: The email address of the invitee.
                    timezone:
                      type: string
                      description: The IANA timezone of the invitee.
                  description: The invitee details for the booking.
                questions_and_answers:
                  type: array
                  items:
                    type: object
                    properties:
                      question_uuid:
                        type: string
                        description: The UUID of the custom question.
                      answer:
                        type: string
                        description: The answer to the custom question.
                  description: Answers to custom questions on the event type booking page.
      responses:
        '201':
          description: Successfully created the invitee and booked the event
          content:
            application/json:
              schema:
                type: object
                properties:
                  resource:
                    $ref: '#/components/schemas/Invitee'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    Cancellation:
      type: object
      description: Information about a canceled event or invitee, including who canceled and the reason.
      properties:
        canceled_by:
          type: string
          description: The name or identifier of who canceled the event.
        reason:
          type: string
          description: The reason provided for the cancellation.
        canceler_type:
          type: string
          enum:
          - host
          - invitee
          description: Whether the host or invitee canceled.
        created_at:
          type: string
          format: date-time
          description: The timestamp when the cancellation occurred.
    Invitee:
      type: object
      description: An invitee is a person who has booked or been booked for a scheduled event, with their contact information and booking details.
      properties:
        uri:
          type: string
          format: uri
          description: The canonical URI of the invitee resource.
        email:
          type: string
          format: email
          description: The email address of the invitee.
        first_name:
          type: string
          description: The first name of the invitee.
        last_name:
          type: string
          description: The last name of the invitee.
        name:
          type: string
          description: The full name of the invitee.
        status:
          type: string
          enum:
          - active
          - canceled
          description: The status of the invitee.
        timezone:
          type: string
          description: The IANA timezone of the invitee.
        event:
          type: string
          format: uri
          description: The URI of the associated scheduled event.
        text_reminder_number:
          type: string
          description: The phone number for text reminders.
        rescheduled:
          type: boolean
          description: Whether this invitee was rescheduled from a previous event.
        old_invitee:
          type: string
          format: uri
          description: The URI of the previous invitee if this was rescheduled.
        new_invitee:
          type: string
          format: uri
          description: The URI of the new invitee if this invitee was rescheduled.
        cancel_url:
          type: string
          format: uri
          description: The URL for the invitee to cancel the event.
        reschedule_url:
          type: string
          format: uri
          description: The URL for the invitee to reschedule the event.
        routing_form_submission:
          type: string
          format: uri
          description: The URI of the routing form submission that led to this booking.
        cancellation:
          $ref: '#/components/schemas/Cancellation'
        payment:
          type: object
          description: Payment information if the event type requires payment.
          properties:
            external_id:
              type: string
              description: The external payment processor ID.
            provider:
              type: string
              description: The payment provider name.
            amount:
              type: number
              description: The payment amount.
            currency:
              type: string
              description: The payment currency code.
            terms:
              type: string
              description: The payment terms.
            successful:
              type: boolean
              description: Whether the payment was successful.
        questions_and_answers:
          type: array
          items:
            type: object
            properties:
              question:
                type: string
                description: The text of the custom question.
              answer:
                type: string
                description: The invitees answer to the question.
              position:
                type: integer
                description: The display position of the question.
          description: The invitees answers to custom questions on the booking page.
        tracking:
          type: object
          description: UTM and tracking parameters captured at booking time.
          properties:
            utm_campaign:
              type: string
              description: The UTM campaign parameter.
            utm_source:
              type: string
              description: The UTM source parameter.
            utm_medium:
              type: string
              description: The UTM medium parameter.
            utm_content:
              type: string
              description: The UTM content parameter.
            utm_term:
              type: string
              description: The UTM term parameter.
            salesforce_uuid:
              type: string
              description: The Salesforce UUID if applicable.
        created_at:
          type: string
          format: date-time
          description: The timestamp when the invitee was created.
        updated_at:
          type: string
          format: date-time
          description: The timestamp when the invitee was last updated.
    Pagination:
      type: object
      description: Pagination information for paginated list responses.
      properties:
        count:
          type: integer
          description: The number of results in the current page.
        next_page:
          type: string
          format: uri
          description: The URL of the next page of results, if available.
        previous_page:
          type: string
          format: uri
          description: The URL of the previous page of results, if available.
        next_page_token:
          type: string
          description: The token to fetch the next page of results.
        previous_page_token:
          type: string
          description: The token to fetch the previous page of results.
    Error:
      type: object
      description: An error response from the Calendly API.
      properties:
        title:
          type: string
          description: A short summary of the error.
        message:
          type: string
          description: A detailed description of the error.
        details:
          type: array
          items:
            type: object
            properties:
              parameter:
                type: string
                description: The parameter that caused the error.
              message:
                type: string
                description: A description of what was wrong with the parameter.
          description: Specific details about validation errors.
  responses:
    Unauthorized:
      description: Authentication failed. Verify that a valid access token is provided in the Authorization header.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: The request was invalid or malformed. Check the request body and parameters.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested resource was not found. Verify the UUID or URI is correct.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  parameters:
    Count:
      name: count
      in: query
      description: The number of results to return per page.
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 20
    PageToken:
      name: page_token
      in: query
      description: A token for fetching the next page of results from a previous paginated response.
      schema:
        type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Personal access token or OAuth 2.1 access token. Include in the Authorization header as Bearer {token}.
externalDocs:
  description: Calendly API Documentation
  url: https://developer.calendly.com/api-docs