SoftSolzSoftSolz
HomeAPI GuideAPI ReferenceWidget Tester
appointments

Create an appointment type.

Create an appointment type.

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

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

namestring

Display name.

slugstring

URL-safe identifier, unique per workspace.

descriptionstring

Optional longer description.

kindstring

Category this belongs to.

duration_minutesinteger

How long the appointment lasts.

arrival_window_minutesinteger

When set, the customer books an arrival window of this length instead of an exact time.

buffer_before_minutesinteger

Protected time before the appointment.

buffer_after_minutesinteger

Protected time after the appointment.

travel_minutesinteger

Travel time reserved around the appointment.

location_modestring

Where the appointment happens.

meeting_urlstring

Static meeting room URL for virtual appointments.

capacityinteger

Places available. 1 is one-to-one; above 1 enables group booking.

booking_modestring

Whether bookings confirm instantly or need approval.

price_centsinteger

Price in the smallest currency unit.

currencystring

ISO 4217 currency code.

deposit_centsinteger

Deposit taken at booking, in the smallest currency unit.

is_publicboolean

Whether this can be booked from a public link or a widget.

intake_fieldsarray of objects

Questions asked at booking. Same field-schema shape the Forms builder uses.

requirementsarray of objects

What the appointment needs at the same time, for example one engineer and one van.

stagesarray of objects

Ordered visits for multi-visit, project, and route types.

resourcesarray of objects

Which resources can deliver this, with optional per-resource duration and price overrides.

followup_rulesarray of objects

What happens automatically after the appointment finishes.

reminder_schedulearray of objects

When reminders are sent, and on which channel.

statusstring

Current status.

Response

Response Body

idintegerAppointment type id.
slugstringURL-safe type slug, unique per tenant.
namestringDisplay name.
descriptionstring | nullOptional description.
kindstringHow this type is scheduled. Built-in values are one_time, recurring, multi_visit, project, route, maintenance, emergency and walk_in; any other lowercase slug is kept as your own wording.
duration_minutesintegerDefault duration.
arrival_window_minutesinteger | nullWhen set, the customer books an arrival window of this length instead of an exact time.
buffer_before_minutesintegerProtected time before the appointment.
buffer_after_minutesintegerProtected time after the appointment.
travel_minutesintegerTravel time reserved around the appointment.
location_modestringWhere the appointment happens. Built-in values are business, customer, virtual, phone, route_stop and hybrid; any other lowercase slug is kept as your own wording.
meeting_urlstring | nullStatic meeting room URL.
capacityintegerPlaces per slot. 1 is one-to-one; above 1 enables group booking.
booking_modestringWhether bookings confirm instantly or need approval.
price_centsinteger | nullPrice in the smallest currency unit.
currencystring | nullISO 4217 currency code.
deposit_centsinteger | nullDeposit taken at booking, in the smallest currency unit.
is_publicbooleanWhether the type is bookable from a public booking link or widget.
intake_fieldsarray of objectsQuestions asked at booking time. Same field-schema shape the Forms builder uses.
requirementsarray of objectsWhat the appointment needs simultaneously, for example one engineer and one van.
stagesarray of objectsOrdered visits for multi-visit, project, and route types.
resourcesarray of objectsWhich resources can deliver this type, with optional duration and price overrides.
statusstringCurrent status.
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.createType({});
console.log(result);

Credentials

Sent as a Bearer token. Stored only in your browser.

Response · 201

{
"data": {
"id": 0,
"slug": "string",
"name": "string",
"description": "string",
"kind": "string",
"duration_minutes": 0,
"arrival_window_minutes": 0,
"buffer_before_minutes": 0,
"buffer_after_minutes": 0,
"travel_minutes": 0,
"location_mode": "string",
"meeting_url": "string",
"capacity": 0,
"booking_mode": "string",
"price_cents": 0,
"currency": "string",
"deposit_cents": 0,
"is_public": true,
"intake_fields": [],
"requirements": [],
"stages": [],
"resources": [],
"status": "string",
"created_at": "string",
"updated_at": "string"
}
}