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

# Get available appointment slots

> Returns available appointment time slots for a scheduling page or calendar. Requires `calendarId` (the scheduling page slug for HubSpot, or calendar ID for LeadConnector). Provider-specific parameters such as `territoryId`, `resourceId`, `accountId`, and `policyId` can be passed as additional query params and are forwarded verbatim to the provider (currently used by Salesforce).



## OpenAPI

````yaml /api-reference/openapi.json get /crm/appointment/slots
openapi: 3.0.0
info:
  title: RouteMCP API
  description: >-
    Unified API for integrations. Connect to multiple providers through a single
    API.
  version: '1.0'
  contact: {}
servers:
  - url: https://api.routemcp.io/api/v1
    description: Production
security:
  - bearerAuth: []
tags: []
paths:
  /crm/appointment/slots:
    get:
      tags:
        - CRM Resources
      summary: Get available appointment slots
      description: >-
        Returns available appointment time slots for a scheduling page or
        calendar. Requires `calendarId` (the scheduling page slug for HubSpot,
        or calendar ID for LeadConnector). Provider-specific parameters such as
        `territoryId`, `resourceId`, `accountId`, and `policyId` can be passed
        as additional query params and are forwarded verbatim to the provider
        (currently used by Salesforce).
      operationId: CrmResourceController_getAppointmentSlots
      parameters:
        - $ref: '#/components/parameters/XEndUserIdHeader'
        - $ref: '#/components/parameters/ProviderQueryRequired'
        - name: calendarId
          required: true
          in: query
          description: >-
            Identifier of the scheduling page or calendar to query. The exact
            value depends on the provider:

            - **HubSpot** — meeting scheduler slug (e.g. `parth-v1`).

            - **LeadConnector / GoHighLevel** — calendar id.

            - **Salesforce** — service appointment work type id (combine with
            `territoryId` / `resourceId` as needed).
          schema:
            example: parth-v1
            type: string
        - name: startDate
          required: true
          in: query
          description: >-
            Inclusive start of the availability window (ISO 8601). Slots
            starting before this timestamp are excluded.
          schema:
            example: '2026-04-15T00:00:00Z'
            type: string
            format: date-time
        - name: endDate
          required: true
          in: query
          description: >-
            Exclusive end of the availability window (ISO 8601). Slots starting
            at or after this timestamp are excluded.
          schema:
            example: '2026-04-20T00:00:00Z'
            type: string
            format: date-time
        - name: timezone
          required: false
          in: query
          description: >-
            IANA timezone (e.g. `America/New_York`) the provider should use when
            calculating availability windows and rendering slot start/end times.
            Defaults to the provider's configured timezone when omitted.
          schema:
            example: America/New_York
            type: string
      responses:
        '200':
          description: Available appointment slots
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAppointmentSlotsResponse'
              examples:
                default:
                  summary: Available slots
                  value:
                    success: true
                    statusCode: 200
                    message: OK
                    data:
                      - start_time: '2026-04-15T10:00:00.000Z'
                        end_time: '2026-04-15T10:30:00.000Z'
                        duration: 30
                        available: true
                      - start_time: '2026-04-15T10:30:00.000Z'
                        end_time: '2026-04-15T11:00:00.000Z'
                        duration: 30
                        available: true
        '405':
          description: Provider does not support appointment slots
      security:
        - bearerAuth: []
components:
  parameters:
    XEndUserIdHeader:
      name: X-End-User-Id
      required: true
      in: header
      description: >-
        Identifier of the end user whose connected provider should be queried.
        This is the same `endUserId` you supplied when creating the connect
        token. Required on every CRM and accounting call.
      schema:
        example: user-001
        type: string
    ProviderQueryRequired:
      name: provider
      required: true
      in: query
      description: >-
        Provider slug identifying which connected provider to target (e.g.
        `hubspot`, `pipedrive`, `zoho-crm`, `quickbooks-online`, `xero`,
        `zoho-books`). Required — single-record operations always target a
        specific provider.
      schema:
        example: hubspot
        type: string
  schemas:
    ListAppointmentSlotsResponse:
      type: object
      title: ListAppointmentSlotsResponse
      description: >-
        Standard envelope returned by `GET /crm/appointment/slots`. `data` is a
        chronologically ordered list of slot windows within the requested
        `startDate`/`endDate` range.
      properties:
        success:
          type: boolean
          example: true
          description: Always `true` for successful (2xx) responses.
        statusCode:
          type: integer
          example: 200
          description: HTTP status code mirrored inside the envelope.
        message:
          type: string
          example: OK
        data:
          type: array
          description: Ordered list of available slots in the requested window.
          items:
            $ref: '#/components/schemas/AppointmentSlot'
      required:
        - success
        - statusCode
        - message
        - data
    AppointmentSlot:
      type: object
      title: AppointmentSlot
      description: A single bookable time window returned by `GET /crm/appointment/slots`.
      properties:
        start_time:
          type: string
          format: date-time
          example: '2026-04-15T10:00:00.000Z'
          description: >-
            ISO-8601 timestamp when the slot starts. Rendered in the `timezone`
            query param (or the provider's configured timezone if not supplied).
        end_time:
          type: string
          format: date-time
          example: '2026-04-15T10:30:00.000Z'
          description: ISO-8601 timestamp when the slot ends.
        duration:
          type: number
          example: 30
          description: Duration of the slot in minutes.
        available:
          type: boolean
          example: true
          description: >-
            `true` when the slot is currently free to book. Slots already taken
            or blocked are typically omitted, but some providers return them
            with `available: false`.
      required:
        - start_time
        - end_time
  securitySchemes:
    bearerAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Enter your API key with the Bearer prefix — e.g. Bearer sk_live_xxx
        (production) or Bearer sk_test_xxx (sandbox)

````