> For the complete documentation index, see [llms.txt](https://btwb.gitbook.io/btwb/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://btwb.gitbook.io/btwb/admin/scheduling/appointments.md).

# Appointments

This article shows gym owners how to set up appointment types, book appointments for clients, and configure the booking rules — including the self-booking page clients can use themselves.

### Overview

**Gym → Appointments** is the calendar for one-on-one and small-group sessions: personal training, nutrition consults, assessments. Three pieces work together:

* **Appointment Types** — the services you offer (name, color, default length).
* **Coach availability** — when each coach can be booked, and for which types (set per coach from **Appointment Settings → Manage Coach Availability**, or **Edit Availability** on **Staff** in the organization menu).
* **Appointment Settings** — the org-wide booking rules.

Clients book themselves through the **Self Booking Link** (top-right — copy it and share it or link to it from your site), or staff book for them right on this calendar.

![Creating an appointment type and booking a session](https://283006627-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZrefv5JliAQavbeRiIvd%2Fuploads%2Fgit-blob-41fc0f8bc187748fa893d72eea059b6f3818700d%2Fappointments.gif?alt=media)

***

### Step-by-Step: Setting Up a Service

#### 1. **Create an Appointment Type**

* Click **Manage Appointment Types → Add Appointment Type**.
* Set the **name** (e.g. "Personal Training"), a **color** (the Calendar Preview shows upcoming vs past styling), and the default **length**.
* Under **Membership Plans → Appointment Type included in**, tick the plans that should include it — the fastest way to give plans access. The list shows your active plans that already include appointments.
* Save — the type is immediately bookable by staff.

#### 2. **Set Coach Availability** (for self-booking)

* Open **Appointment Settings → Manage Coach Availability** and pick a coach (or use **Edit Availability** on the Staff page). For each coach, set:
  * **Appointment Types** — the types this coach allows for self booking. A type a coach hasn't ticked never shows for them on the booking page.
  * **General Availability** — their weekly bookable hours.
  * **Adjusted Availability** — date-specific exceptions (e.g. a holiday off).
* Client self-booking only offers times inside a coach's availability — staff bookings aren't limited by it.

***

### Step-by-Step: Booking a Client

#### 1. **Open the Booking Form**

* Click **Book Appointment** (or click a time slot on the calendar — the date and time pre-fill).

#### 2. **Fill In the Details**

* **Location** (multi-location gyms), **Type**, **Begins on**, and start/end **Time** — the end time follows the type's default length.
* **Repeat** — toggle on for a recurring appointment (weekly pattern, like class schedules).
* **Coach** — search and select (optional). Assigning a coach blocks that time from the coach's self-booking availability and emails them the booking.
* **Client** — search and select under **Add Client**; add more than one for a small-group session. The picker shows each client's appointment-credit situation: clients whose plan includes appointments show their remaining credits; others show **No Membership**. You can book anyway — the session is tracked as unpaid — or use **Add Credit**, which opens a checkout to sell the client a plan that includes appointment credits.

#### 3. **Book**

* The appointment appears on the calendar with the client's name. Clicking it later opens the management panel: check in, add clients, change the coach, cancel (early vs late, like classes) or remove it, restore a canceled appointment, and move it to a new time (upcoming appointments with no credit applied yet; moving one date of a recurring appointment makes it a separate single appointment).
* Each client's credit tag gives you **Apply Credit**, **Undo Applied Credit**, or **Add Credit**. Checking a client in applies a credit automatically if they have one.
* There's no manual no-show: anyone not checked in when the appointment ends is marked **No Show** automatically, and your no-show policy applies.

***

### Appointment Settings

Click **Appointment Settings** for the org-wide rules (mirroring [Class Settings](/btwb/admin/scheduling/class-schedules/class-settings.md)):

* **Enable Self Booking** — the master switch for the client-facing booking page.
* **Booking Opens / Closes** — how far ahead and how late clients can book (defaults: 30 days / 30 minutes).
* **Appointments Can Start Every** — the slot grid clients pick from (default: every 30 minutes).
* **Buffer Between Appointments** — automatic gap before and after each session on a coach's calendar (default: 30 minutes).
* **Max Bookings per Coach per Day** — a coach stops appearing in self-booking once they hit the cap (default: 5).
* **Self Booking Schedule → Manage Coach Availability** — the per-coach setup from step 2 above.
* **Self check-in window** and **Late Cancel / No Show policies** with credit and fee consequences — the same controls as classes. A late-cancel fee is charged **1 hour after** the late cancel; a no-show fee **28 hours after the appointment ends**. Unlike classes, turning the No Show policy off means no-shows don't use a credit.

***

### Notes for Admins and Coaches

* Membership plans grant appointment access via **Include Appointments?** — pick the **Included Appointment Types** and **Included Locations**, and optionally **Limit Appointment Credits?** per period (see [Membership Plans](/btwb/admin/memberships-and-billing/membership-plans.md)). For personal-training packs, use a Punchcard/Drop-In or Paid In Full plan with class attendance off and appointments on; for classes plus sessions, turn both on in a Recurring plan.
* When self-booking, a client picks a location, type, and coach (or **All Coaches**), then a date and an open time. They need an available appointment credit, which is applied when they book; anyone without one can buy a plan that includes this type right in the flow, and new clients enter their details there too.
* Staff bookings bypass the booking windows, slot grid, coach caps, and availability — those rules exist to shape *client* self-booking.
* Booked, canceled, and no-show appointments all land in the [Attendance log](/btwb/admin/scheduling/the-attendance-log.md) on the Appointments tab. Single bookings email the client and the assigned coach; recurring bookings send **no** booking email.
* Manage Appointment Types is also where you rename types or turn them inactive. A type that still has upcoming or recurring appointments can't be turned off, and turning one off removes it from every plan.

***

### Video Walkthrough

{% embed url="<https://www.loom.com/share/c7b66cdb7f2c41699fd1a23c2471aa32?sid=a732570d-ff6c-435a-8baa-0f0fba91eb29>" %}

{% embed url="<https://www.loom.com/share/f34ce90fcb254f69915d8098a27b9873>" %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://btwb.gitbook.io/btwb/admin/scheduling/appointments.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
