REST API for managing scheduling entities such as appointments.

An appointment is a scheduled interaction between a staff member and a person at a given time.

Status: Alpha — Breaking changes expected.
Base URL: https://api.example.com/scheduling

Appointments

Manage appointments.

GET /appointments List appointments

Retrieve a paginated list of appointments.

Parameters
Name Type In Req Description
q string query Search query using field:value syntax. Multiple conditions separated by
limit integer query

Maximum number of items to return (1-100).

offset integer query

Number of items to skip before collecting results.

sort string query Comma-separated list of fields to sort the response by. Prefix a field
Responses
200 A paginated collection of appointments.
AppointmentList
total integer required Total number of items available.
limit integer required Maximum number of items requested.
offset integer required Number of items skipped before the current page.
hasNext boolean Whether more items are available beyond the current page.
items array[Appointment] required
startAt string (date-time) When the appointment begins.
endAt string (date-time) When the appointment ends.
appointmentType string Type of appointment (e.g., interview, recertification, orientation). Free-text, not enum — states define their own types.
status string Current status of the appointment. Will be driven by x-enum-source once a scheduling state machine is defined.
enumscheduled completed canceled no_show
personId string (uuid) Reference to the Person record (the subject of the appointment).
assignedToId string (uuid) Reference to the User record (staff member conducting the appointment).
notes string Free-text notes about the appointment.
id string (uuid) read-only Unique identifier (server-generated).
createdAt string (date-time) read-only Timestamp when the appointment was created.
updatedAt string (date-time) read-only Timestamp when the appointment was last updated.
400 The request is malformed or contains invalid parameters.
BadRequest
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
500 An unexpected error occurred on the server.
InternalError
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
POST /appointments Create an appointment

Create a new appointment record.

Request body required
AppointmentCreate
startAt string (date-time) When the appointment begins.
endAt string (date-time) When the appointment ends.
appointmentType string Type of appointment (e.g., interview, recertification, orientation). Free-text, not enum — states define their own types.
status string Current status of the appointment. Will be driven by x-enum-source once a scheduling state machine is defined.
enumscheduled completed canceled no_show
personId string (uuid) Reference to the Person record (the subject of the appointment).
assignedToId string (uuid) Reference to the User record (staff member conducting the appointment).
notes string Free-text notes about the appointment.
Responses
201 Appointment created successfully.
Appointment
startAt string (date-time) When the appointment begins.
endAt string (date-time) When the appointment ends.
appointmentType string Type of appointment (e.g., interview, recertification, orientation). Free-text, not enum — states define their own types.
status string Current status of the appointment. Will be driven by x-enum-source once a scheduling state machine is defined.
enumscheduled completed canceled no_show
personId string (uuid) Reference to the Person record (the subject of the appointment).
assignedToId string (uuid) Reference to the User record (staff member conducting the appointment).
notes string Free-text notes about the appointment.
id string (uuid) read-only Unique identifier (server-generated).
createdAt string (date-time) read-only Timestamp when the appointment was created.
updatedAt string (date-time) read-only Timestamp when the appointment was last updated.
400 The request is malformed or contains invalid parameters.
BadRequest
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
422 The request was well-formed but contained semantic errors.
UnprocessableEntity
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
500 An unexpected error occurred on the server.
InternalError
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
GET /appointments/{appointmentId} Get an appointment

Retrieve a single appointment by identifier.

Parameters
Name Type In Req Description
appointmentId string path

Unique identifier of the appointment.

Responses
200 Appointment retrieved successfully.
Appointment
startAt string (date-time) When the appointment begins.
endAt string (date-time) When the appointment ends.
appointmentType string Type of appointment (e.g., interview, recertification, orientation). Free-text, not enum — states define their own types.
status string Current status of the appointment. Will be driven by x-enum-source once a scheduling state machine is defined.
enumscheduled completed canceled no_show
personId string (uuid) Reference to the Person record (the subject of the appointment).
assignedToId string (uuid) Reference to the User record (staff member conducting the appointment).
notes string Free-text notes about the appointment.
id string (uuid) read-only Unique identifier (server-generated).
createdAt string (date-time) read-only Timestamp when the appointment was created.
updatedAt string (date-time) read-only Timestamp when the appointment was last updated.
404 The requested resource was not found.
NotFound
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
500 An unexpected error occurred on the server.
InternalError
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
PATCH /appointments/{appointmentId} Update an appointment

Apply partial updates to an existing appointment.

Parameters
Name Type In Req Description
appointmentId string path

Unique identifier of the appointment.

Request body required
AppointmentUpdate
startAt string (date-time) When the appointment begins.
endAt string (date-time) When the appointment ends.
appointmentType string Type of appointment (e.g., interview, recertification, orientation). Free-text, not enum — states define their own types.
status string Current status of the appointment. Will be driven by x-enum-source once a scheduling state machine is defined.
enumscheduled completed canceled no_show
personId string (uuid) Reference to the Person record (the subject of the appointment).
assignedToId string (uuid) Reference to the User record (staff member conducting the appointment).
notes string Free-text notes about the appointment.
Responses
200 Appointment updated successfully.
Appointment
startAt string (date-time) When the appointment begins.
endAt string (date-time) When the appointment ends.
appointmentType string Type of appointment (e.g., interview, recertification, orientation). Free-text, not enum — states define their own types.
status string Current status of the appointment. Will be driven by x-enum-source once a scheduling state machine is defined.
enumscheduled completed canceled no_show
personId string (uuid) Reference to the Person record (the subject of the appointment).
assignedToId string (uuid) Reference to the User record (staff member conducting the appointment).
notes string Free-text notes about the appointment.
id string (uuid) read-only Unique identifier (server-generated).
createdAt string (date-time) read-only Timestamp when the appointment was created.
updatedAt string (date-time) read-only Timestamp when the appointment was last updated.
400 The request is malformed or contains invalid parameters.
BadRequest
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
404 The requested resource was not found.
NotFound
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
422 The request was well-formed but contained semantic errors.
UnprocessableEntity
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
500 An unexpected error occurred on the server.
InternalError
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
DELETE /appointments/{appointmentId} Delete an appointment

Permanently remove an appointment record.

Parameters
Name Type In Req Description
appointmentId string path

Unique identifier of the appointment.

Responses
204 Appointment deleted successfully.
404 The requested resource was not found.
NotFound
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.
500 An unexpected error occurred on the server.
InternalError
code string required Machine-readable error code.
message string required Human-readable error description.
details array[object] Additional error details.