---
title: "Get a paginated and filtered list of schedule items"
method: GET
path: "/ScheduleItems"
tags: ["ScheduleItems"]
---

# Get a paginated and filtered list of schedule items

`GET /ScheduleItems`

## Query parameters

- `page` union
  - integer
  - string, int32
- `pageSize` union
  - integer
  - string, int32
- `startDate` string, date-time
- `endDate` string, date-time
- `type` string
- `locationId` string
- `assignedToId` string
- `excludeAppointments` boolean

## Response `200`

Paginated list of schedule items

- ScheduleItemListResponse — Paginated schedule item list response
  - `data` ScheduleItemResponseDto[]
    - `id` string
    - `title` string
    - `startTime` string, date-time
    - `endTime` string, date-time
    - `description` string, nullable
    - `type` string
    - `locationId` string
    - `location` LocationSummaryDto
      - `id` string
      - `name` string
      - `isActive` boolean
      - `isVehicle` boolean
      - `isPersonalVehicle` boolean
    - `assignedToId` string, nullable
    - `assignedTo` UserSummaryDto
      - `id` string
      - `email` string
      - `firstName` string, nullable
      - `lastName` string, nullable
      - `displayName` string, nullable
      - `type` string
      - `roleId` string, nullable
      - `roleName` string, nullable
    - `customAttributes` string, nullable
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
    - `createdById` string, nullable
    - `createdBy` UserSummaryDto
      - `id` string
      - `email` string
      - `firstName` string, nullable
      - `lastName` string, nullable
      - `displayName` string, nullable
      - `type` string
      - `roleId` string, nullable
      - `roleName` string, nullable
    - `createdBySource` string, nullable
    - `hasAppointment` boolean
    - `appointment` AppointmentSummaryForScheduleDto — Lightweight appointment summary for embedding in schedule item responses. Polymorphic on subject: per-patient appointments populate Patient/PatientId; group-visit appointments (litter/herd) populate PatientGroup/PatientGroupId. Exactly one of (PatientId, PatientGroupId) is set, per the appointments_subject_chk DB constraint.
      - `id` string
      - `patientId` string, nullable
      - `patient` PatientSummaryDto — Lightweight patient summary for lists and references
        - `id` string — Unique patient identifier
        - `name` string — The patient's name
        - `species` string — The species name. References a species from GET /species endpoint.
        - `speciesId` string, nullable — The species ID for programmatic lookups.
        - `breed` string — The breed name
        - `sex` string — The patient's sex
        - `dateOfBirth` string, date-time, nullable — Date of birth, if known
        - `isEstimatedAge` boolean
        - `fixed` boolean — Whether the patient is spayed/neutered
        - `treatmentAcceptanceRate` union
          - number, double
          - string, double
      - `patientGroupId` string, nullable
      - `patientGroup` PatientGroupSummaryForScheduleDto — Lightweight group summary for embedding in schedule item responses when the appointment is group-bound (litter / herd visit).
        - `id` string
        - `name` string
        - `groupType` string — "Litter" or "Herd".
        - `speciesName` string, nullable
      - `clientId` string
      - `client` ClientSummaryDto
        - `id` string
        - `firstName` string
        - `lastName` string
        - `email` string, nullable
        - `phoneNumber` string, nullable
      - `status` string
      - `confirmationStatus` string, nullable — Client confirmation state ("Unconfirmed" | "Confirmed" | "Declined" | "RescheduleRequested"). Null when no confirmation was ever requested — the schedule renders nothing in that case.
      - `reasonForVisit` string
      - `notes` string, nullable
      - `appointmentTypeId` string, nullable
      - `appointmentType` AppointmentTypeSummaryDto — Lightweight appointment type summary for embedding in schedule item responses
        - `id` string
        - `name` string
        - `color` string, nullable
      - `isTravelAppointment` boolean — Travel/mobile visit details. These are the only copy of the destination a consumer of a schedule item ever sees: ITE-283 added a Mobile visit panel to the view modal, a travel section to Edit and a destination line to Reschedule, but every one of them gates on bool AppointmentSummaryForScheduleDto.IsTravelAppointment — which this summary never carried, so all three were unreachable in production even though the TypeScript type advertised the fields. Anything added here must also be mapped in ScheduleItemService.MapToResponseDto; the FE type is not a contract.
      - `travelDestinationAddress` string, nullable
      - `travelDestinationPlaceId` string, nullable
      - `travelStartingAddress` string, nullable
      - `travelStartingPlaceId` string, nullable
      - `travelDistanceMeters` union
        - integer
        - string, int32
      - `travelDurationMinutes` union
        - integer
        - string, int32
      - `travelIsRoundTrip` boolean, nullable
      - `travelFeeAmount` union
        - number, double
        - string, double
      - `travelAccessNotes` string, nullable
    - `isRecurring` boolean
    - `recurrenceRule` string, nullable
    - `recurrenceEndDate` string, date-time, nullable
    - `isException` boolean
    - `parentScheduleItemId` string, nullable
    - `isRecurrenceInstance` boolean
    - `originalStartTime` string, date-time, nullable
  - `totalCount` union
    - integer
    - string, int32
  - `page` union
    - integer
    - string, int32
  - `pageSize` union
    - integer
    - string, int32
  - `totalPages` union
    - integer
    - string, int32

---

[API](https://skmtc.net/clinicos/apis/pawthosx-business-api-v1.md) · [All operations](https://skmtc.net/clinicos/apis/pawthosx-business-api-v1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/clinicos/pawthosx-business-api-v1/revisions/d8d7501dde48/schema)
