Total CMS extension

Relay Queue extension

Class, event and accommodation bookings for Total CMS, with capacity, a waitlist, approvals and automatic emails, all inside your own admin. Free to use, with Pro for Stripe payments and more.

What it does

Bookings for classes, events and accommodation

Take bookings straight from your Total CMS website, keep an eye on capacity, and let Relay Queue handle the emails.

Relay Queue works two ways. For classes and events, you create a session with a fixed number of spots and visitors book one or more of them. For accommodation and anything else booked by date range, you set how many identical units you have (rooms, cabins, equipment) and visitors pick their own check-in and check-out dates.

Every booking is held as pending until you approve it. When a session is full, new bookings go to a waitlist instead of being turned away. Customers get an email when they book, when you confirm them, and a reminder before the day. If a booking can't be accepted, for example because bookings have closed, they're told why. Put the booking form on any page: a ready-made booking page, a Site Builder block, or a shortcode in your content.

With Pro, take payment by Stripe when people book (full price or a deposit), give customers their own page to add the booking to their calendar or cancel it, and let the waitlist move up on its own.

Everything lives in your own Total CMS admin. There are no outside booking services and no monthly fees.

Get Pro
See it in action

Every booking at a glance.

Sessions, spots left, pending requests and waitlists in one place. Confirm a booking and the customer is emailed automatically.

The Relay Queue overview: upcoming sessions with capacity bars and the bookings waiting to be confirmed.
The Relay Queue overview: upcoming sessions with capacity bars and the bookings waiting to be confirmed.
Free

Everything a small booking system needs

Classes & events

Capacity, handled

Set the spots per session and the most one booking can take. Pending and confirmed bookings count against it, and the booking page shows how many spots are left.

Accommodation

Date-range bookings

N identical units, checked night by night across the dates a guest picks. Minimum and maximum stays are supported.

Control

You approve every booking

New bookings wait as pending. Change a booking's status right on the Relay Queue page and the customer is emailed automatically.

Fairness

Waitlist & first come, first served

Full sessions take waitlist bookings. When several bookings arrive together, the earliest gets the spot.

Notifications

Emails through your own Mailer

Booking received, confirmed, cancelled, couldn't accept, and a reminder before the session. Setup creates the templates in your business name and colours.

Site Builder

The form on any page

A ready-made booking page, a Page Block, a Twig function, or a [booking-form] shortcode in any content area. One-click setup and one-click updates.

Free & Pro

Start free, go Pro

Pay once, use it on every site you build, for every 1.x release. No subscription. Prices in Australian dollars.

Relay Queue

Free
  • Classes, events and accommodation
  • Capacity, approvals and a waitlist
  • Customer emails and reminders
  • The booking form on any page
  • One-click setup and updates

Pro Bundle

$69.00
  • Pro for Pixel Plan, Byte Checkup and Relay Queue
  • Plus Cookie Club Pro when it's released
  • One key unlocks all four
  • Save $21.85 on buying the three separately
  • Unlimited sites, every 1.x release
  • One-off payment, AUD
Buy the bundle
Pro licences

How Pro works

Every extension is free to download and use. A Pro licence switches on the extra features. You pay once, there's no subscription.

How many sites can I use it on?
As many as you like. One licence covers every site you build or look after, with no per-site fee.
How long does a licence last?
A licence covers every release of the major version you buy: a 1.x licence covers 1.0 right through to 1.99, and it never expires. A future 2.0 would be a new licence, and your 1.x sites keep their Pro features either way.
How do I get my licence key?
After you pay, we email your licence key within one business day. Paste it into the extension's settings in Total CMS (Settings → Extensions → the extension → Licence key) and Pro switches on straight away.
Does it send anything from my site?
No. The key is checked on your own site against our signature, so nothing about your site is sent anywhere and Pro keeps working offline. The only outside request is the optional update check, which sends no site data.
What's in the Pro Bundle?
Pro for all four extensions, Pixel Plan, Byte Checkup, Relay Queue and Cookie Club, with one key that unlocks them all, for less than buying them separately. Cookie Club Pro is coming soon: bundle keys, including ones already bought, will switch it on when it's released.
Can I get a refund?
Every extension has a free version, so please try it before you buy. We don't offer refunds if you change your mind or buy the wrong licence. This doesn't affect your rights under Australian Consumer Law: if Pro doesn't work as described, contact us and we'll put it right.
Requirements

What you'll need

Relay Queue needs the Pro edition of Total CMS, because it adds its own schemas and Total CMS only loads extension schemas on Pro. It also needs Total CMS's automations cron job running (php bin/tcms automations:process), since that's what sends the emails and reminders. Its Setup page creates the collections and email templates for you and checks the cron job. Stripe payments (Pro) need your own Stripe account; Setup walks you through connecting it.

3.5+
Total CMS Pro
8.2+
PHP
Cron
Automations

For emails and reminders

Mailer
Email templates

Created for you by Setup

Release notes

Latest releases

v1.1.0

23 October 2026 · minor · Requires Total CMS 3.5.0+

A calendar of your sessions in the admin, and a calendar layout for the booking page.

Added

  • A Calendar page (the new Calendar tile on the Relay Queue page): a month or week of your classes and events, each with its time, a fill bar and how many spots are taken, coloured open, nearly full, full, closed or past, or draft, with +N waitlist and Overbooked flags. Click a session to see its bookings. On a phone it becomes a list of the days with something on
  • A calendar layout for the booking page: relay_queue_form({layout: 'calendar'}) or [booking-form layout="calendar"] shows open sessions on a month calendar instead of cards, with the spots left; clicking one picks it in the form. Accommodation stays as cards below it. Cards remain the default
  • New setting: Calendar weeks start on (Monday or Sunday)

v1.0.7

21 October 2026 · patch · Requires Total CMS 3.5.0+

Relay Queue now states that it needs the Pro edition of Total CMS.

Fixed

  • Relay Queue installed on the Standard and Lite editions but couldn't work there: it ships its own schemas, which Total CMS only loads on Pro, so Setup reported them missing. The extension now declares that it needs Pro, so Total CMS shows the requirement on the Extensions page. Nothing changes on Pro sites

v1.0.6

19 October 2026 · patch · Requires Total CMS 3.5.0+

The Relay Queue admin pages now fit on a phone, with every booking's details on screen.

Fixed

  • The Relay Queue page ran off the side of a phone, and on phones the bookings tables hid each booking's contact details and booked time. Up to about 640px wide, each booking is now a card showing everything: name and notes, email and phone, spots (or dates and units), the status picker, when it was booked, and the Open and Customer page links. Wider screens keep the table
  • The Setup page ran off the side of a phone: long lines (your webhook address, the Stripe event names, the code to paste into your templates) now wrap
Show 6 older releases

v1.0.5

11 October 2026 · patch · Requires Total CMS 3.5.0+

Setup now works on a brand-new Total CMS site.

Fixed

  • Setup failed on a new Total CMS site: a fresh install has no Mailer collection until someone opens Admin → Mailer, so Setup stopped with "Nothing was changed. Collection for Schema not found: mailer". Setup now creates the Mailer collection first, the way the Mailer page does.

v1.0.4

10 October 2026 · patch · Requires Total CMS 3.5.0+

Longer time-to-pay works, you're told when a customer cancels (with a refund reminder for paid bookings), and new bookings are checked exactly once.

Added

  • Setting "Paid bookings: cancelling": customers can cancel a paid booking online (default) or are asked to contact you.

Fixed

  • More than 24 hours to pay after moving up from the waitlist broke Pay now: Stripe refused the checkout and the customer saw "payment failed". A checkout now lasts up to 24 hours while the booking keeps its longer pay-by time, and Pay now opens a fresh one if needed. Nobody was told when a customer cancelled a paid booking: cancelling online now emails you, and for a paid booking the email and admin note say how much was paid and to refund it in Stripe. A new booking could be checked twice, or not at all if it couldn't be read the first time: the check is now recorded only after the booking is read, under a file lock, and the hourly run checks any booking from the last 48 hours that was missed.

v1.0.3

10 October 2026 · patch · Requires Total CMS 3.5.0+

Bookings you add in the admin keep what you enter, and slow bank payments can no longer cancel a paid booking.

Changed

  • The Stripe webhook steps list four events: add checkout.session.async_payment_succeeded and checkout.session.async_payment_failed to your existing webhook.

Fixed

  • Bookings you add in the admin were treated like public ones: a phone or walk-in booking had its spots cut to "Max per booking", its status reset, and on a session that takes payment it was put on a payment hold, then cancelled with a "couldn't accept" email. Relay Queue now notes, while the booking is saved, that staff added it (logged in, allowed to edit bookings, saving from an admin page) and keeps it exactly as entered; the customer gets the email for its status. Trying the public booking form while logged in still gets the public checks. This needs the new Event listeners permission (Relay Queue's page reminds you until it's on). Also fixed: a payment that takes days to clear (a bank debit) could take the money and cancel the booking. Checkout now offers cards only (Apple Pay and Google Pay still work); if a delayed payment ever comes through, the place is held for 7 days, Pay now won't start a second payment, and Stripe's "payment cleared" confirms it and "payment failed" frees the place.

v1.0.2

9 October 2026 · patch · Requires Total CMS 3.5.0+

Step-by-step install instructions (INSTALL.md) in the download.

Added

  • INSTALL.md: step-by-step install instructions in the zip. Where the folder goes (tcms-data/extensions/speedyweb/relay-queue/, creating the extensions and speedyweb folders if they aren't there), the common folder mistakes, switching it on, running Setup, updating by hand, and what to check if it doesn't show up.

Changed

  • SETUP.md's install steps point to INSTALL.md, say that Relay Queue needs Total CMS Pro, and list Public routes among the permissions to approve. No code changes.

v1.0.1

3 October 2026 · patch · Requires Total CMS 3.5.0+

Relay Queue now tells you when a session should take payment but can't, and the Setup page walks you through connecting Stripe.

Added

  • A warning on the Relay Queue page when a session is set to take payment but payments are off. It names the sessions and the reason: no Pro licence, no Stripe secret key, the wrong kind of key (a publishable pk_ key, or the whsec_ webhook secret in the secret key field), or Public routes switched off
  • Stripe step by step on the Setup page: sandbox (test mode), secret key, webhook destination and its two events, signing secret, Public routes, test cards and going live. The webhook address shows straight away, before any key is entered

Changed

  • The Setup page's Payments row always shows. Without Pro it says payments are a Pro feature, and a key that isn't a secret key gets a plain reason
  • SETUP.md's Stripe section follows Stripe's current dashboard (Sandboxes, Add destination)

Fixed

  • Sessions set to take payment were quietly booked without payment when Stripe wasn't set up correctly, with nothing to say why

v1.0.0

3 October 2026 · major · Requires Total CMS 3.5.0+

Relay Queue is the new name for Class & Event Bookings: the same bookings, waitlist and Stripe payments, as a new extension.

Added

  • Everything from Bookings 1.11.4: class/event sessions and accommodation, the waitlist, emails and reminders, the booking form on any page (function, shortcode, block), and with Pro: repeating sessions, attendee lists, CSV export, waitlist auto-promotion, manage-booking and calendar links, and Stripe payments

Changed

  • New name and id: Relay Queue (speedyweb/relay-queue), so it can't clash with another vendor's "bookings" folder. Admin pages are under ext/speedyweb/relay-queue/ and public routes under /api/ext/speedyweb/relay-queue/ (update your Stripe webhook URL). Twig functions are now relay_queue_form(), relay_queue_embed() and so on. The template namespace is @speedyweb-relay-queue. Schemas are relay-queue-session and relay-queue-booking. Collection ids and the [booking-form] shortcode are unchanged
Upgrade notes

Moving from Bookings: remove Bookings and its two collections, delete the booking-admin-notice email template, install Relay Queue, re-enter the settings, run Setup, point the Stripe webhook at the new address and update your templates to the new function names. Pro keys issued for Bookings or the bundle keep working.

What our clients say

Let's get your business moving.

Tell us about your business and what your current site isn't doing for you. First consultation's free.

Get a free consultation
Call us