Skip to content

Resource Scheduler API

Every legacy endpoint in this category and its replacement in the new Oneserve API (where one exists).

Legacy Status Replacement Notes
addAppointment Replaced POST /classic/appointments POST /classic/appointments is a compatibility wrapper around the legacy endpoint. It preserves full legacy semantics (pooled resourceId="" bookings, zoneCriteria, allowSecondary) and the same body/response shape, but is served under the new authentication (JWT). POST /v1/appointments exists but requires resourceId and does not support pooled booking. Migrate to the classic wrapper now; the v1 endpoint will be the long-term home once it gains pooled support.
addAppointmentV1 Replaced POST /v1/appointments Legacy V1 was fixed-appointment-only (resourceId mandatory). Payload structure has changed; consult the new request schema.
appointments Replaced GET /v1/appointments Legacy GET /rest/rs/resource/{resourceRef}/appointments/{startDate}/{endDate} listed appointments for a single resource in a date range. The new endpoint filters by clientRef (required) only - no per-resource or date-range query parameters. Equivalent filtering not available.
appointmentsV10 Replaced GET /v1/appointments Same shape as legacy appointments - lists appointments for a resource in a date range. The new endpoint accepts clientRef only and does not support resource/date-range filtering. Response payload structure also differs significantly.
availableAppointmentSlots Replaced GET /classic/appointments/slots/{jobRef}/{startDate} GET /classic/appointments/slots/{jobRef}/{startDate} is a compatibility wrapper around the legacy GET /rest/availability/getAppSlots/.... Slot-availability discovery for pooled scheduling is preserved with the same response shape, served under the new authentication. Accepts optional teamId, numberOfDays, allowSecondary, zoneCriteria query params.
cancelAppointment Replaced PATCH /v1/appointments/{id} Two-call migration:
(see the endpoint page for the full call sequence)
The acting user (legacy notedId path param) is now implicit from the JWT — record any noted-by context as the note body text on step 2.
completeAppointment Replaced PATCH /v1/appointments/{id} Two-call migration:
(see the endpoint page for the full call sequence)
actualEndDate replaces the legacy URL-positional {cDate}. The noted-by user (legacy notedId) is now implicit from the JWT — capture any human context in the note body on step 2.
addAppointmentImage No replacement No direct new-API equivalent.
appointmentCounts No replacement No direct new-API equivalent.
bulkAppointmentBooker No replacement No direct new-API equivalent.
bulkAppointmentBookerV1 No replacement No direct new-API equivalent.