How PT Bookings works
Weekly scheduling for trainers: 30-minute grid, recurring clients, last-minute fill-ins, client portal, payments, WhatsApp logging.
Getting started (new trainers)
Follow these steps in order the first time you set up your account. Each step builds on the one before it.
- Set up your locations. In Settings → Locations, add every place you train (studio, gym, park, home visits). Every slot must have a location, so nothing else works until you have at least one.
- Build your weekly template. In Settings → Edit weekly template, lay out the slots you offer in a typical week (each with a time and location, on 30-minute steps). This is the backbone of the whole app. Recurring client slots, last-minute preferences, and the Apply template action that fills each week all derive from it — so a well-built template means the rest of your setup is mostly a few clicks.
- Add your first clients. In the Clients tab, add each client's name, phone, and session price.
- Configure each client. Open a client's profile to:
- Enable the locations they can train at.
- Set any recurring slots (these must match template slots at enabled locations).
- Add notes — shared notes appear on the client's portal (e.g. training instructions); private notes are only ever seen by you (e.g. injury reminders).
- Apply the template to upcoming weeks. In the Schedule, use Apply template to generate that week's slots and auto-book your recurring clients.
- Share portal links and go live. Send each client their portal link so they can view, book, and change sessions within your booking window, and opt in to last-minute offers. Optionally add your payment details in Settings so you can send invoices.
The sections below explain each area in more detail.
Basics
- Start and end times must both sit on 30-minute steps (09:00, 09:30, 10:00…). Valid lengths: 30 min, 1 hr, 90 min, etc. — not 45 min.
- Trainers sign in via magic link (/login). Dashboard tabs: Schedule, Clients, Sessions, WhatsApp, Settings.
- Clients use a personal link — no password.
- WhatsApp is a stub: messages are saved in the WhatsApp tab and logged to the server console until you wire a provider.
Schedule
Day or week view on a 30-minute grid. Colours:
- Blue recurring · Dark booked/manual · Green open · Amber open with last-minute matches · Purple locked offer
- Click a booking → trainer session page (
/dashboard/sessions/…). Click an open slot → send offer, allocate, change location, or remove (remove is blocked while an offer is active). - + Add on an empty cell: cell time = start; pick end (30-min step) and location.
- Apply template when the week has no booked sessions — adds missing future template slots and books matching recurring clients.
Clients tab
- Clients tab lists clients. Open a profile to edit price, allowed locations, portal link, recurring slots, upcoming sessions, and History (canceled/voided included).
- Recurring grid: match template slots. Enable the template location first. Amber = another client (read-only). Red notice = fix needed before saving.
Sessions tab
- Upcoming and past lists. Status: Recurring, Manual, Changing, Past, or Voided. Payment: paid/unpaid + invoice sent/not sent. Canceled sessions are hidden — see client History.
- Trainer session page — upcoming: payment, invoice, WhatsApp confirmation, cancel, change on schedule. Past: payment, invoice, or void (past-only, keeps audit trail).
- Cancel frees the slot for rebooking. Void marks a past session as if it did not happen.
Client portal
Home link /c/token; session link /s/token. Clients can view sessions, book/change within your booking window (default: this week and next week), opt in to last-minute slots (green → blue, auto-saved), and cancel/change a session.
- Book/change: open slots at enabled locations in allowed calendar weeks only (this week counts as one).
- Cancel/change blocked inside the deadline (default 36 h before session) — client must contact you.
- Cancel keeps the record and frees the slot. Void is trainer-only on past sessions.
Last-minute offers
- Client opts in to template times on their portal.
- A slot is open: created manually/from template, or freed by cancel/change.
- You pick a matching client and send an offer (slot locks, default 1 h).
- Client opens the WhatsApp link and accepts on the web page.
- If they don't accept, offer someone else or allocate directly.
Offers are never sent automatically.
Settings
- Time zone, schedule hours, default day/week view
- Client booking window: 1, 2, 3, or custom calendar weeks (default 2 = this week and next week)
- Cancel/change deadline (default 36 h), last-minute lock (default 1 h)
- Edit weekly template — + on a cell, set end time and location (30-min steps, e.g. 09:00–10:00). Separate page; no same-day overlaps.
- Locations — required on slots; restrict per client
- Payment details — payee name, bank name, account, sort code for invoice WhatsApp messages
Payments
- Mark paid/unpaid and payment type on the trainer session page. Sessions tab shows payment and invoice status.
- Send/resend invoice via WhatsApp (client price + bank details). Requires client price and payment details; not on inactive sessions.