SoftSolzSoftSolz
HomeAPI GuideAPI ReferenceWidget Tester

Appointments

Take bookings from a widget, a shareable link or the API.

Appointments is a scheduling engine you define yourself. An appointment type is the thing people can book, a resource is the staff member, room or vehicle that fulfils it, and an appointment is a booking against both. Availability is computed from the resources attached to a type, so you never post open slots yourself.

Embed the booking widget

The fastest integration. No server code, and the widget handles availability and confirmation for you.

html
<script src="https://app.softsolz.uk/softsolz.js"
data-public-key="pk_live_your_key"
data-service-id="appointments"
data-mode="inline"></script>

List what can be booked

Start here when integrating server-side. Each type carries the duration and questions the booking expects.

bash
curl https://app.softsolz.uk/api/v1/services/appointments/types \
-H "Authorization: Bearer sk_live_your_key"

Find open slots

Ask for a date range and a type. Pass resource_id to restrict the search to one staff member.

bash
curl -G https://app.softsolz.uk/api/v1/services/appointments/availability \
-H "Authorization: Bearer sk_live_your_key" \
-d type_id=1042 \
-d from=2026-09-01 \
-d to=2026-09-07

Book an appointment

Send an Idempotency-Key so a retried request never double-books the same slot.

bash
curl -X POST https://app.softsolz.uk/api/v1/services/appointments/appointments \
-H "Authorization: Bearer sk_live_your_key" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: booking-9f2c1a" \
-d '{"type_id":1042,"starts_at":"2026-09-02T14:00:00Z","customer":{"name":"Alex Rivera","email":"alex@example.com"}}'

Move it through its lifecycle

Reschedule, cancel and transition are separate endpoints rather than a single status field, so each one can run its own side effects: reminders, waitlist offers and webhooks.

bash
curl -X POST https://app.softsolz.uk/api/v1/services/appointments/appointments/8317/reschedule \
-H "Authorization: Bearer sk_live_your_key" \
-H "Content-Type: application/json" \
-d '{"starts_at":"2026-09-03T10:00:00Z"}'

React to changes

Register a webhook endpoint to hear about bookings made outside your integration, from the widget, a booking link or the dashboard. Appointments emits appointments.booking_created, appointments.booking_rescheduled, appointments.booking_cancelled, appointments.booking_completed and appointments.checked_in, among others.

Next

Browse all 43 endpoints in the API Reference, see Webhooks for signature verification, or read the product walkthrough on docs.softsolz.uk.