# Appointment

## List Appointments

 - [GET /appointment](https://docs.api.pracsuite.com/openapi/appointment/listappointments-get.md)

## Create Appointment

 - [POST /appointment](https://docs.api.pracsuite.com/openapi/appointment/createappointment-post.md): We recommend using Available Appointment to discover available times for a practitioner. After a time is found, use Reserve (optional) and Finalise Appointment to complete the booking process. 


Alternatively, you can use Create Appointment, which requires you to pass in start and end times for the appointment.   


The API will apply the default Appointment Type configuration for the following, unless specified in the request body: 

- Width 
- Resource 
- Item or Item Group 


For practitioner records with multiple active professions, their default profession will be used unless profession_id is specified in the body. 


Practitioners can have multiple appointment book columns as defined in Practitioner object. Supply the column number to control which column the appointment is booked in. The specified column_number must not exceed the number of columns enabled on the practitioner record. Requests that specify an invalid column number will be rejected.

## Reserve Appointment

 - [POST /reserve_appointment](https://docs.api.pracsuite.com/openapi/appointment/reserveappointment-post.md): After a time is identified using Available Appointment, it may be temporarily reserved for 15 minutes. 

This is intended for workflows where additional information must be collected before completing the booking, such as capturing patient details to create a new client record. 

Use Finalise Appointment to complete the booking.

## Get Appointment

 - [GET /appointment/{appointment_id}](https://docs.api.pracsuite.com/openapi/appointment/getappointment-get.md)

## Finalise Appointment

 - [POST /appointment/{appointment_id}](https://docs.api.pracsuite.com/openapi/appointment/finaliseappointment-post.md): Used to complete a booking after a time has been identified via Available Appointment or temporarily held using Reserve Appointment. 

Unless explicitly overridden in the request body, the API will apply the default Appointment Type configuration for: 

- Item or Item Group 

- Duration 

- Width 

- Profession 

- Resource

## Edit Appointment

 - [PATCH /appointment/{appointment_id}](https://docs.api.pracsuite.com/openapi/appointment/editappointment-patch.md)

## Remove Appointment

 - [POST /appointment/{appointment_id}/cancel](https://docs.api.pracsuite.com/openapi/appointment/removeappointment-post.md): The record_as_cancelled field controls whether the removal of an appointment is recorded as a cancellation on the patient's record. 

When set to true, the appointment is recorded as a cancellation and included in the patient's attendance history. 

When set to false, the appointment is removed without affecting the patient's attendance history. 

In both cases, the action is recorded in the system audit log.

## List Appointments by Appointment Type

 - [GET /appointment_type/{appointment_type_id}/appointment](https://docs.api.pracsuite.com/openapi/appointment/listappointmentsbyappointmenttype-get.md)

## List Appointments by Business

 - [GET /business/{business_id}/appointment](https://docs.api.pracsuite.com/openapi/appointment/listappointmentsbybusiness-get.md)

## List Appointments by Profession

 - [GET /profession/{profession_id}/appointment](https://docs.api.pracsuite.com/openapi/appointment/listappointmentsbyprofession-get.md)

## List Appointments by Patient

 - [GET /patient/{client_id}/appointment](https://docs.api.pracsuite.com/openapi/appointment/listappointmentsbypatient-get.md)

## List Appointments by Practitioner

 - [GET /practitioner/{practitioner_id}/appointment](https://docs.api.pracsuite.com/openapi/appointment/listappointmentsbypractitioner-get.md)

## List Appointments by Resource

 - [GET /resource/{resource_id}/appointment](https://docs.api.pracsuite.com/openapi/appointment/listappointmentsbyresource-get.md)

