Service Types & Configuration
Learn about individual services, grouped services, and packages so you can model your booking catalogue correctly.
What Defines a Service?
Every service you create in Kinibook has a type that controls how bookings behave — whether it's a one-on-one appointment, a group class, or a rental. Understanding these types and their configuration fields is essential to setting up your booking page correctly.
The Four Service Types
Each service must be assigned one of four types. This choice determines scheduling logic, capacity rules, and how clients interact with the service on your booking page:
| Type | Value | Behavior | Best For |
|---|---|---|---|
| 1-on-1 | 1_on_1 | One client books one staff member. Staff calendar is checked for availability. | Haircuts, massages, consultations |
| Stay | Rent | stay_rent | Blocks a resource (room/item) for a duration. Supports check-in/check-out times and multi-day bookings. | Studio rentals, gown rentals, equipment hire |
| Group | Class | group_class | Multiple clients book the same time slot up to the max capacity. Uses group schedule for recurring weekly sessions. | Yoga classes, fitness sessions, workshops |
| Event | event | One-off or date-range events with fixed start/end dates. Supports daily or overnight schedules with per-day custom hours. | Seminars, camps, multi-day conferences |
Max Capacity (Concurrent Bookings)
The Max Capacity field (labeled "Max Capacity" in the service editor) controls how many clients can book the same time slot simultaneously. How this limit is applied depends on the service type:
- For 1-on-1 and rental services: Each staff member or resource can handle up to
maxConcurrentbookings at the same time. If you have 3 stylists and Max Capacity is 1, each stylist takes one client per slot. This is the default for most service businesses. - For group classes and events: Max Capacity applies to the service as a whole. If Max Capacity is 15, up to 15 clients can book the same time slot regardless of how many staff are assigned.
The Max Capacity field is visible in the service editor when you expand a service card. It is labeled "Max Capacity" and accepts a number. Set it to your maximum class size or the number of concurrent appointments your team can handle.
Pricing Units
The pricing unit controls how the service price is calculated, especially important for rentals and multi-day bookings:
| Unit | Behavior |
|---|---|
| per_session | Fixed price per booking, regardless of duration. Standard for most services. |
| per_day | Price is multiplied by the number of days booked. Use for daily rentals or multi-day events. |
| per_night | Price is multiplied by the number of nights. Use for accommodation-style bookings where check-out is the morning after. |
Event Sub-Types
When a service type is set to event, you can further specify how the event operates across days:
- Daily Session (
daily_event): The event runs during specified hours each day. Clients book time slots within those hours. - Continuous Overnight (
overnight_event): The event spans across midnight into the next day. Suitable for camps, retreats, or overnight workshops.
Both sub-types use the eventDailyHours field to define per-date schedules with custom start/end times, titles, and descriptions for each day of the event.
Service Name Uniqueness Rule
Service names must be unique within your business. You cannot create two services with the exact same name (e.g., two services both called "Premium Haircut"). The system enforces this at the database level to prevent confusion on your booking page.
If you need to offer variations of the same service (e.g., "Premium Haircut — Short" and "Premium Haircut — Long"), simply include the distinguishing detail in the name itself.
When you delete a service, it is soft-deleted (marked as deleted but retained in the database for historical records). Soft-deleted services still count against the unique name constraint. If you need to reuse a name, rename the old service first before creating the new one.
Service Ordering & Visibility
Control how services appear on your public booking page:
- Display Order (
orderIndex): Services are listed in ascending order of this value. Set lower numbers for services you want to appear first. - Hidden Services (
isHidden): Toggle to hide a service from the public booking page without deleting it. Useful for seasonal or temporarily unavailable services. - Hide Price (
hidePrice): Display the service without showing the price. Clients see the service details but the price is hidden until checkout. - Accept Credits (
acceptsCredits): Allow clients to pay for this service using prepaid credit packages instead of cash/card. When enabled, set thecreditCostto define how many credits the service consumes.
Multi-Service Bookings
A single booking can include multiple services in one appointment. When a client selects more than one service on your booking page, the system combines them into a single booking record rather than creating separate appointments for each.
Key behaviours:
- Combined Duration: The total appointment duration is the sum of all selected services
timeConsumeMinutesvalues. The booking's end time reflects the full combined block. - Combined Price: The total price at checkout is the sum of all selected service prices (plus any add-on selections from booking surveys).
- Single Resource: All services in a multi-service booking are assigned to the same staff member and occupy a single contiguous slot on the calendar.
- Capacity Check: The system checks resource availability for the combined duration, not per individual service. If a staff member is free for the full combined block, the booking succeeds.
Multi-service bookings store all selected service IDs in the serviceIds JSON array on the booking record. The primary service is also stored in the standard serviceId field. This keeps legacy single-service bookings compatible while enabling multi-service support.
Still have questions?
Can't find what you need? Ask our support team directly.