---
title: Classes & Schedule
slug: classes-and-schedule
docTags: 
createdAt: 2026-03-06T19:27:17.084Z
---

**Classes** define the sessions your academy offers — each with a schedule, location, fee, and enrolled students.

## ✏️ Creating a Class

Go to **Locations**, open the location the class belongs to, then click **Add Class** on the Classes tab and configure:

| Field                        | Notes                                                                                                                                                                                                                                                |
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Class name                   | e.g. "Beginner Yoga – Tuesday"                                                                                                                                                                                                                       |
| Description                  | Shown to members                                                                                                                                                                                                                                     |
| Location                     | Select from your locations                                                                                                                                                                                                                           |
| Category                     | Optional — group classes by type (e.g. Beginners, Advanced). Categories are set up in Location Settings                                                                                                                                              |
| Schedule                     | Day of week and time — or a **day range** (e.g. Monday–Friday for daily classes)                                                                                                                                                                     |
| Instructor                   | Assign an instructor (optional)                                                                                                                                                                                                                      |
| Billing Types for This Class | Check every billing type this class should accept — Monthly Subscription, Per Session, Per Hour, Frequency-Based, Trial Class, Package (Credits). Checking a type reveals its own fee field below it — a class can accept more than one type at once |
| Free class                   | Check **This is a free class** to skip all billing — no invoices, no recurring charges, hidden from payment reports                                                                                                                                  |
| Max capacity                 | Optional — registration closes automatically when the limit is reached                                                                                                                                                                               |

Only billing types enabled tenant-wide (Settings → Billing) appear as options here. When enrolling a student, only the billing types checked for that specific class are offered — this keeps, say, Package from appearing as an option on a class that was never set up to sell packages.

### Free classes

When **This is a free class** is checked:

- All fee and billing type fields are hidden — no billing configuration needed
- No invoices are generated when students enrol
- No monthly/recurring payments are created for this class
- The class is excluded from the monthly payment report and class payment stats
- Students still appear on the attendance roster and can check in as normal

Use this for trial sessions, introductory workshops, staff training classes, or any class that should not generate billing.

### Day range schedule

For classes that run across multiple consecutive days (e.g. Monday to Friday), toggle **Set day range** when creating or editing the class. Select the start day and end day — the schedule displays as "Monday – Friday".

***

## 🏷️ Billing Types per Class

Each class can have a different billing model:

- **Monthly** — students pay a fixed fee each calendar month regardless of attendance
- **Package** — students purchase a block of sessions (e.g. 10 sessions for RM 200)
- **Per Session** — students pay each time they attend
- **Frequency-Based** — fee varies by sessions/week and billing cycle (monthly, quarterly, semi-annual, or annual)
- **Trial** — students try the class before committing to a paid plan
- **Per Hour** — students are billed for actual hours attended each month

→ See [Billing Types](docId\:Y6e9yg3O1AVwe6bjOf6ar) for full details.

### Frequency-Based fee tiers

When a class uses Frequency-Based billing, you configure a **fee tier table** — one row per sessions/week + billing cycle combination:

| Sessions/week | Billing cycle | Fee (RM) | Deposit (RM) |
| ------------- | ------------- | -------- | ------------ |
| 1x            | Monthly       | 80       | —            |
| 2x            | Monthly       | 140      | 50           |
| 2x            | Quarterly     | 390      | 50           |
| 3x            | Monthly       | 180      | 50           |

Each row becomes a selectable tier when enrolling a student. The deposit column is optional and, if set, is collected as part of the enrollment invoice.

**Tier suggestions:** If other classes in the same category already have frequency tiers configured, a **Copy from \[class name]** shortcut appears — click it to pre-fill the tier table from that class.

### Trial class settings

When a class uses Trial billing, extra fields appear on the class form:

| Field                         | What it does                                                                                                                                                                                        |
| ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Trial Fee Override**        | RM amount charged for the trial session(s) on this specific class. Leave empty to use the tenant-wide default trial fee from Settings → Billing                                                     |
| **Max Trial Sessions**        | How many sessions a trial student can attend on this class before converting. Leave empty to use the tenant default                                                                                 |
| **Allow public trial signup** | Makes this class selectable in the [Trial Class Signup](docId\:UcimjEtV0vI1uLSuP_yQD) block on your public landing page, so prospects can self-book a trial without an admin creating the enrolment |

→ See [Billing Types — Trial Class](docId\:Y6e9yg3O1AVwe6bjOf6ar) for the full trial conversion and credit-redemption flow.

### Online sign-up

The **Online sign-up** card on the class form controls whether a class can be chosen by visitors to your public landing page, with no login:

| Setting                              | What it does                                                                                                                                                                                                            |
| ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Allow public enrolment & payment** | Offer this class on [Enrol & Pay](docId\:vUgRNv14UUX9_0_C96TD1) forms — parents pick the class, pay the monthly fee, and are enrolled. Needs Monthly billing and a monthly fee set, otherwise there's nothing to charge |
| **Allow public trial signup**        | Offer this class on [Trial Class Signup](docId\:UcimjEtV0vI1uLSuP_yQD) forms                                                                                                                                            |

To change these for many classes at once, use **Bulk Billing** on the Locations page (the dialog is titled **Bulk Edit Billing & Sign-up**). It shows each class's current billing types and online sign-up state, and each setting cycles through **Enable → Disable → Leave as-is**. Classes are grouped by category within each location. Public enrolment only turns on for classes that offer Monthly billing with a monthly fee — others are skipped and reported. Turning Monthly billing off also turns public enrolment off.

***

## 🔧 Managing Enrolments

From a class page, you can:

- View all enrolled students with payment status for the current month
- **Enrol an existing student** — click **Enrol Student** to search for any student already in the system and enrol them directly from the class page (select billing type, fee, and billing cycle without leaving the class view)
- **Add a new student** — click **+ Add Student** on the Students tab to create a new student profile and automatically enrol them in the class in one step
- Remove a student from the class

***

## 📊 Class Payment Stats

The class overview shows a payment health summary for all enrolled students:

- How many are up to date
- How many are pending (not yet due)
- How many are overdue

This gives you a quick snapshot before each session.

***

## 🔗 QR Code Check-In

Each class has a unique **QR code**. Display it at the venue — students scan it on their phone to mark attendance automatically.

To get the QR code: open the class → click **QR Code**.

***

## 📋 Cloning a Class

**Clone Class** creates a copy of an existing class with all its settings — useful when you want to run the same class at a different time, location, or with slightly different fees.

From the Locations page, find the class you want to copy and click **⋯ → Clone Class**.

The clone dialog pre-fills:

- Class name (with "Clone of" prefix — edit as needed)
- Location, schedule, billing type, capacity, and instructor — all editable
- Frequency-Based fee tiers — copied from the source class, editable
- Per-class enrollment fees — copied amounts, editable before saving

Students are **not** transferred — you enrol them separately in the new class.

***

## 📅 Class Start & Expiry Dates

Classes can be given a **start date** and/or an **expiry date** — useful for term-based programmes, holiday workshops, or any class that runs for a fixed period.

Toggle **Set start / expiry dates** when creating or editing a class to reveal the date fields:

| Field           | Behaviour                                                  |
| --------------- | ---------------------------------------------------------- |
| **Start Date**  | Class is inactive (hidden from enrollment) until this date |
| **Expiry Date** | Class is automatically archived on this date               |

Both fields are optional — leave either blank if not needed.

:::hint{type="info"}
Classes with an expiry date are automatically archived overnight by the system when the date passes. Enrolled students and payment history are preserved.
:::

***

## ⚙️ Editing a Class

You can update class details at any time. Changes to fees take effect from the next billing cycle — existing payments are not affected.

***

## 🗂️ Archiving, Restoring & Deleting a Class

### Class statuses on the Locations page

Classes on the Locations page are grouped by status:

| Tab          | What it shows                                                                                                                                                                    |
| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Active**   | Running classes                                                                                                                                                                  |
| **Upcoming** | Classes with a start date in the future                                                                                                                                          |
| **Expired**  | Classes past their expiry date. When a class expires, its active enrolments are completed automatically from that point on, so students aren't billed for a class that has ended |
| **Archived** | Manually archived classes                                                                                                                                                        |

### Archiving a class

When a class ends, archive it to remove it from the active list. From the class card, click **⋯ → Archive**. All student enrolments and payment history are fully preserved — you can restore it anytime.

### Restoring an archived class

From the **Archived** tab on the Locations page, click **Restore** on the class card to return it to active status.

### Deleting a class permanently

Archived classes can be permanently deleted. Click **⋯ → Delete Permanently** on an archived class.

:::hint{type="danger"}
Permanent deletion is blocked if the class has payment records. Archive it instead to keep the data intact.
:::
