Gym Builder Docs gymbuilder.wpdreamers.com
Pro add-on

Personal Session

Sell one-to-one sessions with your trainers. You set the sessions and the times each trainer is free; clients pick a time on your website, pay by card if the session is paid, and get a confirmation email. You, the client and the trainer all see the booking.

Needs Gym Builder 3.0.0+Translated into 7 languagesCard payments with Stripe Payments

What it does

A session is something a trainer offers one person at a time, such as "Personal Training with Sam Rivera, 60 minutes, $45". You give each session the dates and times people can book. Every time can be booked by one client.

Before you start

Install and switch on

  1. Go to Plugins → Add Plugin and click Upload Plugin.
  2. Choose the add-on's zip file, click Install Now, then Activate Plugin.
  3. Enter your license key when asked. If you skip it, the Gym Builder Dashboard shows Personal Sessions → License Key in its menu until the license is active.

Once it is on, the Gym Builder Dashboard gets a Personal Sessions group in its menu with Sessions, Bookings, Reviews and Settings. A small number next to the group tells you how many bookings and reviews are waiting for you.

The Personal Sessions group in the Gym Builder Dashboard menu with Sessions, Bookings, Reviews and Settings
The Personal Sessions group in the Dashboard menu. Reviews is listed while reviews are switched on.

Create sessions and times

Create a session

  1. Go to Gym Builder → Personal Sessions → Sessions and click New session.
  2. Choose the Trainer. If the trainer teaches classes, you can also pick one under Class (optional); the booking form then also appears on that class's page.
  3. Check the Name. It is filled in for you ("Personal session with …"); change it to what clients should see.
  4. Choose the Length: 30, 45, 60, 90 or 120 minutes.
  5. For a paid session, switch on Clients pay for it and enter the Price. The currency is the one in Settings → General.
  6. Add a Description (optional) and click Create session.
The New session window with Trainer, Class, Name, Length, Clients pay for it, Price and Description
Sessions → New session.
i
Paid sessions need Stripe Payments

If you switch on Clients pay for it while Stripe Payments is not set up, the window says so. Until it is, nobody can book that session: when they try, the booking form shows a message asking them to contact you.

The Sessions page lists every session with its trainer, length, price and status: Offered or Paused. Use the search box and the Any status and Any trainer filters to find one. On each line:

The Sessions page listing five sessions with trainer, length, price, status and the Times, Edit, Pause and Delete buttons
Personal Sessions → Sessions.

Add the times people can book

  1. On the Sessions page, click Times next to the session.
  2. Click a day on the Calendar. Days before today cannot be chosen.
  3. Click one of the ready-made times (08:00 to 18:00), or type a time under Add a time and click Add. Each time lasts as long as the session.
  4. Repeat for other days. Days with times are marked green; a day where every time is booked turns orange.

The day panel lists the times on that day. Click the × next to a time to remove it. A booked time shows Booked and cannot be removed; cancel the booking first. The box above the calendar counts the times from today on, and how many are free and booked.

A session's Times page: a month calendar with days marked 2 times, and the day panel for October 27 with 09:00 and 17:00
Sessions → Times. Click a day, then add or remove its times.

Add times for many days at once

  1. On the session's Times page, click Add times for many days.
  2. Under Which days, choose Next 15 days, Next 30 days or Choose dates (a from and to date).
  3. Under Days of the week, click the days to include, or use the shortcuts Weekdays, Weekends, Every day or None.
  4. Pick a day on the Times on … row and click its times. Click Use these times on every chosen day to copy them to the other days.
  5. Click Check them to see every date and time in a list, then click Add … times. When it says how many days are done, click Done.
The Add times for many days window: Next 15 days, Monday to Friday, 09:00 and 17:00 chosen, 20 times on 10 days
Add times for many days: here 09:00 and 17:00 on every weekday for the next 15 days.
✓
Tip

Times are only shown to clients up to the number of days set in People Can Book Up To (30 by default, see Booking). Times further ahead wait until they come into range.

Settings

Go to Gym Builder → Personal Sessions → Settings. Change what you need and click Save Settings at the bottom of the page.

Booking

The Booking card with People Can Book Up To 30 days ahead, Allow Booking Without an Account and Offer Online Sessions
Settings → Personal Sessions → Booking.

After Paying by Card

The After Paying by Card card with the After Paying and If They Cancel Paying page choices
Settings → Personal Sessions → After Paying by Card.

Free bookings never leave the booking form, so these pages are only used for paid sessions.

Emails

The Emails card with Booking Emails and Reminder Before the Session switches
Settings → Personal Sessions → Emails.

Refunds

This card appears once Stripe Payments is set up with its keys.

The Refunds card with Offer a Refund When Cancelling switched on and How Much to Refund set to 100%
Settings → Personal Sessions → Refunds, with refunds switched on.

Reviews

The Reviews card with Let Clients Review Their Trainer switched on and New Reviews set to Wait for you to show them
Settings → Personal Sessions → Reviews.

Google Calendar

The Google Calendar card, not connected, with Google Client ID, Google Client Secret, Address to Give Google, Connect a Google Account and Add Bookings to Google Calendar
Settings → Personal Sessions → Google Calendar, before connecting.

When connected, each confirmed booking becomes an event on the connected Google account's calendar, with the client and the trainer invited. If the booking is cancelled, the event is removed. One Google account is connected for the whole site.

  1. In Google Cloud Console, create an OAuth client. Under APIs & Services → Credentials you find its client ID and secret.
  2. Copy the Address to Give Google (click Copy) and add it to the client as an allowed address to return to.
  3. Paste the Google Client ID and Google Client Secret, and click Save Settings.
  4. Click Connect a Google Account. Google asks you to allow access and brings you back to this page, which then shows Connected as and the account's email.
  5. Switch on Add Bookings to Google Calendar and save. With online sessions on, you can also switch on Add a Google Meet Link to Online Sessions.

Once connected, the card offers Add a Test Event (adds an event and removes it again), lists the last few calendar updates with Worked or Failed, and has Disconnect Google Calendar. After disconnecting, new bookings stop going to the calendar; events already there stay.

Booking Form on a Page

The Booking Form on a Page card with three shortcodes and Copy buttons
Settings → Personal Sessions → Booking Form on a Page.

The three shortcodes you can paste into a page, each with a Copy button. See The booking form on a page.

The booking form on your site

Where the form appears

A trainer's page with the rating summary, a review, and the Book a Personal Session form listing two sessions
A trainer's page: rating and reviews on the left, the booking form on the right.

The booking form on a page

Change 123 or 456 to the trainer's or class's number. You find it in the address bar when you edit the trainer or class (post=123).

How a client books

The form has four steps, listed on its left: Session, Date & Time, Your Info and Confirm. Clients can click back to an earlier step at any time.

  1. Session — they click a trainer, then one of the trainer's sessions. Each shows its length and price ("Free" for a free session).
  2. Date & Time — days with free times are marked with how many are left; full days are marked Full. They click a day, then a time, then Next.
  3. Your Info — members who are logged in see "Logged in as …" and click Next. Others can log in here (Login & Continue) or, if you allow it, click Continue as Guest and enter their name, email and phone (optional).
  4. Confirm — a summary of the booking. For a free session they click Confirm Booking; for a paid one, Proceed to Payment.
Step 1 of the booking form: trainers with their sessions, Sam Rivera opened to show Free Intro Chat and Personal Training
Step 1: pick a trainer, then a session.
Step 2: a month calendar with free days showing how many times are left, and the 09:00 and 17:00 times
Step 2: pick a day and a time.
Step 3 with Continue as Guest chosen: Name, Email and Phone fields
Step 3: log in, or continue as a guest.
Step 4: the Booking Summary for a paid session, Total $45.00 and the Proceed to Payment button
Step 4 for a paid session. A free session shows Confirm Booking instead.

A free booking is confirmed straight away: the form shows "Booking Confirmed!", an Add to Google Calendar button and Book Another Session, and the confirmation email is sent.

Booking Confirmed! with the session, trainer, date and time, Add to Google Calendar and Book Another Session
After a free booking.

How payment works

Personal Session does not take card payments itself. Paid sessions are paid through the Stripe Payments add-on, using the Stripe keys you entered there. You do not enter them again here.

  1. The client clicks Proceed to Payment. The time they chose is held for them for 30 minutes, so nobody else can take it.
  2. They pay on Stripe's secure payment page.
  3. When Stripe tells your site the payment went through, the booking is made and confirmed, and the emails go out. The client lands on your After Paying page.
  4. If they leave without paying, no booking is made and the time becomes free again when the 30 minutes are up.
!
Stripe's webhook must be set up

Your site learns about the payment from Stripe's webhook, which you set up in the Stripe Payments add-on. Without it, clients pay but no booking appears.

If you also use the Offline Payments add-on with session payments switched on, paid sessions are paid offline instead (bank transfer or at the desk): the time is held while you wait for the money, and the booking is made when you approve the payment.

Everyday use

The Bookings page

Go to Gym Builder → Personal Sessions → Bookings. At the top: how many bookings are Coming up, how many are Today, how many were Done this month, and how much was Paid this month: every session paid by card or offline whose payment was confirmed this month, with any refunds taken off. Below is every booking, the most recently made first. Search by name or email, filter by status, or set a From and To date.

The Bookings page with four counters and a list of bookings showing Time passed, Done, Confirmed and Canceled statuses, and Free and Not paid payments
Personal Sessions → Bookings, filtered from October 25.

What the badges mean:

BadgeMeaning
Waiting to confirmThe booking needs you to click Confirm. The button on its line reads Review.
ConfirmedBooked and coming up. Free bookings, paid bookings and bookings you add are confirmed straight away.
DoneThe session took place: you or the trainer marked it as done.
CanceledCancelled by you or the client. The time is free again.
Did not comeThe client did not turn up. You set it with Did not come when you open a confirmed booking.
Time passedA confirmed booking whose time is over but that nobody marked as done.

The Payment column shows Free (a free session), Not paid yet, Not paid (a paid session you added yourself, so no payment was taken), Paid or Refunded.

Open a booking

Click Open on a line. The window shows when it is, its status and payment, the client's name, email and phone, the trainer, whether the reminder has been sent and, for a paid session, its card payments. At the bottom are the buttons for what can be done next:

Booking #96: date and time, Confirmed and Not paid, client, email, trainer, reminder Not sent yet, and the Cancel booking, Did not come and Mark as done buttons
A confirmed booking.
The Cancel this booking? question with No and Yes, cancel it
Cancelling asks you first.
i
Cancel first, then refund

The Refund button only appears once a paid booking is cancelled. Cancelling never refunds by itself, and neither does a client cancelling from their dashboard.

Add a booking yourself

For a booking made by phone or at the desk:

  1. On the Bookings page, click Add a booking.
  2. Choose the Session, click a Day, then one of the free times under Time, such as 09:00 – 10:00.
  3. Under Client, choose New client and enter their name and email (phone is optional), or choose Member with an account and enter the member's account number. That is the "ID" shown on the member's line in Users.
  4. Click Book it. The booking is confirmed and the client and trainer are emailed.
The Add a booking window with a session, a day on the calendar, the 09:00 – 10:00 time and a new client's name and email
Bookings → Add a booking.
i
No payment is taken

A booking you add is not charged. For a paid session its payment shows Not paid; take the money your usual way.

Download bookings

Click Export CSV on the Bookings page. You get a spreadsheet of the bookings that match the search, status and dates you have set (up to 10,000), with the client, phone, trainer, session, date, time, length, amount, status and payment status.

Show or hide reviews

Go to Gym Builder → Personal Sessions → Reviews. The counters show how many reviews are Waiting for you, Shown on the site and Hidden. Filter by status, trainer or number of stars. On each review:

The Reviews page with one 5-star review waiting, and Show, Hide and Delete buttons
Personal Sessions → Reviews.

On the member's page

When you open a member in Gym Builder → Members, a Personal Sessions card shows how many sessions they booked and completed, what they spent, and their next session.

The Personal sessions card on a member's page: Booked 2, Completed 1, Total spend and the next 30-minute session
Members → a member → Personal sessions.

What members see

Logged-in members get a Personal Sessions tab on their Member Dashboard:

A member's dashboard on the Personal Sessions tab with an upcoming session, a completed session and My Trainers with Rate Trainer
Member Dashboard → Personal Sessions.
The Personal Sessions tab on a phone with an upcoming and a past session
The same tab on a phone.

When reviews are on, the "session completed" email has a Rate Your Trainer button. For members it opens their Member Dashboard on the Personal Sessions tab. Guests who booked without an account get a short review form on your site.

What trainers see

Trainers who log in see a Personal Sessions tab on their own dashboard, with their Upcoming Sessions and Past Sessions: the session, date, time, client and status. A Mark as Done button on each confirmed session lets them record that it took place.

A trainer's dashboard on the Personal Sessions tab with two upcoming sessions and Mark as Done buttons, and two past sessions
Trainer dashboard → Personal Sessions.
i
Good to know

When a trainer clicks Mark as Done, the client gets the same "session completed" email, with the review link, as when you click Mark as done on the Bookings page.

Emails

All emails are sent from your site's name and admin email address. The trainer's copies go to the email on their trainer profile, or to their login's email.

EmailWhen, and to whom
Booking ConfirmedTo the client when a booking is confirmed (booked free, paid, confirmed or added by you). Has an Add to Google Calendar button, and a Join Google Meet button when there is a Meet link.
New BookingTo the trainer at the same moment.
Booking CanceledTo the client and the trainer when a booking is cancelled, by you or by the member.
Session CompletedTo the client when you or the trainer mark the session as done, with a Rate Your Trainer button when reviews are on.
ReminderTo the client and the trainer: automatically for confirmed sessions today or tomorrow, or when you click Send a reminder email now.

The first four follow the Booking Emails switch; the automatic reminder follows Reminder Before the Session. Subjects name the session, for example "Booking Confirmed — Personal Training with Sam Rivera".

Questions

Can more than one person book the same time?

No. Every time is for one client. For training in a group, use a class.

Can a client move their booking to another time?

Not by themselves. Cancel the booking and book the new time, either together with them on the booking form or with Add a booking.

Do members need an account to book?

Not if Allow Booking Without an Account is on. Guests enter their name and email. Members who are logged in book with their account, and their sessions then show on their Member Dashboard.

Can I sell a pack of sessions, such as 10 sessions for one price?

No. Each booking is one session, paid on its own.

What happens if a client cancels a paid session?

The time becomes free and the client and trainer are emailed, but no money goes back by itself. If you want to refund them, open the booking on the Bookings page and click Refund (refunds must be switched on).

Two people tried to pay for the same time. What happens?

The first person to click Proceed to Payment holds the time for 30 minutes, so the other cannot pick it. In the rare case the time is lost while the payment is being confirmed, the client's payment is refunded in full automatically.

Which time zone and time format are used?

"Today" is today in your WordPress time zone, so past days and times are never offered. Session times follow the Time Format in Settings → Classes → Timetable & Registration (12-hour or 24-hour).

Can trainers create their own sessions or times?

No. Sessions and times are made by a site administrator in the Gym Builder Dashboard. Trainers see their bookings and can mark sessions as done.

What happens if I delete the add-on?

Switching it off hides the pages and the booking form; everything is there again when you switch it back on. Deleting it from the Plugins page deletes all sessions, times, bookings, reviews and its settings.

If something goes wrong