Create an appointment type.
Create an appointment type.
https://app.softsolz.uk/api/v1/services/appointments/typesRecent 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
namestringDisplay name.
slugstringURL-safe identifier, unique per workspace.
descriptionstringOptional longer description.
kindstringCategory this belongs to.
duration_minutesintegerHow long the appointment lasts.
arrival_window_minutesintegerWhen 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.
meeting_urlstringStatic meeting room URL for virtual appointments.
capacityintegerPlaces available. 1 is one-to-one; above 1 enables group booking.
booking_modestringWhether bookings confirm instantly or need approval.
price_centsintegerPrice in the smallest currency unit.
currencystringISO 4217 currency code.
deposit_centsintegerDeposit taken at booking, in the smallest currency unit.
is_publicbooleanWhether this can be booked from a public link or a widget.
intake_fieldsarray of objectsQuestions asked at booking. Same field-schema shape the Forms builder uses.
requirementsarray of objectsWhat the appointment needs at the same time, 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, with optional per-resource duration and price overrides.
followup_rulesarray of objectsWhat happens automatically after the appointment finishes.
reminder_schedulearray of objectsWhen reminders are sent, and on which channel.
statusstringCurrent 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" }}