> ## 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.

# Schedule

> The unified day/week calendar that drives bookings, classes, instructor time off, and check-in.

The schedule is the operations hub. It pulls classes, bookings, and instructor time off for the visible date range and renders them as colored blocks across resource columns. Most reservations and check-ins start here.

Open it via the **Schedule** menu in the admin, or the **Operations > Schedule** route.

## Layout

The calendar has two view types saved per browser: **Day** and **Week**.

**Day view** is a vertical time grid with one column per resource, grouped left-to-right by type: class-type columns first, then a fallback "Classes" column, then instructor columns A-Z, then area columns grouped by area type. The time axis is built from your organization's operating hours, in 30-minute increments.

**Week view** is a horizontal grid with days as columns. Resources are merged - you see all activities for the week, not one column per resource - because the day-column layout would be unreadably wide.

The mini calendar on the left navigates dates; the **Today** button returns to today. The selected date is pushed to the URL as `?date=YYYY-MM-DD` so you can share a link to a specific day.

## Resources and what shows up where

The schedule reads three live data sources for the visible range:

* **Classes** - shown as blocks on their class-type column (or the fallback "Classes" column for classes without a type). Each class with assigned instructors also produces a mirror "teaching" block on each instructor's column in day view, so the instructor reads as busy.
* **Bookings** - shown on the area column if they have an area, on the instructor column if they have an instructor (both, if they have both), or on the relevant class-type column if they're class-bound. Class-bound bookings are suppressed in week view because the class itself already represents them.
* **Instructor time off** - shown as grey blocks on the instructor's column.

Live [events](/operations/events) also render on the calendar as read-only cards: single-day events at a gym appear in their areas' lanes (or under their instructors when no areas are assigned), while multi-day and organization-wide events appear as chips in a banner above the grid. Event cards link to the event detail page and don't reserve the area they're shown in.

Active areas (`status=active`) and bookable instructors (`isBookable=true`) are the only ones included. Inactive or non-bookable resources don't get a column.

## Filtering what you see

The **Resource filter panel** in the calendar header lets you toggle individual resources on or off. Your overrides are saved per view (day vs week) in browser storage.

The organization-level defaults for what's hidden come from **Settings > Operations > Schedule display**, which lets you hide entire class types, instructor types, or area types, plus a flag for uncategorized instructors and areas. The toggle in the filter panel layers on top of these defaults: if you flip a resource to a state that matches the default, the override drops so future settings changes still take effect.

## Coloring

Two coloring modes can be toggled under **Settings > Operations > Schedule coloring**:

* **Staff coloring** - when on, blocks take the profile color of the user who created the booking. When off, blocks use the resource's configured color (or a hash of the resource name as a fallback).
* **Source coloring** - when on, a second border color is added that encodes the booking **source** (admin, portal, website, kiosk, etc.). Source colors are configurable on the same settings page.

## Creating activities

Click an empty time slot to open the create dialog. The dialog is pre-filled based on which column you clicked:

* Click a class-type column to open the class dialog with the class type and time range pre-set.
* Click an area column to open the booking dialog with the area and time range pre-set.
* Click an instructor column to open the booking dialog with the instructor and time range pre-set.

You can drag-select multiple consecutive slots to extend the duration before the dialog opens.

In **week view**, clicking a slot opens a small menu instead of a dialog so you can pick between **Add booking**, **Add class**, or **Add time off** (the last option is shown only on instructor columns).

The header has an **Add** button that opens a menu with **Booking**, **Class**, and **Check-in** options, plus an overflow menu linking to the [Bookings](/operations/bookings) list, [Classes](/operations/classes) list, [Attendance](/members/attendance), and the schedule display settings.

## Acting on existing blocks

Click a block to open the matching dialog: bookings open the booking dialog, classes default to the add-booking flow for that class (so the most common case - someone wants to book into the class - is one click), time-off entries open the time-off dialog.

Right-click a block (or use the mobile tap menu) for the full set of actions: **View** (open the detail page), **Edit**, **Cancel**, **Delete**, **Add check-in**, **Add payment**, **Add booking** (for classes), and **Notify participants**.

**Add payment** is smart about split balances: if the booking has one outstanding transaction, you get a single-transaction payment dialog with an editable amount. If it has multiple, the amount is locked to the full sum and the server settles them atomically. See [Bookings](/operations/bookings) for the full story.

## Duplicating a class

To copy a class to another time without reopening the class dialog, hold **Option** (Mac) or **Alt** (Windows) and drag the class block to a new slot, then release.

While you drag with the key held, the calendar shows that you are copying rather than moving: the cursor becomes a copy cursor, the source block gets a green outline and a small copy badge, and the target slots highlight in green. Let go of the key mid-drag to fall back to a normal move.

The result is a single one-off class at the drop time. It keeps the original's name, description, instructors, area, capacity, price, visibility, color, and class type, but never its recurrence, and it starts with no bookings or check-ins. The copy appears the instant you drop it, and a **Class duplicated** toast offers an **Undo** action that removes it again.

The gesture works with a mouse and keyboard and applies to classes only - bookings and time-off blocks keep their normal drag-to-reschedule behavior. A dismissible hint in the calendar header points it out until you close it.

## Bookings created with a member pre-selected

If you arrive at the schedule from a member profile with **Book a slot**, the URL carries `?contactId=X`. A toast prompts you to pick a slot, and every booking dialog you open from a slot click is pre-filled with that contact.

## Instructor-only and mixed-role views

Instructor-only accounts see a streamlined **My teaching schedule** view that hides resources they don't own. Mixed-role accounts (instructor + manager or admin) can open either the full **Operations > Schedule** page (described above) or their personal **My teaching schedule** through the instructor menu in the sidebar.

## Related

* [Bookings](/operations/bookings) - The list view and detail page for reservations.
* [Classes](/operations/classes) - Class creation, capacity, and attendance.
* [Events](/operations/events) - One-off ticketed events that render as read-only cards.
* [Booking policies](/operations/booking-policies) - Rules that govern payment timing and cancellation.
* [Check-in models](/reference/check-in-models) - Entrance flow your front desk should follow.
