Group Booking for Classes and Workshops: Classroom Events
Almost every scheduling tool assumes one client per time slot. That is the wrong shape for a yoga class, a language course, a workshop or a group coaching call. Classroom events flip it: one session, many seats — and each attendee keeps their own confirmation, their own payment and their own cancellation.
Why one-on-one booking breaks for classes and workshops
A normal booking link is a lock: someone takes 18:00 on Tuesday, and 18:00 on Tuesday disappears for everyone else. That is exactly right for a consultation and exactly wrong for a class, where the same hour is supposed to hold ten people.
The usual workarounds are all bad in their own way. A shared form gives you a spreadsheet and no payments. A ticketing platform gives you payments but treats your recurring Tuesday class as a string of unrelated events. Publishing ten identical slots gives your students ten confusing links and you a capacity you have to count by hand. And every one of them means the calendar, the money and the attendee list live in three different places.
The fix: keep one session with a seat limit, and let the seats — not the slot — be what gets booked.
How Classroom events work
Every event you create in BooknTalk now picks a type. One-on-one is the classic behaviour: one client per time slot, and the slot disappears once it is booked. Classroom means many attendees on the same time slot, up to a seat limit you set. Everything else — your availability, durations, time-offs, your booking page — works the way it already did.
- The slot stays open. A classroom session remains on your booking page while it has room and sign-ups are open.
- Each registration is a person, not a booking. Name, email, phone and whatever they wrote in the notes are stored per attendee, with their own status.
- One calendar event, many guests. The first registration creates the Google Calendar event for the session; every attendee after that is added as a guest to the same event, so you get one line in your calendar rather than ten.
- Emails go out per attendee. Confirmation on registration, reminders before the session, and the post-session feedback request — each person gets their own, and your team members are notified as usual.
- Full is not closed. When the last seat goes, the session stops accepting registrations but stays visible. If someone cancels, the freed seat becomes bookable again on its own — no re-opening, no re-publishing.
Setting one up
In the event editor, switch the type to Classroom. Four settings appear, and they are the whole configuration surface:
| Setting | What it does |
|---|---|
| Seats per session | How many people fit in one session. The count shown on your booking page comes from this. |
| Sign-ups close | How long before the start registration stops — so nobody joins a class five minutes in. Everyone already registered keeps their seat. |
| Let attendees cancel their own seat | Off by default. On, the confirmation email carries a cancellation link, and a paid seat is refunded in full automatically. |
| Cancellation deadline | How many hours before the start that link keeps working (24 by default). Past it, only you can cancel the seat. |
Existing one-on-one events are untouched — the type is per event, so you can run private consultations and a Thursday workshop from the same booking page, on the same calendar.
Paid classes: every seat pays for itself
A classroom event can carry a price like any other event. What changes is that the money is per seat, not per session: each registration opens its own Stripe checkout and creates its own payment. That is the detail that makes group payments survive contact with reality — one attendee's refund, chargeback or failed card never touches anyone else in the class.
If someone starts checkout and never finishes, their seat is held while they pay and released automatically if the payment does not complete, so an abandoned tab does not quietly cost you a place in the room.
What it costs: a flat €1 per paid registration through Stripe Connect — not a percentage of your class price, and no subscription. A €15 seat and a €150 seat cost the same €1. Free classes cost nothing at all, however many people register. See pricing for the full picture.
Cancellations and refunds, from both sides
There are two doors to a seat, and they do the same thing:
- The attendee's door — the cancellation link in their confirmation email, if you enabled self-cancellation. It works until your deadline and then stops.
- Your door — Cancel & refund next to any attendee in your backoffice, with no deadline. Useful when someone emails you the night before, or when you need to trim a class.
Either way, a paid seat is refunded in full — and because Stripe returns the platform fee on a refund, the €1 comes back too. The attendee is removed from the calendar event, gets a cancellation email, and the seat goes back on sale.
Running the session
In your bookings list, a classroom session is a single row — the session, the time, and how many of the seats are taken. Expand it and you get the attendee table: who registered, their contact details, whether they paid, and a per-seat cancel action. It is the class register you would otherwise be keeping in a spreadsheet, next to the booking that produced it.
Who group booking is for
Classroom events fit any session where the room, not the hour, is what runs out:
- Yoga, pilates and fitness studios — recurring weekly classes with a fixed mat count.
- Language schools and tutors — small-group lessons alongside private ones, on the same page.
- Workshops and masterclasses — one-off paid sessions where you need registrations and money in the same place.
- Group coaching and cohort programmes — a fixed circle that books each week's call.
- Webinars and online seminars — a Google Meet link generated once, guests added as they register.
- Tours, tastings and demos — a capped group at a fixed start time.
What it does not do yet
Worth knowing before you move a live class over:
- No waitlist. When a session fills, there is no queue to join — freed seats simply go back on sale.
- Google only. Calendar sync and meeting links are Google Calendar and Google Meet; there is no Outlook or Zoom integration.
- Stripe only for payments.
- Seats are per session, not per course — attendees register for a date, not for a ten-week block sold as one package.
- No seat transfer between attendees; a wrong registration is cancelled and re-made.
Frequently asked questions
What is group booking software?
Group booking software lets several people register for the same time slot instead of one client taking the whole slot. Each attendee gets their own confirmation, payment and cancellation, while you run one session.
How do I take bookings for a class with limited seats?
Set the event type to Classroom and enter the seats per session. The slot stays on your booking page until the seats are gone or sign-ups close, and it shows how many places are left.
Can attendees pay individually for a group session?
Yes. Each registration creates its own Stripe checkout and its own payment, so attendees pay for their own seat and can be refunded individually without touching anyone else in the class.
What happens when a class is full?
The session stops accepting registrations but stays visible until sign-ups close. If someone cancels, the freed seat becomes bookable again automatically. There is no waitlist yet.
Can attendees cancel their own seat and get refunded?
Only if you switch it on. Their confirmation email then carries a cancellation link that works until the deadline you set — 24 hours before the start by default. A paid seat is refunded in full, automatically.
How much does BooknTalk charge for group bookings?
A flat €1 per paid registration through Stripe Connect — no subscription, and no percentage of your class price. Free classes cost nothing, whatever the number of attendees.
Read next
Put your first class on a booking page
Create an event, switch it to Classroom, set the seats. Free classes stay free forever — we only earn €1 when you get paid.
Start for freeNo credit card required.