The appointment object
idstringUnique identifier (ObjectId).
PractitionerIdstringThe practitioner seeing the patient.
PatientIdstring | nullThe patient this appointment is for.
PatientNamestring | nullDenormalised patient name.
InjuryIdstring | nullThe injury (and its
ACC45 claim) being treated.BillableItemIdstringThe billable item (service) booked.
LocationIdstring | nullThe site the appointment is at (see locations).
null on appointments from before the clinic adopted locations: treat it as the default site.Typeenum | nullDeprecated. No longer written —
null on every new appointment; legacy rows may still carry ACC_INITIAL, ACC_FOLLOWUP, SELF_FUND_INITIAL, SELF_FUND_FOLLOWUP or OTHER. Use BillableItemId and InjuryId instead.StatusstringAppointment status.
UTCStartTimestringISO 8601 start time (UTC).
UTCEndTimestringISO 8601 end time (UTC).
Notesstring | nullFree-text booking note (not the clinical note).
createdAtstringISO 8601 creation timestamp.
updatedAtstringISO 8601 last-update timestamp.
GET
/api/v1/appointmentsList appointments
Returns appointments whose time falls within a date range. Requires appointments:read.
Query parameters
fromstringrequiredISO 8601 lower bound. With
Z or an offset it is that instant; without one it is clinic-local (Pacific/Auckland) time; a bare yyyy-MM-dd starts at the beginning of that clinic day.tostringrequiredISO 8601 upper bound, read the same way; a bare
yyyy-MM-dd runs to the end of that clinic day.locationIdsstring[]optionalOnly appointments at these sites (see locations). Repeat the parameter or comma-separate the ids. The default site also matches appointments with no location. Omitted: all sites.
locationIdstringoptionalOne site. Shorthand for a one-item
locationIds; if you send both, the API uses all the ids given.Request
curl "https://api.mananotes.co.nz/api/v1/appointments?from=2026-06-20&to=2026-06-20" \
-H "Authorization: Bearer eyJhbGci..."Response
{
"data": [
{
"id": "65f0d3b2c4e5f6a7b8c9d0e1",
"PatientId": "65f0c2a1b3d4e5f6a7b8c9d0",
"BillableItemId": "65f0b1...",
"LocationId": "65f0f1...",
"Status": "BOOKED",
"UTCStartTime": "2026-06-20T01:30:00Z",
"UTCEndTime": "2026-06-20T02:00:00Z"
}
]
}POST
/api/v1/appointmentsBook an appointment
Books an appointment. BillableItemId, UTCStartTime and UTCEndTime are required. Link an existing patient/injury by id, or create them inline with the Patient / Injury objects. Requires appointments:write.
Body parameters
BillableItemIdstringrequiredThe service being booked (see Reference data).
UTCStartTimestringrequiredISO 8601 start time.
UTCEndTimestringrequiredISO 8601 end time.
TypeenumdeprecatedIgnored. Still accepted so existing integrations keep working, but never stored.
PatientIdstringoptionalExisting patient to book.
InjuryIdstringoptionalExisting injury / ACC claim to treat.
PractitionerIdstringoptionalOverride the acting practitioner.
LocationIdstringoptionalThe site to book at (see locations). Must be an active site. Omitted: the practitioner’s home site, else the clinic’s default.
NotesstringoptionalBooking note.
PatientobjectoptionalCreate the patient inline (same fields as create-patient).
InjuryobjectoptionalCreate the injury inline (
ACCNumber, InjuryUTCDate, ReadCodes).Request
curl https://api.mananotes.co.nz/api/v1/appointments \
-H "Authorization: Bearer eyJhbGci..." \
-H "Content-Type: application/json" \
-d '{
"PatientId": "65f0c2a1b3d4e5f6a7b8c9d0",
"InjuryId": "65f0e4...",
"BillableItemId": "65f0b1...",
"UTCStartTime": "2026-06-20T01:30:00Z",
"UTCEndTime": "2026-06-20T02:00:00Z"
}'Response
{
"data": {
"id": "65f0d3b2c4e5f6a7b8c9d0e1",
"PatientId": "65f0c2a1b3d4e5f6a7b8c9d0",
"InjuryId": "65f0e4...",
"BillableItemId": "65f0b1...",
"Status": "BOOKED",
"UTCStartTime": "2026-06-20T01:30:00Z",
"UTCEndTime": "2026-06-20T02:00:00Z",
"createdAt": "2026-06-20T05:40:02Z"
}
}GET
/api/v1/appointments/{id}Retrieve an appointment
Fetches a single appointment by id. Requires appointments:read.
Path parameters
idstringrequiredThe id of the appointment.
Request
curl https://api.mananotes.co.nz/api/v1/appointments/65f0d3b2c4e5f6a7b8c9d0e1 \
-H "Authorization: Bearer eyJhbGci..."Response
{
"data": {
"id": "65f0d3b2c4e5f6a7b8c9d0e1",
"PatientId": "65f0c2a1b3d4e5f6a7b8c9d0",
"Status": "BOOKED",
"UTCStartTime": "2026-06-20T01:30:00Z",
"UTCEndTime": "2026-06-20T02:00:00Z"
}
}PATCH
/api/v1/appointments/{id}Update an appointment
Updates an appointment — e.g. reschedule by changing UTCStartTime/UTCEndTime, or update Notes. Omitted fields are unchanged. Requires appointments:write.
Path parameters
idstringrequiredThe id of the appointment.
Body parameters
UTCStartTimestringoptionalNew ISO 8601 start time.
UTCEndTimestringoptionalNew ISO 8601 end time.
NotesstringoptionalUpdate the booking note.
BillableItemIdstringoptionalChange the booked service.
LocationIdstringoptionalMove the appointment to another site. Must be an active site, unless it is the appointment’s current one.
Request
curl https://api.mananotes.co.nz/api/v1/appointments/65f0d3b2c4e5f6a7b8c9d0e1 \
-X PATCH \
-H "Authorization: Bearer eyJhbGci..." \
-H "Content-Type: application/json" \
-d '{
"UTCStartTime": "2026-06-20T03:00:00Z",
"UTCEndTime": "2026-06-20T03:30:00Z"
}'Response
{
"data": {
"id": "65f0d3b2c4e5f6a7b8c9d0e1",
"UTCStartTime": "2026-06-20T03:00:00Z",
"UTCEndTime": "2026-06-20T03:30:00Z",
"updatedAt": "2026-06-20T06:15:30Z"
}
}DELETE
/api/v1/appointments/{id}Cancel an appointment
Soft-deletes (cancels) an appointment. Pass deleteAssociatedTreatment=true to also remove the linked treatment. Requires appointments:write.
Path parameters
idstringrequiredThe id of the appointment.
Query parameters
deleteAssociatedTreatmentbooleanoptionalAlso soft-delete the linked treatment. Defaults to
false.Request
curl "https://api.mananotes.co.nz/api/v1/appointments/65f0d3b2c4e5f6a7b8c9d0e1?deleteAssociatedTreatment=true" \
-X DELETE \
-H "Authorization: Bearer eyJhbGci..."Response
{
"data": {
"id": "65f0d3b2c4e5f6a7b8c9d0e1",
"IsDeleted": true
}
}