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
| Resource | Pfad | Permission-Präfix |
|---|---|---|
| Termin-Links | /api/v1/booking_links | booking_link |
| Services | /api/v1/booking_services | booking_service |
Schemas
Service
Schema for validating booking service entities
name
Service name
description
Optional service description
systemKey
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.
durationMinutes
Appointment duration in minutes
1530456090120 bufferBeforeMinutes
Buffer time before the appointment in minutes
bufferAfterMinutes
Buffer time after the appointment in minutes
price
Price in cents
currency
Currency code (ISO 4217)
priceDisplayMode
How the price is displayed to the customer
showhideon_request assignedUserIds
User IDs that can be booked for this service
assignmentMode
How a user is assigned to a booking
any_availablecustomer_choosessmart_assign maxConcurrentBookings
Maximum concurrent bookings per time slot
autoConfirm
Automatically confirm bookings without manual approval
requiresApproval
Whether bookings require manual approval
isActive
Whether the service is active and bookable
color
Hex color for calendar display (e.g. #FF5733)
categoryId
Category ID for grouping services
imageFileId
File ID for the service image
onlineMeetingProvider
Online meeting provider for remote appointments
teamszoomgoogle_meet reminderConfig
Reminder configuration
enabled
Whether reminders are enabled
emailBefore
Minutes before appointment to send email reminders
cancellationPolicy
Cancellation and rescheduling policy
allowCancellation
Whether customers can cancel bookings
minHoursBefore
Minimum hours before appointment to allow cancellation
allowReschedule
Whether customers can reschedule bookings
rescheduleMinHoursBefore
Minimum hours before appointment to allow rescheduling
isGroupBooking
Whether this service supports group bookings (multiple participants per slot)
maxParticipants
Maximum participants per slot (only relevant when isGroupBooking=true)
minParticipants
Minimum participants for the booking to take place
registrationDeadlineHours
Hours before start after which registration closes
followUpConfig
Follow-up email configuration after appointment
enabled
delayHours
Hours after appointment end to send follow-up
includeNps
Include NPS rating question in follow-up email
customMessage
Custom follow-up message (HTML)
customFields
Custom intake form fields
id
Unique field identifier
type
Field input type
texttextareadropdowncheckboxnumberemailphone label
i18n labels (e.g. { de: "Name", en: "Name" })
placeholder
i18n placeholders
required
Whether the field is required
Keine Felder passen zum Filter.
Link
Schema for validating booking link entities
name
slug
assignedUserIds
technicianMode
all_required = alle Techniker müssen frei sein (1-to-many), any_one = ein verfügbarer reicht (1-of-many)
all_requiredany_one assignmentModeOverride
Only relevant when technicianMode=any_one
any_availablecustomer_choosessmart_assignnull durationOverride
1530456090120null availabilityWindows
mode
recurring = weekday-based, fixed = specific date or date range
recurringfixed label
weekdays
ISO weekdays (1=Mo, 7=Su). Required for mode=recurring, empty for mode=fixed.
fixedDate
Specific date (YYYY-MM-DD). Required for mode=fixed.
fixedDateEnd
Optional end date for a date range. Only for mode=fixed.
startTime
endTime
validFrom
validUntil
schedulingPolicy
minLeadTimeHours
maxLeadTimeDays
slotIntervalMinutes
153060 maxBookingsTotal
maxBookingsPerCustomer
linkedPartyId
linkedProjectId
When set, a booking made through this link stamps the created calendar_event with referenceType=PROJECT / referenceId=linkedProjectId so it appears in the project Termine tab.
eventTitleOverride
Optional title for the created calendar_event (e.g. project context). Falls back to "service.name — customer" when null.
expiresAt
isActive
customWelcomeMessage
customConfirmationMessage
branding
Keine Felder passen zum Filter.
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
- Konventionen
- Public Endpoints — Buchungs-Slugs