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

# List patient appointments

> Returns previous and upcoming appointments for the selected patients. Provide at least one patient ID or booking patient ID.



## OpenAPI

````yaml /openapi/peerlogic-api.json get /api/care/appointments/
openapi: 3.1.0
info:
  title: Peerlogic API
  version: 1.0.0
  description: >-
    Customer-facing API reference for accessing Peerlogic calls, insights,
    conversations, tasks, opportunities, subscriptions, and events.
servers:
  - url: https://api.prod.peerlogic.com
    description: Production
security: []
tags:
  - name: Authentication
    description: Obtain an access token for authenticated API requests.
  - name: Call insights
    description: Call records and aggregate performance insights.
  - name: Transcripts
    description: Transcripts, summaries, sentiment, pauses, and call-purpose details.
  - name: Aimee
    description: Aimee activity, configuration, and performance insights.
  - name: Conversations
    description: Conversation records, messages, and conversation actions.
  - name: Tasks
    description: Customer tasks and task workflow actions.
  - name: Opportunities
    description: Opportunities and follow-up reporting.
  - name: Subscriptions and events
    description: >-
      Create and manage event subscriptions, then inspect event records and
      analytics. For the complete webhook delivery flow, see the Webhooks and
      subscriptions guide.
  - name: Organizations and practices
    description: >-
      Discover the organizations and practices available to the authenticated
      account.
  - name: Contacts and patients
    description: Find contacts and patients for caller recognition and related workflows.
  - name: Appointments
    description: Retrieve appointment history and upcoming appointments for a patient.
  - name: Messaging
    description: Send practice messages, including missed-call recovery outreach.
  - name: Call recordings
    description: Retrieve recording metadata and secure audio URLs for calls.
paths:
  /api/care/appointments/:
    get:
      tags:
        - Appointments
      summary: List patient appointments
      description: >-
        Returns previous and upcoming appointments for the selected patients.
        Provide at least one patient ID or booking patient ID.
      operationId: care_appointments_list
      parameters:
        - name: practice_id
          in: query
          description: Practice ID.
          required: true
          schema:
            type: string
        - name: patient_ids
          in: query
          description: One or more patient IDs.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: booked_by_patient_ids
          in: query
          description: One or more IDs for patients or clients who booked the appointment.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: appointment_start_at_after
          in: query
          description: Return appointments starting at or after this timestamp.
          required: false
          schema:
            type: string
            format: date-time
        - name: appointment_start_at_before
          in: query
          description: Return appointments starting at or before this timestamp.
          required: false
          schema:
            type: string
            format: date-time
        - name: status
          in: query
          description: Limit results to one or more appointment statuses.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: fetch_from_source
          in: query
          description: Refresh appointments from the connected practice-management system.
          required: false
          schema:
            type: boolean
            default: true
        - name: sync_latest_only
          in: query
          description: When refreshing, limit synchronization to the latest appointments.
          required: false
          schema:
            type: boolean
            default: false
        - name: page
          in: query
          description: Page number.
          required: false
          schema:
            type: integer
            minimum: 1
        - name: page_size
          in: query
          description: Number of records to return per page.
          required: false
          schema:
            type: integer
            minimum: 1
      responses:
        '200':
          description: Paginated appointments.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedAppointments'
        '400':
          description: The request parameters or body are invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
              example:
                practice_id:
                  - This field is required.
        '401':
          description: Authentication is required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationError'
              example:
                detail: '''Authorization'' header is required'
        '403':
          description: >-
            The authenticated user does not have access to the requested
            practice or resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PermissionError'
              example:
                message: No permissions assigned to permit access to this endpoint.
        '422':
          description: >-
            The connected practice-management system could not fulfill the
            request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpstreamIntegrationError'
              example:
                error: >-
                  The connected practice-management system could not fulfill the
                  request.
      security:
        - bearerAuth: []
components:
  schemas:
    PaginatedAppointments:
      type: object
      required:
        - count
        - results
      properties:
        count:
          type: integer
          description: Total number of matching records.
        next:
          type:
            - string
            - 'null'
          format: uri
          description: URL for the next page, when available.
        previous:
          type:
            - string
            - 'null'
          format: uri
          description: URL for the previous page, when available.
        results:
          type: array
          items:
            $ref: '#/components/schemas/Appointment'
    ValidationError:
      title: Validation error
      type: object
      additionalProperties: true
      description: Validation details keyed by the invalid field or grouped under `errors`.
    AuthenticationError:
      title: Authentication error
      type: object
      additionalProperties: true
      required:
        - detail
      properties:
        detail:
          type: string
          description: Why authentication failed.
    PermissionError:
      title: Permission error
      type: object
      additionalProperties: false
      required:
        - message
      properties:
        message:
          type: string
          description: Why access was denied.
    UpstreamIntegrationError:
      title: Upstream integration error
      type: object
      additionalProperties: false
      required:
        - error
      properties:
        error:
          type: string
          description: Why the connected system could not complete the request.
        code:
          type: string
          description: Stable machine-readable error code, when one is available.
    Appointment:
      type: object
      properties:
        id:
          title: ID
          type: integer
          readOnly: true
        appointment_start_at:
          title: Appointment start at
          type: string
          format: date-time
          readOnly: true
        appointment_end_at:
          title: Appointment end at
          type: string
          format: date-time
          readOnly: true
        approximate_total_amount:
          title: Approximate total amount
          type: string
          format: decimal
          readOnly: true
        approximate_total_currency:
          title: Approximate total currency
          type: string
          readOnly: true
          minLength: 1
        confirmed_at:
          title: Confirmed at
          type:
            - string
            - 'null'
          format: date-time
          readOnly: true
        did_patient_miss:
          title: Did patient miss
          type:
            - boolean
            - 'null'
          readOnly: true
        is_active:
          title: Is active
          type: boolean
          readOnly: true
        is_new_patient:
          title: Is new patient
          type:
            - boolean
            - 'null'
          readOnly: true
        note:
          title: Note
          type:
            - string
            - 'null'
          readOnly: true
          minLength: 1
        patient_id:
          title: Patient id
          type: string
          readOnly: true
        booked_by_patient_id:
          title: Booked by patient id
          type: string
          readOnly: true
        pms_created_at:
          title: Pms created at
          type:
            - string
            - 'null'
          format: date-time
          readOnly: true
        practice:
          title: Practice
          type: string
          readOnly: true
        procedures:
          title: Procedures
          type:
            - string
            - 'null'
          readOnly: true
        status:
          title: Status
          type: string
          enum:
            - SCHEDULED
            - COMPLETED
            - CANCELLED
            - DELETED
            - CONFIRMED
          readOnly: true
        appointment_type:
          type: object
          properties:
            id:
              title: Id
              type: string
              readOnly: true
              minLength: 1
            name:
              title: Name
              type: string
              readOnly: true
              minLength: 1
            duration_in_minutes:
              title: Duration in minutes
              type: integer
              readOnly: true
            practice:
              title: Practice
              type: string
              readOnly: true
            descriptors:
              type: array
              items:
                required:
                  - name
                  - code
                type: object
                properties:
                  id:
                    title: Id
                    type: string
                    readOnly: true
                    minLength: 1
                  name:
                    title: Name
                    type: string
                    maxLength: 255
                    minLength: 1
                  code:
                    title: Code
                    type: string
                    maxLength: 128
                    minLength: 1
                  active:
                    title: Active
                    type: boolean
              readOnly: true
            peerlogic_appointment_types:
              title: Peerlogic appointment types
              type: string
              readOnly: true
            mappings:
              title: Mappings
              type: string
              readOnly: true
            is_bookable_online:
              title: Is bookable online
              type: boolean
              readOnly: true
            is_disabled_in_peerlogic:
              title: Is disabled in peerlogic
              type: boolean
              readOnly: true
            effective_is_bookable_online:
              title: Effective is bookable online
              type: string
              readOnly: true
            has_availability_schedule:
              title: Has availability schedule
              type:
                - boolean
                - 'null'
              readOnly: true
          readOnly: true
        booked_peerlogic_appointment_type:
          type: object
          properties:
            id:
              title: Id
              type: string
              readOnly: true
              minLength: 1
            name:
              title: Name
              type: string
              enum:
                - Consultation
                - Emergency
                - Crown
                - Crown Consultation
                - Existing Patient Cleaning and Exam
                - Existing Patient Cleaning
                - Existing Patient Exam
                - Existing Pediatric Patient Cleaning and Exam
                - Existing Pediatric Patient Cleaning
                - Existing Pediatric Patient Exam
                - Extraction
                - Extraction Consultation
                - Filling
                - Filling Consultation
                - Fluoride Treatment
                - Implant
                - Implant Consultation
                - Invisalign Consultation
                - New Patient Cleaning and Exam
                - New Patient Cleaning
                - New Patient Exam
                - New Pediatric Patient Cleaning and Exam
                - New Pediatric Patient Cleaning
                - New Pediatric Patient Exam
                - Orthodontic Consultation
                - Periodontal Consultation
                - Periodontal Maintenance
                - Prosthodontist Consultation
                - Root Canal Consultation
                - Scaling and Root Planing
                - TMJ/TMD Consultation
                - Veneer
                - Veneer Consultation
                - Whitening
                - Denture
                - Denture Consultation
                - Bridge
                - Bridge Consultation
                - Cosmetic Consultation
                - Grooming
                - Vaccination
                - Boarding
                - Dental
                - Euthanasia
                - Radiology
                - Ultrasound
                - Wellness Exam - New Patient
                - Wellness Exam - Existing Patient
                - Pediatric Wellness
                - Technician Appointment
                - Sick Visit
                - Progress Exam
                - Dermatology/Allergy
                - Behavior Consultation
                - Spay
                - Neuter
                - Soft Tissue Surgery
                - Orthopedic Surgery
                - Diagnostic Imaging
                - Diagnostic Lab
                - Urgent Care
                - Telemedicine
                - Avian/Exotic Exam
                - Equine Field Service
                - Senior Wellness
                - Senior Wellness Exam
                - Geriatric Exam
              readOnly: true
            display_name:
              title: Display name
              type:
                - string
                - 'null'
              readOnly: true
              minLength: 1
          readOnly: true
        patient:
          type: object
          properties:
            address_line_1:
              title: Address line 1
              type:
                - string
                - 'null'
              readOnly: true
              minLength: 1
            address_line_2:
              title: Address line 2
              type:
                - string
                - 'null'
              readOnly: true
              minLength: 1
            date_of_birth:
              title: Date of birth
              type:
                - string
                - 'null'
              format: date
              readOnly: true
            email:
              title: Email
              type:
                - string
                - 'null'
              format: email
              readOnly: true
              minLength: 1
            id:
              title: Id
              type: string
              readOnly: true
              minLength: 1
            is_active:
              title: Is active
              type: boolean
              readOnly: true
            name:
              title: Name
              type:
                - string
                - 'null'
              readOnly: true
              minLength: 1
            name_first:
              title: Name first
              type:
                - string
                - 'null'
              readOnly: true
              minLength: 1
            name_last:
              title: Name last
              type:
                - string
                - 'null'
              readOnly: true
              minLength: 1
            name_middle:
              title: Name middle
              type:
                - string
                - 'null'
              readOnly: true
              minLength: 1
            phone_fax:
              title: Phone fax
              type:
                - string
                - 'null'
              readOnly: true
              minLength: 1
            phone_home:
              title: Phone home
              type:
                - string
                - 'null'
              readOnly: true
              minLength: 1
            phone_mobile:
              title: Phone mobile
              type:
                - string
                - 'null'
              readOnly: true
              minLength: 1
            phone_number:
              title: Phone number
              type:
                - string
                - 'null'
              readOnly: true
              minLength: 1
            phone_work:
              title: Phone work
              type:
                - string
                - 'null'
              readOnly: true
              minLength: 1
            placeholder:
              title: Placeholder
              type:
                - string
                - 'null'
              readOnly: true
              minLength: 1
            pms_created_at:
              title: Pms created at
              type:
                - string
                - 'null'
              format: date-time
              readOnly: true
            zip_code:
              title: Zip code
              type:
                - string
                - 'null'
              readOnly: true
              minLength: 1
          readOnly: true
        provider:
          type: object
          properties:
            id:
              title: Id
              type: string
              readOnly: true
              minLength: 1
            name:
              title: Name
              type: string
              readOnly: true
              minLength: 1
            email:
              title: Email
              type:
                - string
                - 'null'
              format: email
              readOnly: true
              minLength: 1
            phone_number:
              title: Phone number
              type:
                - string
                - 'null'
              readOnly: true
              minLength: 1
            is_active:
              title: Is active
              type: boolean
              readOnly: true
          readOnly: true
        operatory:
          required:
            - name
          type: object
          properties:
            id:
              title: Id
              type: string
              readOnly: true
              minLength: 1
            name:
              title: Name
              type: string
              maxLength: 255
              minLength: 1
            display_name:
              title: Display name
              type:
                - string
                - 'null'
              maxLength: 255
          readOnly: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer access token issued by Peerlogic.

````

## Related topics

- [List patient call history](/peerlogic-api-reference/contacts-and-patients/list-patient-call-history.md)
- [List tasks](/peerlogic-api-reference/tasks/list-tasks.md)
- [List conversation messages](/peerlogic-api-reference/conversations/list-conversation-messages.md)
- [List Aimee conversations](/peerlogic-api-reference/aimee/list-aimee-conversations.md)
- [List conversations](/peerlogic-api-reference/conversations/list-conversations.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.