Skip to main content

Module: Appointments

The appointment calendar/list and the place where staff change appointment status.

Purpose

  • See today's and upcoming appointments.
  • Book new appointments.
  • Move an appointment through its status machine — confirm, check in, complete, cancel.
  • Reconcile no-shows.

Screens

List view

  • Columns: Date/Time • Pet • Client • Vet • Type • Status • Actions.
  • Status shown as a colour-coded Badge.
  • Row actions depend on current status:
    • scheduledConfirm, Cancel
    • confirmedCheck in, Cancel, No-show
    • checked_inComplete
    • Terminal statuses have no actions.
  • Filters: status, date range, vet.
  • Pagination: 20/page.

New appointment form

Component: AppointmentForm.js.

FieldTypeNotes
PetselectRequired; auto-fills Client
ClientautoDerived from Pet
Veterinarianselect (user)Optional
Appointment typetextRequired — e.g. vaccination, consult
Start / EnddatetimeRequired; end after start
ReasontextareaOptional
NotestextareaOptional
Booking sourcehiddenDefaults to clinic_portal

Submit → services.appointments.create(...).

Data flow

Business rules

  • Once completed, an appointment cannot be re-opened through the API — the UI hides the action.
  • no_show is a terminal state; re-booking means creating a new appointment.
  • booking_source is informational and never gates behaviour — it's for reporting.

API endpoints used

  • GET /api/v1/tenant/{tenant}/appointments
  • POST /api/v1/tenant/{tenant}/appointments
  • PATCH /api/v1/tenant/{tenant}/appointments/{appointment} — status-only

See also: Workflow → Appointments.