SoftSolzSoftSolz
HomeAPI GuideAPI ReferenceWidget Tester
appointments

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.

POSThttps://app.softsolz.uk/api/v1/services/appointments/appointments

Recent Requests

Log in to see full request history
TimeStatusUser Agent
Make a request to see history.

Headers

Authorizationstringrequired

Bearer token: `Bearer sk_live_...` (or `sk_test_...` for sandbox). A login token will not work here.

Idempotency-Keystring

Optional idempotency key for safe retries.

Body Params

type_idinteger

Appointment type to book.

starts_atstring

Start of the appointment, in UTC.

timezonestring

IANA timezone the booking was made in. Defaults to the workspace timezone.

customer_idinteger

Existing customer to book for.

customerobject

Customer details. When no matching customer exists one is created, matched on email then phone.

asset_idinteger

Thing the visit is about.

resource_idsarray of integers

Specific resources to assign. Omit to auto-assign a qualifying resource.

locationobject

Overrides the location derived from the type.

intake_dataobject

Answers to the type intake fields.

custom_fieldsobject

Your own extra fields, keyed by the definitions in workspace settings.

titlestring

Short label shown on the calendar.

notesstring

Internal 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"
}
}