> ## Documentation Index
> Fetch the complete documentation index at: https://cal.id/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Get available slots

> Get available slots for an event type or users



## OpenAPI

````yaml /openapi.json get /slots/
openapi: 3.1.0
info:
  title: Cal ID API
  description: >-
    API documentation for external developers integrating with Cal ID. This
    documentation is auto-generated from our OpenAPI specification and includes
    details on all available endpoints, request/response schemas, and
    authentication methods.


    Authentication is required for all endpoints and can be done using API key
    generated from the Cal ID dashboard under the `settings/developer/api-keys`
    page. Use the Authorization header with the Bearer scheme to authenticate
    your requests.


    Example:

    - API Key: `Authorization: Bearer calid_xxxxx`


    Note: To manage Team's resources use the Team's owner/admin API key
  version: 1.0.0
  contact:
    name: API Support
    email: support@cal.id
    url: https://cal.id
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
servers:
  - url: https://api.cal.id
    description: 'Production server '
security:
  - bearerAuth: []
tags:
  - name: Health
    description: Health check endpoints
  - name: Users
    description: User management endpoints
  - name: Event Types
    description: Event type management endpoints
  - name: Teams
    description: Team management endpoints
  - name: Team Event Types
    description: Event type management endpoints for teams
  - name: Team Memberships
    description: Membership management endpoints for teams
  - name: Team Schedules
    description: Schedule management endpoints for teams
  - name: Availability
    description: User availability management endpoints
  - name: Schedule
    description: User schedule management endpoints
  - name: Slots
    description: Available slots retrieval endpoints
  - name: Booking
    description: Event booking endpoints
paths:
  /slots/:
    get:
      tags:
        - Slots
      summary: Get available slots
      description: Get available slots for an event type or users
      operationId: get_slots
      parameters:
        - schema:
            type: string
            pattern: ^[1-9]\d*$
            example: '123'
          in: query
          name: eventTypeId
          required: false
          description: >-
            Event type ID to fetch availability for. Required unless
            `eventTypeSlug` includes owner context (`<username>/<slug>` or
            `team/<teamSlug>/<slug>`) or is paired with `usernameList`.
        - schema:
            type: string
            example: discovery-call-30
          in: query
          name: eventTypeSlug
          required: false
          description: >-
            Event type slug used for slug-based slot lookup. Supports values
            like `discovery-call-30` or `<username>/<slug>` and
            `team/<teamSlug>/<slug>`.
        - schema:
            anyOf:
              - type: string
              - type: array
                items:
                  type: string
            example:
              - john-doe
          in: query
          name: usernameList
          required: false
          description: >-
            One or more usernames for slug-based lookup. A single username value
            is also accepted and normalized to an array.
        - schema:
            type: string
            minLength: 1
            example: '2026-05-01T00:00:00.000Z'
          in: query
          name: start
          required: true
          description: Availability window start timestamp.
        - schema:
            type: string
            minLength: 1
            example: '2026-05-07T23:59:59.000Z'
          in: query
          name: end
          required: true
          description: Availability window end timestamp.
        - schema:
            type: string
            example: Asia/Kolkata
          in: query
          name: timeZone
          required: false
          description: IANA timezone used to return slots.
        - schema:
            type: integer
            example: 30
            minimum: 1
          in: query
          name: duration
          required: false
          description: Optional slot duration in minutes.
        - schema:
            type: string
            enum:
              - time
              - range
            example: time
          in: query
          name: format
          required: false
          description: Slot format preference.
        - schema:
            type: string
            example: 2f33b5cd-8ec7-4eb0-91fd-9488c30f4744
          in: query
          name: bookingUidToReschedule
          required: false
          description: >-
            Booking UID being rescheduled, used to include the original booking
            slot in availability.
        - schema:
            type: boolean
            example: false
          in: query
          name: isTeamEvent
          required: false
          description: Whether lookup should be treated as a team event flow.
      responses:
        '200':
          description: GetSlotsResponse
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - true
                  data:
                    type: object
                    properties:
                      slots:
                        type: object
                        additionalProperties:
                          type: array
                          items:
                            type: object
                            properties:
                              time:
                                type: string
                                description: Slot start time in ISO-8601 format.
                              start:
                                type: string
                                description: >-
                                  Slot start time in ISO-8601 format (range
                                  mode).
                              end:
                                type: string
                                description: Slot end time in ISO-8601 format (range mode).
                              attendees:
                                type: integer
                                description: >-
                                  Number of attendees currently assigned to the
                                  slot.
                              bookingUid:
                                type: string
                                description: Booking UID occupying this slot when present.
                              away:
                                type: boolean
                                description: >-
                                  Indicates the slot is blocked because of
                                  out-of-office settings.
                              fromUser:
                                anyOf:
                                  - type: object
                                    properties:
                                      id:
                                        type: integer
                                      displayName:
                                        type:
                                          - string
                                          - 'null'
                                    required:
                                      - id
                                      - displayName
                                    additionalProperties: false
                                  - type: 'null'
                                description: >-
                                  User currently marked out-of-office for this
                                  slot date.
                              toUser:
                                anyOf:
                                  - type: object
                                    properties:
                                      id:
                                        type: integer
                                      username:
                                        type:
                                          - string
                                          - 'null'
                                      displayName:
                                        type:
                                          - string
                                          - 'null'
                                    required:
                                      - id
                                      - username
                                      - displayName
                                    additionalProperties: false
                                  - type: 'null'
                                description: >-
                                  Delegated teammate covering availability for
                                  this slot date.
                              reason:
                                type:
                                  - 'null'
                                  - string
                                description: Out-of-office reason when available.
                              emoji:
                                type:
                                  - 'null'
                                  - string
                                description: Out-of-office emoji indicator when available.
                            additionalProperties: false
                        description: Available slots keyed by date (`YYYY-MM-DD`)
                    required:
                      - slots
                    additionalProperties: false
                  message:
                    type: string
                  meta:
                    type: object
                    properties:
                      pagination:
                        type: object
                        properties:
                          page:
                            type: number
                          limit:
                            type: number
                          total:
                            type: number
                          totalPages:
                            type: number
                        required:
                          - page
                          - limit
                          - total
                          - totalPages
                        additionalProperties: false
                    additionalProperties: {}
                required:
                  - success
                additionalProperties: false
                description: GetSlotsResponse
        '400':
          description: Invalid slot query parameters
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  message:
                    type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details: {}
                    required:
                      - code
                      - message
                    additionalProperties: false
                required:
                  - success
                  - message
                  - error
                additionalProperties: false
                description: Invalid slot query parameters
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  message:
                    type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details: {}
                    required:
                      - code
                      - message
                    additionalProperties: false
                required:
                  - success
                  - message
                  - error
                additionalProperties: false
                description: Unauthorized
        '422':
          description: Validation failed
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  message:
                    type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details: {}
                    required:
                      - code
                      - message
                    additionalProperties: false
                required:
                  - success
                  - message
                  - error
                additionalProperties: false
                description: Validation failed
        '500':
          description: Failed to retrieve slots
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  message:
                    type: string
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details: {}
                    required:
                      - code
                      - message
                    additionalProperties: false
                required:
                  - success
                  - message
                  - error
                additionalProperties: false
                description: Failed to retrieve slots
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT | API Key
      description: |-

        Use the Authorization header with Bearer scheme.

        Examples:
        - API Key: Authorization: Bearer calid_xxxxx
            

````

## Related topics

- [Only Show the first slot of each day as available](/docs/event-types/limits/first-slot-only.md)
- [Get a reserved slot](/docs/api-reference/slots/get-a-reserved-slot.md)
- [Limit Future Booking to Restrict the Future Booking](/docs/event-types/limits/future-booking.md)
- [Custom or Fixed Time-Slot Intervals](/docs/event-types/limits/time-slot-intervals.md)
- [Round-Robin Scheduling](/docs/teams/round-robin.md)
