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

# Classes

> Create one-off or recurring classes, assign instructors, manage capacity, and run check-in and waitlists.

A class is a scheduled group activity with a capacity, optional price, one or more instructors, and an area. Members book against a class occurrence; if the class is full they go on the waitlist. The list page is at **Operations > Classes**; the detail page is where you run attendance, check-in, and waitlist conversion.

## The list page

The classes list has four tabs with live counts: **All**, **Active**, **Cancelled**, and **Completed**. Active is the default. Each tab is paginated and sortable. Multi-select is enabled - pick rows and use the bulk delete action.

Click any row to open the class detail page, or **Add class** to create one.

## Creating a class

The class dialog asks for:

* **Name**, **Description**, **Class type**, and **Sport**. Class types are managed under **Settings > Class types**; the type controls cancel-if-zero-attendance behavior and the revenue account the class books to.
* **Gym** and **Area** - where the class is held. The area selector is filtered to the chosen gym.
* **Instructors** - one or more, picked from your bookable instructors.
* **Date and time** - start and end. Multi-day classes are supported (the detail page formats the range accordingly).
* **Max capacity** - leave blank for unlimited. The class is never "full" while capacity is unlimited.
* **Price** - per booked seat, in your organization's currency. Set to `0` for a free class.
* **Visibility** - **Public**, **Member only**, or **Private**.
* **Recurrence** - turn on to repeat. Pick the pattern (daily, weekly with specific weekdays, monthly) and an end date.

A recurring class is stored as a recurrence with N occurrences. Editing or deleting offers a scope choice: **This instance** or **All future**.

## The class detail page

The header carries the class name, status chips (active/cancelled/completed plus time status), the visibility chip, and the class type chip. The action row exposes **Notify participants** (when the class has bookings), **Edit**, **Cancel**, and **Delete**.

The body is a two-column layout. The left card is **Information**: instructors (linked to their profiles), date and time with duration, gym, area, price, recurrence summary, review rating, sport, and description. If the class has images, a sortable gallery appears below the card.

The right column starts with three capacity tiles: **Max capacity**, **Current attendance**, and **Remaining seats**. Below them is the **Attendance** card with three action buttons:

* **Add check-in** - opens the check-in dialog. Disabled outside the check-in window for roles that can't bypass it (see [Check-in models](/reference/check-in-models)).
* **Add to waitlist** - only enabled when the class is full (capacity set and current bookings >= max).
* **Add booking** - disabled when the class is full.

The attendance grid shows three groups: bookings (non-cancelled), anonymous check-ins (check-ins without a booking), and waitlist entries. The capacity is refetched every minute to keep counts current.

## Cancelling vs deleting

**Cancel** changes the class status to cancelled, leaves the row visible on the Cancelled tab, and notifies booked members. Cancellation refunds follow the cancellation rules on the matching [booking policy](/operations/booking-policies).

**Delete** removes the class. For a recurring class, you choose whether to delete just this instance or all future instances. Deleting fails if the class has bookings - cancel or move them first.

The right-click menu on a class block in the [Schedule](/operations/schedule) page exposes the same cancel and delete actions.

## Waitlist

When a class is full, members can join the waitlist (from the portal) or admins can add them via **Add to waitlist** on the detail page. When a seat opens 2-12 hours before the class, the first person on the waitlist gets a notification with a claim window. The default claim window is 15 minutes and is configurable on the [booking policy](/operations/booking-policies).

Past the claim window, the offer rolls to the next person. Admins can manually move a waitlist entry to a booking from the attendance grid.

## Notify participants

The **Notify participants** action collects the contact IDs of all confirmed bookings and opens the [Compose](/messaging/compose) page pre-populated with the recipients. Use this for last-minute class changes, location swaps, or substitute instructors.

## Party bookings

Members can reserve more than one seat in a class in a single booking - for example, a parent bringing friends along. When booking, they pick how many seats using the **Book for** dropdown (options like "Me", "Me and another person", "Me and 2 others", plus any household members).

Each extra seat becomes a separate guest booking attached to the same order. The booker's own seat keeps its price (including any membership coverage); each guest seat is charged the class drop-in rate. All seats count toward the class capacity.

### Max party size

Party bookings are controlled per class type by **Max party size**, configured in **Settings → Class Types**. It is the maximum number of people a member can reserve for a class at once, including themselves. The in-app help reads: "Maximum people a member can reserve for this class at once, including themselves."

The default is **1**, which effectively turns party bookings off. Raise it to allow members to book additional seats. You can also create a promotion that only applies when a party reaches a minimum size - see [Promotions](/marketing/promotions).

## Related

* [Events](/operations/events) - For one-off ticketed happenings with price tiers, use an event instead of a class.
* [Bookings](/operations/bookings) - Class bookings show up here too.
* [Booking policies](/operations/booking-policies) - Payment timing and refund tiers per class type.
* [Schedule](/operations/schedule) - Classes render as colored blocks on the calendar.
* [Attendance](/members/attendance) - Cross-class attendance history per member.
