Build the timetable once. Drop it on a countdown.
A program holds the format — 1:1 or group, the age limits, the spot naming, whether members pick a position or just turn up. Every class you build starts from one, and the program decides what the class form even asks you for. Nothing reaches your website until you attach it to a scheduler and set the moment it drops.
- Draft → scheduled → live
- Countdown to the drop
- List or calendar
Class management — every session with its trainer, its fill, its waitlist cap and the state it is published in.
The blueprint, and everything that comes out of it.
Most studio software treats a class as a row in a calendar. That is why the same handful of details get retyped every term — the age limit, the capacity, the spot naming, whether members pick a bike or just turn up.
Fitnez Studios puts a training program above the calendar. The program carries the format; a class is an instance of it on a day, at a time, with a trainer. Pick the program and the class form changes shape around it. Then nothing goes live one class at a time — you gather the drafts into a scheduler and the whole term drops on a countdown.
One format, many classes
Reusable 1:1 and group programs, each carrying its own age limits, spot naming and floor-plan requirement.
The program shapes the class form
A group program that needs a floor plan asks you to pick one and takes its capacity from the seats. One without asks for a number. A 1:1 asks for neither.
Nothing goes live by accident
A draft is only published by being attached to a scheduler with a drop time — so the term appears on your site the minute you chose, not the minute you saved.
What you actually get.
Six things that ship with the scheduling module — not a roadmap, not a tier.
Programs as the blueprint
Define a format once — 1:1 or group, its age limits, its spot naming, whether it needs a floor plan — and build against it all year.
A scheduler with a countdown
Gather your drafts, name the drop and set its date. The list shows what's queued, how many classes it carries and how long until it goes live. Publish it early, pause it, or pull it.
Duplicate a class into five dates
Pick the new days in one pass. Each is checked against that trainer's diary and any clash names the class already in the slot before you commit.
Draw the room, don't count it
A seat-by-seat floor plan per program — rows, curvature, the instructor's platform or screen, seats named A1, S1 or 1 the way your team calls them out.
The term as a list or a calendar
Filter by draft, upcoming, past or scheduled, then refine by trainer, program or who may book — or drag out a slot on the calendar to start a class right there.
Capacity you can see filling
Booked-against-capacity with a fill bar on every row and every calendar event, with the waitlist cap beside it, so a class going full is visible days out.
Draw the room the way it really is.
A cycling studio is not a number, it is a back row of six and a front row of four curving toward the instructor. Draw it once against the program and every class that uses it books by position instead of by headcount.
A real canvas, not a seat count — a grid you size, seats you place and colour, row curvature, and the instructor's bike, podium or screen — flat or curved — placed where it actually stands.
Your own naming — row-and-column (A1), your own prefix (S1) or plain numbers, and any seat renamed by hand.
Live at the desk — on the day, the same plan shows every seat as free, booked, checked in, a no-show or promoted off the waitlist, with the member's name on it. Cancel, check someone in, or swap two members between seats without leaving the map.
The day organises itself.
Publishing is not the end of the job — it is the point at which the schedule starts reporting back. The dashboard is the screen your manager opens at six in the morning, and it is built from the classes you just scheduled.
Today's classes with their fill — every session down the day with its time, its trainer and its booked-against-capacity, marked upcoming, running or done.
Alerts that name the number — pending approvals, how many are waiting and how many members are active, beside a live feed of what your team just changed.
The classes that need selling — tomorrow's half-empty sessions listed with their occupancy, next to the members sitting on a waitlist and the packages about to expire.
The timetable is what a challenge is scored on.
A challenge is scored against the bookings your timetable already produces: book ten of a given program, or ten inside a time window, and the reward fires. So a 30-day 6am reformer challenge is built out of classes you were running anyway rather than in a bolted-on module — and the reward lands in the wallet and package ledger the rest of the studio runs on, which is what makes a comp a tracked credit instead of a favour.
From an empty studio to a published term.
Three moves. The first is the only one you do more than once a year.
Define the program
Name the format, pick 1:1 or group, set its age limits and what a spot is called — then draw its floor plan if members pick a position.
Build the term
Drag out a slot on the calendar or add classes from the list, and duplicate the ones that repeat across up to five dates at a time, each checked against the trainer.
Set the drop
Gather the drafts into a scheduler, name it, and choose when it goes live. Watch the countdown, or publish it early. From there capacity, waitlists and check-ins run themselves.
The rest of the scheduling screen.
See your own timetable in it.
Bring your current schedule to the call. We will build a week of it in front of you and you can decide from there.
30 minutes, no slide deck, and we migrate the rest if you switch.

