Classes & Schedule
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 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 block on your public landing page, so prospects can self-book a trial without an admin creating the enrolment |
→ See Billing Types — Trial Class 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 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 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.
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.
Permanent deletion is blocked if the class has payment records. Archive it instead to keep the data intact.