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

# List all appointments

> Returns a list of all appointments across all clinics in the organization. The appointments are sorted by creation date, with the most recent appointments appearing first.

An **appointment** represents a scheduled visit for a clinic patient at a clinic, tracking its lifecycle from request through completion or cancellation.



## OpenAPI

````yaml get /ext/v2/appointments/
openapi: 3.1.0
info:
  description: ''
  title: NinjaAPI
  version: 2.0.0
servers:
  - url: https://connect.vetcove.com/
security: []
paths:
  /ext/v2/appointments/:
    get:
      tags:
        - Scheduler
      summary: List all appointments
      description: >-
        Returns a list of all appointments across all clinics in the
        organization. The appointments are sorted by creation date, with the
        most recent appointments appearing first.


        An **appointment** represents a scheduled visit for a clinic patient at
        a clinic, tracking its lifecycle from request through completion or
        cancellation.
      operationId: appointments_list
      parameters:
        - description: When provided, filters to objects with these IDs.
          in: query
          name: ids
          required: false
          schema:
            anyOf:
              - items:
                  type: integer
                type: array
              - type: 'null'
            description: When provided, filters to objects with these IDs.
            title: Ids
        - description: >-
            A cursor used for pagination. Fetches the page of results ending
            immediately before the object with the given ID. Cannot be used at
            the same time as `starting_after`.
          in: query
          name: ending_before
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            description: >-
              A cursor used for pagination. Fetches the page of results ending
              immediately before the object with the given ID. Cannot be used at
              the same time as `starting_after`.
            title: Ending Before
        - description: >-
            A cursor used for pagination. Fetches the page of results starting
            immediately after the given ID. Cannot be used at the same time as
            `ending_before`.
          in: query
          name: starting_after
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            description: >-
              A cursor used for pagination. Fetches the page of results starting
              immediately after the given ID. Cannot be used at the same time as
              `ending_before`.
            title: Starting After
        - description: The maximum number of items to return per page.
          in: query
          name: limit
          required: false
          schema:
            default: 10
            description: The maximum number of items to return per page.
            maximum: 100
            minimum: 1
            title: Limit
            type: integer
        - description: >-
            A cursor token used for pagination. This token contains encoded
            information about the last seen record in order to continue
            pagination. Cannot be used with `starting_after` or `ending_before`
            parameters.
          in: query
          name: cursor
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              A cursor token used for pagination. This token contains encoded
              information about the last seen record in order to continue
              pagination. Cannot be used with `starting_after` or
              `ending_before` parameters.
            title: Cursor
        - description: >-
            Filters to objects modified on or after this datetime (ISO8601 UTC,
            e.g. 2025-08-25T10:30:00Z). Cannot be used with `starting_after` or
            `ending_before` parameters.
          in: query
          name: modified__gte
          required: false
          schema:
            anyOf:
              - format: date-time
                type: string
              - type: 'null'
            description: >-
              Filters to objects modified on or after this datetime (ISO8601
              UTC, e.g. 2025-08-25T10:30:00Z). Cannot be used with
              `starting_after` or `ending_before` parameters.
            title: Modified  Gte
        - description: >-
            Filters to objects modified on or before this datetime (ISO8601 UTC,
            e.g. 2025-08-25T10:30:00Z). Cannot be used with `starting_after` or
            `ending_before` parameters.
          in: query
          name: modified__lte
          required: false
          schema:
            anyOf:
              - format: date-time
                type: string
              - type: 'null'
            description: >-
              Filters to objects modified on or before this datetime (ISO8601
              UTC, e.g. 2025-08-25T10:30:00Z). Cannot be used with
              `starting_after` or `ending_before` parameters.
            title: Modified  Lte
        - description: >-
            When 'FALSE' (default), filters to non-deleted records only. When
            'TRUE', filters to soft-deleted records only. When 'ALL', returns
            both deleted and non-deleted records.
          in: query
          name: is_deleted
          required: false
          schema:
            allOf:
              - enum:
                  - 'FALSE'
                  - 'TRUE'
                  - ALL
                title: DeletedFilterOption
                type: string
            default: 'FALSE'
            description: >-
              When 'FALSE' (default), filters to non-deleted records only. When
              'TRUE', filters to soft-deleted records only. When 'ALL', returns
              both deleted and non-deleted records.
        - description: >-
            When provided, filters to appointments for the clinic client with
            this ID
          in: query
          name: clinic_client_id
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            description: >-
              When provided, filters to appointments for the clinic client with
              this ID
            title: Clinic Client Id
        - description: >-
            When provided, filters to appointments for the clinic patient with
            this ID
          in: query
          name: clinic_patient_id
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            description: >-
              When provided, filters to appointments for the clinic patient with
              this ID
            title: Clinic Patient Id
        - description: When provided, filters to appointments for the clinic with this ID
          in: query
          name: clinic_id
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            description: When provided, filters to appointments for the clinic with this ID
            title: Clinic Id
        - description: When provided, filters to appointments with this status.
          in: query
          name: status
          required: false
          schema:
            anyOf:
              - $ref: '#/components/schemas/AppointmentStatus'
              - type: 'null'
            description: When provided, filters to appointments with this status.
        - description: >-
            When provided, filters to appointments assigned to the calendar
            resource with this ID.
          in: query
          name: resource_id
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            description: >-
              When provided, filters to appointments assigned to the calendar
              resource with this ID.
            title: Resource Id
        - description: >-
            When provided, filters to appointments ending on or before this
            datetime. If both end_datetime__lte and start_datetime__gte are
            provided, end_datetime__lte must be greater than
            start_datetime__gte.
          in: query
          name: end_datetime__lte
          required: false
          schema:
            anyOf:
              - format: date-time
                type: string
              - type: 'null'
            description: >-
              When provided, filters to appointments ending on or before this
              datetime. If both end_datetime__lte and start_datetime__gte are
              provided, end_datetime__lte must be greater than
              start_datetime__gte.
            title: End Datetime  Lte
        - description: >-
            When provided, filters to appointments starting on or after this
            datetime. If both end_datetime__lte and start_datetime__gte are
            provided, end_datetime__lte must be greater than
            start_datetime__gte.
          in: query
          name: start_datetime__gte
          required: false
          schema:
            anyOf:
              - format: date-time
                type: string
              - type: 'null'
            description: >-
              When provided, filters to appointments starting on or after this
              datetime. If both end_datetime__lte and start_datetime__gte are
              provided, end_datetime__lte must be greater than
              start_datetime__gte.
            title: Start Datetime  Gte
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppointmentList'
          description: OK
      security:
        - ExternalAPIAuth: []
components:
  schemas:
    AppointmentStatus:
      enum:
        - CREATING
        - CLIENT_CREATING
        - UNSCHEDULED
        - UNCONFIRMED
        - CONFIRMED
        - DROPPED_OFF
        - CHECKED_IN
        - IN_PROGRESS
        - READY_TO_GO
        - COMPLETED
        - NO_SHOW
        - CANCELED
        - IMPORTED
        - CLIENT_REQUESTED
      title: AppointmentStatus
      type: string
    AppointmentList:
      properties:
        data:
          description: A single page of data contained within this list.
          items:
            $ref: '#/components/schemas/ExternalAppointmentSchema'
          title: Data
          type: array
        has_more:
          default: false
          description: Whether there are more pages or data in this list.
          title: Has More
          type: boolean
        next_page:
          description: A URL linking to the next page of this list.
          title: Next Page
          type: string
        type:
          default: list
          description: Type of this object. Always `list`.
          title: Type
          type: string
      required:
        - data
        - next_page
      title: AppointmentList
      type: object
    ExternalAppointmentSchema:
      description: >-
        Appointments represent scheduled visits for patients at a clinic. Each
        appointment is uniquely associated with a patient and can include
        details about the visit, such as the reason for the appointment,
        duration, and any special instructions. If a client has scheduled two
        patients, this will be represented as two separate appointments in our
        system.


        Unlike select legacy PIMS systems that create additional appointments
        for pickup and dropoff events, our appointment object includes both
        pickup and dropoff times when applicable, streamlining the scheduling
        process. This means a surgery would be represented as a single
        appointment with both check-in and check-out times, rather than as
        multiple separate appointments.
      properties:
        alert_tags:
          description: Array of alert tags associated with this appointment.
          items:
            anyOf:
              - $ref: '#/components/schemas/AppointmentAlertTag'
              - const: ''
                type: string
          title: Alert Tags
          type: array
        calendar_id:
          description: The ID of the calendar this appointment belongs to.
          title: Calendar Id
          type: integer
        cancelation_reason:
          anyOf:
            - $ref: '#/components/schemas/AppointmentCancelationReason'
            - const: ''
              type: string
          description: The reason for cancelation or no-show, if applicable.
          title: Cancelation Reason
        cancelation_reason_other:
          anyOf:
            - type: string
            - type: 'null'
          description: Free-text explanation of the cancelation, if one was provided.
          title: Cancelation Reason Other
        clinic_client_id:
          anyOf:
            - type: integer
            - type: 'null'
          description: The ID of the clinic client responsible for the appointment.
          title: Clinic Client Id
        clinic_id:
          description: The ID of the clinic this appointment belongs to.
          title: Clinic Id
          type: integer
        clinic_notes:
          anyOf:
            - {}
            - type: 'null'
          description: JSON structured notes for clinic use.
          title: Clinic Notes
        clinic_patient_id:
          anyOf:
            - type: integer
            - type: 'null'
          description: The ID of the clinic patient this appointment is for.
          title: Clinic Patient Id
        created:
          description: The datetime this object was created.
          format: date-time
          title: Created
          type: string
        deleted:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: The datetime this record was soft deleted.
          title: Deleted
        dropoff_start_datetime:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: >-
            ISO 8601 formatted datetime for when the patient should be dropped
            off.
          title: Dropoff Start Datetime
        end_datetime:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: ISO 8601 formatted datetime for when the appointment ends.
          title: End Datetime
        followup_appointment_ids:
          default: []
          description: List of followup appointment IDs associated with this appointment.
          items:
            type: integer
          title: Followup Appointment Ids
          type: array
        id:
          description: The unique identifier for the appointment.
          title: Id
          type: integer
        is_deleted:
          description: Whether this record is soft deleted or not.
          title: Is Deleted
          type: boolean
        kind:
          anyOf:
            - type: string
            - type: 'null'
          description: The appointment kind (type of appointment).
          title: Kind
        kind_id:
          anyOf:
            - type: integer
            - type: 'null'
          description: The ID of the appointment kind (type of appointment).
          title: Kind Id
        medical_record_id:
          anyOf:
            - type: integer
            - type: 'null'
          description: >-
            The ID of the medical record associated with this appointment, if
            any.
          title: Medical Record Id
        modified:
          description: >-
            The datetime this object was last modified; changes to related
            entities will not update this field.
          format: date-time
          title: Modified
          type: string
        pickup_start_datetime:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: >-
            ISO 8601 formatted datetime for when the patient should be picked
            up.
          title: Pickup Start Datetime
        reason:
          anyOf:
            - type: string
            - type: 'null'
          description: The reason for this appointment.
          title: Reason
        resource_id:
          anyOf:
            - type: integer
            - type: 'null'
          description: >-
            The ID of the calendar resource (provider/room) assigned to handle
            this appointment.
          title: Resource Id
        resource_name:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            The name of the calendar resource (provider/room) assigned to handle
            this appointment.
          title: Resource Name
        room_id:
          anyOf:
            - type: integer
            - type: 'null'
          description: The ID of the room assigned to this appointment, if any.
          title: Room Id
        room_name:
          anyOf:
            - type: string
            - type: 'null'
          description: The name of the room assigned to this appointment, if any.
          title: Room Name
        start_datetime:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: ISO 8601 formatted datetime for when the appointment starts.
          title: Start Datetime
        status:
          $ref: '#/components/schemas/AppointmentStatus'
          description: The current status of the appointment.
      required:
        - created
        - modified
        - is_deleted
        - deleted
        - id
        - clinic_id
        - calendar_id
        - resource_id
        - room_id
        - clinic_patient_id
        - clinic_client_id
        - start_datetime
        - end_datetime
        - status
        - clinic_notes
        - reason
        - dropoff_start_datetime
        - pickup_start_datetime
        - alert_tags
        - cancelation_reason
        - cancelation_reason_other
      title: Appointment
      type: object
    AppointmentAlertTag:
      enum:
        - CONTAGIOUS
      title: AppointmentAlertTag
      type: string
    AppointmentCancelationReason:
      enum:
        - PATIENT_SEEN_ELSEWHERE
        - CONCERN_RESOLVED
        - PENDING_RESCHEDULE
        - NO_LONGER_NEEDED
        - WILL_RESCHEDULE
        - DOCTOR_UNAVAILABLE
        - CLINIC_SCHEDULE_CHANGE
        - CREATED_IN_ERROR
        - DUPLICATE
        - WRONG_PATIENT
        - WRONG_DATE_OR_TIME
        - UNKNOWN
        - OTHER
        - NO_SHOW
      title: AppointmentCancelationReason
      type: string
  securitySchemes:
    ExternalAPIAuth:
      scheme: bearer
      type: http

````