> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bellabooking.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Service Timing Concepts

> Understand how duration, processing time, and buffer time work together in Bella Booking

Every service in Bella Booking has timing components that determine how long the appointment takes and when the team member is available. Understanding these three components helps you configure your services accurately and optimise your schedule.

![Visual timeline of a 110-minute Full Colour appointment composed of Buffer before (10m), Duration (60m), Processing Time (30m) and Buffer after (10m), with a table showing how each segment affects the team member, the client, and what's visible in online booking](https://mintcdn.com/bellabooking/HGINXqxD4v2O7Jyn/images/timing-concept-diagram.webp?fit=max\&auto=format\&n=HGINXqxD4v2O7Jyn\&q=85\&s=1b3fa45b95affabc11b4fbec68fbdc12)

The screenshot below shows where these fields live in the service form:

![Service form showing Duration, Processing Time, Buffer before, and Buffer after fields side by side](https://mintcdn.com/bellabooking/mwnB-cztp0n0LVQy/images/timing-concept.webp?fit=max\&auto=format\&n=mwnB-cztp0n0LVQy\&q=85\&s=b971541562a40c3d0bcaf992f351cb3c)

***

## The three timing components

### Duration

The **active service time** - the period when the team member is performing the service on the client.

* Set per service in the [Services](https://docs.bellabooking.com/service-catalog.md)
* This is the core appointment time (e.g., 45 minutes for a haircut)
* The team member and client are both occupied during this time

### Processing time

Time **after the active service** where the client remains but the team member is free to serve others.

* Configured per service or inherited from the location default
* The client stays (e.g., waiting for hair colour to develop)
* The team member can serve other clients during this period
* **Visible to clients** in online booking as part of the total duration

**Common examples:**

* Hair colour development (30-45 minutes)
* Perm setting time (20-30 minutes)
* Skincare treatment absorption (15-20 minutes)
* Teeth whitening activation (15 minutes)

### Buffer time

Blocked time **before and/or after** the service when the team member, and any room or equipment the service uses, is unavailable.

* **Buffer before**: Setup or preparation time before the service begins
* **Buffer after**: Cleanup or reset time after the service ends
* The team member is blocked and cannot serve other clients
* **Not visible to clients**. It still counts when Bella works out which times to offer online

**Common examples:**

* Room preparation and sanitisation (10-15 minutes)
* Equipment sterilisation between clients (5-10 minutes)
* Consultation note review before the appointment (5 minutes)
* Laundry and linen change between treatments (10 minutes)

***

## How the three components compose

The full timeline of a service appointment flows as follows:

```
Buffer before --> Duration --> Processing Time --> Buffer after
```

**Detailed timeline:**

```
|-- Buffer before --|---- Duration ----|-- Processing Time --|-- Buffer after --|
|  TM blocked       |  TM + Client     |  Client stays,      |  TM blocked      |
|  Client not here  |  both occupied    |  TM free            |  Client gone     |
|  Not visible to   |  Active service   |  Visible to clients |  Not visible to  |
|  clients          |  time             |  in booking         |  clients         |
```

**Example: Full Colour Service**

| Component | Duration | Who is occupied | Client sees it? |
| - | - | - | - |
| Buffer before | 10 min | Team member blocked (setup) | No |
| Duration | 60 min | Team member + client (colour application) | Yes |
| Processing Time | 30 min | Client waits (colour develops), team member free | Yes |
| Buffer after | 10 min | Team member blocked (cleanup) | No |

* **Client sees**: 90 minutes total (60 min + 30 min processing) displayed as "90 mins (incl. 30 min processing time)"
* **Full calendar window**: 110 minutes total (10 + 60 + 30 + 10) - this is the entire span from start of Buffer before to end of Buffer after, including the processing time in the middle
* **Team member blocked slot**: 80 minutes (10 + 60 + 10 = Buffer before + Duration + Buffer after) - this is the `GetTeamMemberTimeSlot` used for conflict detection. The team member is **free** during the 30 min processing time and can serve other clients
* **Team member available for others**: 30 minutes (during Processing Time only)

***

## How defaults and overrides work

Processing time and buffer times use a cascading inheritance model:

### Resolution order

1. **Bundle override** (processing time only) - a custom processing time set for the service inside a bundle takes priority. A bundle never overrides buffer time
2. **Variant value** - an explicit value set on the variant being booked
3. **Service-level value** - an explicit value set directly on the service
4. **Location default** - the default value set in **Settings** > **Scheduling** > [Processing Time & Buffer Defaults](https://docs.bellabooking.com/scheduler/settings.md#processing-time--buffer-defaults)
5. **0 minutes** - if no default is configured anywhere

### "Use default" behaviour

When a service has "Use default" selected (shown in the service form), it inherits the location-level default. This means:

* Changing the location default updates all services that use "Use default"
* Services with explicit values are not affected by location default changes
* You can see whether a service uses its own value or the default in the service form

### Changing buffer on a service that already has bookings

A booked appointment stores the buffer it had at the moment it was booked, so changing a service's (or a variant's) buffer setting on its own never changes an appointment already on the calendar.

Saving that change offers a way to catch it up: Bella lists the service's upcoming (not yet completed or cancelled) appointments still carrying the old buffer, and **Apply** updates them in one step. Any appointment where the wider buffer would newly overlap another booking or blocked time is skipped and named, rather than silently creating a double-booking. Past and completed appointments never change, and clients are never notified - buffer is not visible to them.

Changing the **location default** buffer does not currently offer this catch-up step - only a change on the service or variant itself does.

To update one appointment yourself, open it, click **Edit**, then **Update**: saving picks up the service's current buffer.

***

## Timing in different contexts

### Individual services

All three components apply straightforwardly:

```
|-- Buffer before --|---- Duration ----|-- Processing Time --|-- Buffer after --|
```

### Sequential bundles

Processing time appears **between services**. A bundle has no buffer of its own: each service keeps its own buffer before and after, around its own time, and it blocks that service's team member and any room or equipment the service uses. A buffer never pushes the next service back:

```
|-- Service 1's   --|-- Service 1 --|-- Processing --|-- Service 2 --|-- Processing --|-- Service 2's  --|
|   buffer before   |  Duration     |  Time          |  Duration     |  Time          |   buffer after   |
```

Service 1's buffer after, and Service 2's buffer before, overlap the time around them instead of adding a gap. When the two services use different rooms, Service 1's room stays blocked for its buffer after while the client has already moved on to Service 2.

### Parallel bundles

All services run simultaneously. The largest processing time across all services is used once after the block. Each service keeps its own buffer before and after, around its own time, for its own team member and room:

```
|-- Service 1 (longest) --|-- Max Processing --|
|-- Service 2 ------------|  Time              |
```

### Stacked services (multiple services in one appointment)

When multiple individual services are added to a single appointment, each service's **processing time** advances the timeline - the next service starts after the previous service's duration plus its processing time. This means the team member can serve other clients during the processing gap.

**Buffer time does NOT create a gap between stacked services.** Buffer is recorded per service and blocks that service's team member, and any room or equipment it uses, for the buffer period. When one team member performs the whole stack, buffer does not push services apart within it. Each service's buffer after starts when that service ends, so on an earlier service it runs during the services after it, and the team member is held until the last of those buffers ends, normally the last service's. Bella doesn't use the longest buffer of the services in an appointment: book a facial (30-minute buffer after) and then a 45-minute massage (15 minutes) and the team member is held for 15 minutes after the massage; book the massage first and it's 30 minutes after the facial. To hold more time after a combination, give the service or variant booked last a longer buffer after.

***

## Client-facing vs internal visibility

| Component | Shown to clients | Team member | Resource (room) | Client |
| - | - | - | - | - |
| Duration | Yes | Blocked | Blocked | Occupied |
| Processing Time | Yes (as "incl. X min processing time") | **Free** to serve others | Blocked (room still in use) | Occupied (still present) |
| Buffer before | No | Blocked | Blocked | Not affected |
| Buffer after | No | Blocked | Blocked | Not affected |

***

## FAQs

**Q: Why would I use processing time instead of just making the service duration longer?**
A: Processing time frees the team member to serve other clients during that period. If you make the duration longer instead, the team member appears occupied for the full time, reducing your booking capacity. Using processing time optimises your schedule.

**Q: Do buffer times reduce my bookable capacity?**
A: Yes, buffer times block the team member and reduce available slots. Use them judiciously - only when genuine setup or cleanup time is needed. Even 5-10 minutes of buffer can significantly impact a full day's schedule.

**Q: Can I have processing time without buffer time, or vice versa?**
A: Yes. Each component is independent. A colour service might have 30 minutes of processing time but no buffer. A massage service might have 10 minutes of buffer after (for room reset) but no processing time.

**Q: How do these affect online booking availability?**
A: The system checks different time ranges for different resources:

* **Team member**: must be free for buffer before + duration + buffer after. Processing time does **not** block the team member - they are free to serve another client during that period.
* **Resource** (e.g., treatment room): must be free for buffer before + duration + processing time + buffer after. The resource remains occupied while the client is present during processing.
* **Client**: must not have an overlapping appointment during duration + processing time. Buffer does not affect client availability.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.