---
title: "Create a single appointment"
method: POST
path: "/appointments"
tags: ["appointment"]
---

# Create a single appointment

`POST /appointments`

Create a single appointment

## Request body

- object
  - `start` union, required — Appointment start date time
    - string
    - string
  - `end` union, required — Appointment end date time
    - string
    - string
  - `serviceId` integer, required — The service id of this appointment
  - `locationId` integer, required — The location id of this appointment
  - `practitionerId` integer, required — The practitioner id of this appointment
  - `caseId` integer — The case id of this appointment
  - `patientId` integer, required — The patient id of this appointment
  - `note` string — The appointment note
  - `createdAt` union — Object creation date time
    - string
    - string
  - `updatedAt` union — Object update date time
    - string
    - string
  - `deletedAt` union — Object archived date time
    - string
    - string
    - unknown

## Response `200`

Successfully created appointment

- object
  - `id` integer, required — Appointment id
  - `start` union, required — Appointment start date time
    - string
    - string
  - `end` union, required — Appointment end date time
    - string
    - string
  - `isUnavailableBlock` boolean, nullable — **@deprecated** - please refer to the new [busy-time](/api-reference/endpoints/busy-time) endpoint. Whether this time slot is unavailable, eg. busy time or meeting
  - `busyTimePractitionerIds` integer[] — **@deprecated** - please refer to the new [busy-time](/api-reference/endpoints/busy-time) endpoint. The practitioner ids of this multiple practitioners busy time
  - `serviceId` integer, nullable, required — The service id of this appointment
  - `locationId` integer, required — The location id of this appointment
  - `practitionerId` integer, nullable, required — The practitioner id of this appointment
  - `maxPatients` integer, required — The max patient number of this appointment. A number greater than 1 indicates a group appointment.
  - `appointmentPatients` object[], required — The status of each patient of this appointment
    - `appointmentId` integer, required — Appointment id
    - `patientId` integer, required — Patient id
    - `caseId` integer, nullable, required — The case id of this appointment
    - `status` 'Arrived' | 'Did not arrive' | 'Cancelled' | 'Completed', nullable, required — Patient status of this appointment
    - `note` string, nullable, required — Note for the appointment patient
    - `doNotInvoice` boolean, nullable — Whether this appointment patient will not be invoiced
    - `invoiceId` integer, nullable, required — Invoice id of this appointment patient
    - `cancellationReason` string, nullable, required — The cancellation reason if the appointment is cancelled
    - `cancellationRate` number, nullable, required — The billable rate in percentage if the appointment is cancelled
    - `cancellationNote` string, nullable, required — The cancellation note if the appointment is cancelled
    - `statusUpdatedAt` union, required — The status update time
      - string
      - string
      - unknown
  - `repeatId` string, nullable, required — An recurring appointment will have this repeat id
  - `recurringRule` string, nullable, required — The rule for recurring appointment
  - `unit` 'Hour' | 'Each', nullable, required — The appointment unit
  - `pricing` number, nullable, required — The appointment unit price, in dollar
  - `total` number, nullable, required — The appointment total price without tax, in dollar
  - `taxType` union, required — Tax type, check Splose support for more info
    - 'STANDARD' | 'ZERO' | 'EXEMPT' | 'REDUCED'
    - string
    - unknown
  - `supportItemIds` integer[], required — Array of support item ids of this appointment
  - `note` string, nullable, required — The appointment note
  - `archived` boolean, nullable — Whether the appointment has been archived
  - `createdAt` union — Object creation date time
    - string
    - string
  - `updatedAt` union — Object update date time
    - string
    - string
  - `deletedAt` union, required — Object archived date time
    - string
    - string
    - unknown

---

[API](https://skmtc.net/splose/apis/splose-public-api.md) · [All operations](https://skmtc.net/splose/apis/splose-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/splose/splose-public-api/versions/648d60075f00/schema)
