Book an appointment. Creates the customer when one does not already match, assigns resources, and schedules reminders.
Book an appointment. Creates the customer when one does not already match, assigns resources, and schedules reminders.
https://app.softsolz.uk/api/v1/services/appointments/appointmentsRecent Requests
Log in to see full request historyHeaders
AuthorizationstringrequiredBearer token: `Bearer sk_live_...` (or `sk_test_...` for sandbox). A login token will not work here.
Idempotency-KeystringOptional idempotency key for safe retries.
Body Params
type_idintegerAppointment type to book.
starts_atstringStart of the appointment, in UTC.
timezonestringIANA timezone the booking was made in. Defaults to the workspace timezone.
customer_idintegerExisting customer to book for.
customerobjectCustomer details. When no matching customer exists one is created, matched on email then phone.
asset_idintegerThing the visit is about.
resource_idsarray of integersSpecific resources to assign. Omit to auto-assign a qualifying resource.
locationobjectOverrides the location derived from the type.
intake_dataobjectAnswers to the type intake fields.
custom_fieldsobjectYour own extra fields, keyed by the definitions in workspace settings.
titlestringShort label shown on the calendar.
notesstringInternal note recorded against the appointment.
Response
Response Body
idintegerUnique identifier.public_refstringShort reference safe to show a customer.type_idinteger | nullAppointment type this belongs to.plan_idinteger | nullMulti-visit plan this belongs to, when part of one.stage_sequenceinteger | nullPosition within the plan stages, when part of one.customer_idinteger | nullNull for group sessions, where people are listed as attendees instead.asset_idinteger | nullThe thing the visit is about, for example a vehicle or a property.state_keystringCurrent workflow state.titlestring | nullShort label shown on the calendar.starts_atstringStart of the appointment, in UTC.ends_atstringEnd of the appointment, in UTC.window_ends_atstring | nullEnd of the arrival window when the type uses one.timezonestringIANA timezone, for example Europe/London.location_modestringWhere the appointment happens.locationobjectAddress, coordinates, meeting URL, or phone number.capacityintegerPlaces available. 1 is one-to-one; above 1 enables group booking.sourcestringHow the appointment was created.price_centsinteger | nullPrice in the smallest currency unit.currencystring | nullISO 4217 currency code.intake_dataobjectAnswers to the appointment type intake questions.custom_fieldsobjectYour own extra fields, keyed by the definitions in workspace settings.assignmentsarray of objectsResources working this appointment.attendeesarray of objectsPeople booked onto a group session.created_atstringWhen the record was created.updated_atstringRound-trip as expected_updated_at to guard against stale writes.Request
import { SoftSolz } from '@softsolz/sdk';
const client = new SoftSolz({ apiKey: process.env.SOFTSOLZ_API_KEY });
const result = await client.appointments.createAppointment({});console.log(result);Credentials
Sent as a Bearer token. Stored only in your browser.
Response · 201
{ "data": { "id": 0, "public_ref": "string", "type_id": 0, "plan_id": 0, "stage_sequence": 0, "customer_id": 0, "asset_id": 0, "state_key": "string", "title": "string", "starts_at": "string", "ends_at": "string", "window_ends_at": "string", "timezone": "string", "location_mode": "string", "location": {}, "capacity": 0, "source": "string", "price_cents": 0, "currency": "string", "intake_data": {}, "custom_fields": {}, "assignments": [], "attendees": [], "created_at": "string", "updated_at": "string" }}