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.

  1. 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.
  2. 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.
  3. Add your first clients. In the Clients tab, add each client's name, phone, and session price.
  4. 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).
  5. Apply the template to upcoming weeks. In the Schedule, use Apply template to generate that week's slots and auto-book your recurring clients.
  6. 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

  1. Client opts in to template times on their portal.
  2. A slot is open: created manually/from template, or freed by cancel/change.
  3. You pick a matching client and send an offer (slot locks, default 1 h).
  4. Client opens the WhatsApp link and accepts on the web page.
  5. 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.