API · v1 · stabil
CODEMETA OS Developer Center
Konsole öffnen
Module

Booking

Booking ist eine Calendly-artige Funktion: Mitarbeitende oder Teams legen buchbare Services mit Verfügbarkeitsregeln an; externe Personen buchen über einen Public-Slug, ohne Codemeta-Account.

Resources

ResourcePfadPermission-Präfix
Termin-Links/api/v1/booking_linksbooking_link
Services/api/v1/booking_servicesbooking_service

Schemas

Service

booking_services4 Permissions

Schema for validating booking service entities

name string erforderlich

Service name

1–200 Zeichen
description string optional

Optional service description

max 2000 Zeichennullable
systemKey string optional

Marker for auto-provisioned, internal-only system services (e.g. "project_meeting"). Used to look up / lazily create a tenant-wide shared service. Null for normal user-created services.

max 64 Zeichennullable
durationMinutes integer erforderlich

Appointment duration in minutes

1530456090120
bufferBeforeMinutes integer optional

Buffer time before the appointment in minutes

0 – 480Default: 0
bufferAfterMinutes integer optional

Buffer time after the appointment in minutes

0 – 480Default: 0
price integer optional

Price in cents

≥ 0nullable
currency string optional

Currency code (ISO 4217)

max 3 ZeichenDefault: "EUR"
priceDisplayMode string optional

How the price is displayed to the customer

showhideon_request
Default: "show"
location object optional

Where the appointment takes place

nullable
type string erforderlich

Location type

on_siteremotephonecustom
value string optional

Location value (address, URL, phone number, etc.)

max 500 Zeichennullable
assignedUserIds uuid[] erforderlich

User IDs that can be booked for this service

min 1 Items
assignmentMode string erforderlich

How a user is assigned to a booking

any_availablecustomer_choosessmart_assign
maxConcurrentBookings integer optional

Maximum concurrent bookings per time slot

1 – 10Default: 1
autoConfirm boolean optional

Automatically confirm bookings without manual approval

Default: true
requiresApproval boolean optional

Whether bookings require manual approval

Default: false
isActive boolean optional

Whether the service is active and bookable

Default: true
color string optional

Hex color for calendar display (e.g. #FF5733)

max 7 Zeichennullable
categoryId uuid optional

Category ID for grouping services

nullable
imageFileId uuid optional

File ID for the service image

nullable
onlineMeetingProvider string optional

Online meeting provider for remote appointments

teamszoomgoogle_meet
nullable
reminderConfig object optional

Reminder configuration

enabled boolean erforderlich

Whether reminders are enabled

emailBefore integer[] optional

Minutes before appointment to send email reminders

Default: []
cancellationPolicy object optional

Cancellation and rescheduling policy

allowCancellation boolean erforderlich

Whether customers can cancel bookings

minHoursBefore integer optional

Minimum hours before appointment to allow cancellation

0 – 720Default: 24
allowReschedule boolean optional

Whether customers can reschedule bookings

Default: true
rescheduleMinHoursBefore integer optional

Minimum hours before appointment to allow rescheduling

0 – 720Default: 24
isGroupBooking boolean optional

Whether this service supports group bookings (multiple participants per slot)

Default: false
maxParticipants integer optional

Maximum participants per slot (only relevant when isGroupBooking=true)

2 – 100nullable
minParticipants integer optional

Minimum participants for the booking to take place

1 – 100nullable
registrationDeadlineHours integer optional

Hours before start after which registration closes

0 – 720nullable
followUpConfig object optional

Follow-up email configuration after appointment

nullable
enabled boolean optional
Default: false
delayHours integer optional

Hours after appointment end to send follow-up

1 – 168Default: 24
includeNps boolean optional

Include NPS rating question in follow-up email

Default: false
customMessage string optional

Custom follow-up message (HTML)

max 2000 Zeichennullable
customFields object[] optional

Custom intake form fields

Default: []
id string erforderlich

Unique field identifier

1–50 Zeichen
type string erforderlich

Field input type

texttextareadropdowncheckboxnumberemailphone
label object erforderlich

i18n labels (e.g. { de: "Name", en: "Name" })

placeholder object optional

i18n placeholders

nullable
required boolean erforderlich

Whether the field is required

options object[] optional

Dropdown options

nullable
value string optional
label object optional

i18n labels for option

validation object optional

Validation rules

nullable
minLength integer optional
maxLength integer optional
min number optional
max number optional
pattern string optional

Public-Buchung

Externe Anwender öffnen einen Buchungs-Link /api/v1/public/book/<slug>, sehen verfügbare Slots und buchen durch:

POST /api/v1/public/book/<slug>/reservations

Die Reservation erscheint im Mandanten als Termin in der Kalender-Sicht. Bei requiresPayment: true schickt der Server eine Stripe-Checkout-Session zurück.

Mehr unter Public Endpoints.

Verwandt

Suche