---
title: "Start an appointment (move to in-progress)"
method: POST
path: "/Appointments/{id}/start"
tags: ["Appointments"]
---

# Start an appointment (move to in-progress)

`POST /Appointments/{id}/start`

## Path parameters

- `id` string, required

## Response `200`

OK

- AppointmentResponseDto — Full appointment response with all related data
  - `id` string
  - `scheduleItemId` string
  - `scheduleItem` ScheduleItemDto — Schedule item DTO (embedded in appointments)
    - `id` string
    - `title` string
    - `startTime` string, date-time
    - `endTime` string, date-time
    - `description` string, nullable
    - `type` string
    - `locationId` string, nullable
    - `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
  - `clientId` string
  - `client` ClientSummaryDto
    - `id` string
    - `firstName` string
    - `lastName` string
    - `email` string, nullable
    - `phoneNumber` string, nullable
  - `patientId` string, nullable — Set on patient-scoped appointments. Null on group visits — see string? AppointmentResponseDto.PatientGroupId.
  - `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 — Set on group-visit appointment types (litter / herd). Mutually exclusive with string? AppointmentResponseDto.PatientId.
  - `patientGroup` AppointmentPatientGroupSummaryDto — Lightweight group summary for embedding in appointment responses.
    - `id` string
    - `name` string
    - `groupType` string — "Litter" or "Herd".
    - `speciesName` string, nullable
    - `headCount` union
      - integer
      - string, int32
    - `memberCount` union
      - integer
      - string, int32
  - `reasonForVisit` string
  - `notes` string, nullable
  - `status` string
  - `customAttributes` string, nullable
  - `recordingId` string, nullable
  - `createdAt` string, date-time
  - `updatedAt` string, date-time
  - `isTravelAppointment` boolean
  - `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
  - `appointmentTypeId` string, nullable
  - `requiresSurgeryRoom` boolean — Whether this appointment type requires a surgery room.
  - `isEmergencySurgeryConversion` boolean — Whether this appointment was converted from a regular exam to emergency surgery.
  - `appointmentTypeDefaultFlowId` string, nullable — Chronicle workflow id sourced from this appointment's <see cref="!:AppointmentType" />. Null falls back to `appointment-default` at the chronicle. Denormalized at read time so the chronicle doesn't need a second appointment-type lookup.
  - `appointmentTypeExamTemplateId` string, nullable — Exam template id sourced from this appointment's <see cref="!:AppointmentType" /> (PAW-741). Resolution at the chronicle exam step: this value, else the provider's personal default, else the standard 7-system view. Denormalized at read time so the chronicle doesn't need a second appointment-type lookup.
  - `appointmentTypeAutoGenerateSoap` boolean — Auto-start SOAP generation when the treatment plan is converted to an invoice (PAW-675). Denormalized from the appointment type; true when the appointment has no type (the platform default is on).
  - `appointmentTypeAutoGenerateDischarge` boolean — Auto-start discharge generation when the SOAP note is approved (PAW-675). Denormalized from the appointment type; true when the appointment has no type (the platform default is on).

---

[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/versions/a905bde4e796/schema)
