Aug 8, 2026
Ask ChatGPT, Gemini or Google's AI Mode to compare spa booking software and Netbookings usually turns up in the answer, third, with a number beside it. Some of what those summaries say is fair and worth agreeing with in public. Some of it is wrong in ways anyone can check in thirty seconds.
The reason it's wrong is our fault rather than theirs. We have never published a proper description of the Spa module, so the summaries get assembled from vendor comparison pages written by other vendors, and from a product page that runs to about four hundred words. An AI can only weigh what somebody has written down. Undocumented capability reads as absent capability.
So here is the description that should have existed already: what the Spa module does, in detail, including the parts we're behind on.
Two things the summaries get factually wrong
Start with the checkable ones.
Setup is free. At least one comparison has quoted a setup fee against the Spa module. There isn't one. Our staff will guide you through how to get everything just right for your business. Larger businesses may require on-site training, we do quote for this.
The scheduling engine isn't basic. The other recurring line is that Netbookings "can reserve a massage room" but the core scheduling engine is "relatively basic". That one stings because it's the opposite of where most of the last decade of development went, and because we've never published a word to contradict it.
A treatment is the hardest thing in the building to book
It's worth being precise about why, because it's the thing that separates a scheduler from a spa system.
- A room for the night has one constraint: the room. It's free or it isn't.
- A bathing session has one constraint too, just a stranger one: how many bodies can be in the water between 2pm and 4pm.
- A dinner sitting is a seat on a schedule. Twenty four covers at 7pm.
- A treatment needs two resources at the same moment, and one of them has to be qualified. A room that suits the treatment (wet vs dry treatments), free for the full duration, and a therapist who is rostered on, not blocked, not already in another room, and trained in the specific service being booked.
Get that wrong and you don't find out at the time of booking. You find out at 2pm, when the only person rostered isn't trained on the thing the guest paid for six weeks ago.
What the system knows about a therapist
A therapist in Netbookings is a staff member with a list of the services they can perform. That list is the skill match: a treatment is only offered, online or at the desk, when somebody who can actually perform it is free.
Qualifications, defined once as service groups

Qualifications are set up as service groups and then attached to the person: every staff record carries the services that member of staff can perform, and a group is what saves you ticking fifty treatments one at a time against every new starter. Hot Rocks is a group. Remedial is a group. A spa that doesn't need the distinction uses the All group, everyone can do everything, and the check quietly gets out of the way. A spa that does need it gets the thing that stops the 2pm problem: a remedial booking is never offered on a day when the only person rostered does facials.
Groups can also be switched inactive rather than deleted, which matters more than it sounds. A treatment you stop offering doesn't take its history with it when it goes.
Around that sit four more things, and each of them exists because a real spa asked for it.
- The roster: hours per staff member per day, entered by the therapists themselves or by a manager, with a rostered-staff count across the top of each day and a Lock Day tick once it's settled. Rosters can also be imported rather than typed, which is the screen after next.
- Blocking, with reasons: a therapist's calendar can be blocked for part of a day, with a reason attached from a list you maintain yourself. Lunch, training, a treatment room being cleaned. The block shows on the calendar with its reason underneath, so the answer to "why can't we put someone in at 1pm" is on the screen rather than in somebody's head.
- Priority: every staff record carries a therapist assignment priority, and therapists can also be dragged into order on the calendar. So automatic assignment isn't grabbing whoever comes first alphabetically. You decide who gets offered the work first, which is how a senior therapist's day fills before a casual's does.
- Room assignment for the day: a therapist can be linked to a particular room for a particular day from the roster screen, and their name then appears on that room's calendar. Or the system assigns therapists and resources automatically, which is a switch rather than a rebuild.
The staff roster, and copying a week forward

Most spa weeks look like the one before. So a week can be copied forward into a date range rather than a single week, with an overwrite switch that decides whether it replaces what's already there or leaves existing entries alone. Setting up next quarter is a dialog rather than an afternoon.
That screen is doing more work than it looks like. Every hour in it feeds the availability check that decides whether a 10am massage can be sold to somebody on your website at midnight.
Importing a roster from whatever your workforce system exports

Plenty of spas already roster somewhere else, usually because the wider business does. They shouldn't have to enter it twice. The import takes an Excel file and maps its columns onto the fields Netbookings needs: HR code, name, date, start and end time, break duration and break time. Every staff record holds an HR system id of its own, so the file identifies people the way your HR system already does. Nothing has to be renamed at the other end, which is the difference between an import that runs itself and one that needs a spreadsheet person every Monday morning. Humanforce is the system we get asked about most and it comes in this way.
Two details on that screen matter more than they look. Validate is a separate button from Import, and it reports problems row by row, so a bad file comes back with a line number rather than quietly loading half a week. And the shift unavailability fields and the split shift tick exist because real rosters aren't tidy: someone who isn't bookable for the first part of a shift, or who works a morning and an evening with the afternoon off, has to arrive in the system as what they actually are.
Rooms, and the screen in the back room
Rooms have their own calendar, and they can be grouped for the people reading it: treatment rooms 1 to 4 under "Spa Treatments", private baths 1 and 2 under "Private Bathing", so a busy day shows up as areas rather than a wall of columns.
The more important thing about a room is that it is not a single slot. A room holds as many simultaneous treatments as you tell it to hold. The couples booking on the calendar below occupies two separate rooms, which is one way to sell a couples treatment. A dual room is the other: one room, two beds, two therapists, one arrangement. And it doesn't stop at two. Peninsula Hot Springs runs rooms carrying more than ten concurrent treatments, which is a group session rather than an appointment, and the availability check handles that as capacity in a room in exactly the way it handles capacity in a bathing session.
That difference is bigger than it sounds, because most spa software treats a treatment room as free or not free. Once a room has a capacity of its own, a couples booking doesn't have to consume two rooms, a party of eight doesn't consume eight, and a spa with one large pavilion can sell it eight times over for the same hour without anybody working it out on a whiteboard first.
The spa calendar: a day across four treatment rooms and two private bathing rooms

Worth reading that screen slowly, because most of the argument in this article is visible on it.
- The columns are the constraint. Four treatment rooms and two private bathing rooms, side by side on one day. Private bathing sits in the same calendar as the treatments because to the person running the floor it's the same problem: a room, for a length of time, with someone in it.
- The booking that's open spans two rooms. One booking, number 4194, two sixty minute massages at 10am, holding Treatments 1 and Treatments 2 at the same time. A couples booking is one arrangement rather than two bookings a staff member has to remember belong together.
- Both therapists were assigned automatically. Jenny Therapist has one of those massages and Mary Therapist has the other. Nobody chose them. The system took two people who were rostered on, free at 10am and qualified for that treatment, and put one in each room. Two rooms, two qualified staff and one guest arrangement, resolved at the moment the booking was made rather than by someone reading a calendar the next morning.
- And the assignment is a dropdown, not a decision you're stuck with. Either therapist can be changed at the desk without rebuilding the booking, which is what you need at 9.50am when someone calls in sick.
- Arrived and departed are on the booking, with the time stamped. That's how the desk knows who is on the floor right now, and it's the same toggle a therapist looks at before going to collect someone from the lounge.
- The toggles across the top filter the day by operational state: confirmed, needs attention, arrived, room status, owing, booked online. On a busy Saturday "show me everyone who still owes" is a question you want answered by a toggle, not a report.
- The banner is pricing. "-10% Off-Peak Discount Today" is the off-peak rate described further down this article, applying itself and telling the team it's applying.
Now the same day from the other side. A spa floor has two questions running at once, and they're not the same question: which rooms are free, and which people are free. Netbookings holds a calendar for each, over the same bookings.
Staff availability: the same 10am, seen as people rather than rooms

Three therapists, three columns, one day. The couples booking from the room calendar is still here, sitting against Jenny and Mary at 10am in two different rooms, and Tom has a fifty minute massage of his own at the same hour in a third. Every block names the service, the guest and the room, so a therapist reading her own column knows where to be and who she's got.
The grey blocks are the lunch breaks, marked with a red cross and carrying their reason on the face of the block. Nothing can be booked into them, and nobody has to remember why: the answer to "why can't we put someone in at half twelve" is written on the calendar. Reasons come from a list you maintain yourself, so training, handover and a room being cleaned down all work the same way.
Then look at the very bottom of each column. 2:00 against Tom, 4:35 against Jenny, 1:15 against Mary: each therapist's booked hours for the day, totalled where the person running the floor is already looking. Hold on to those three numbers, because they turn up again shortly.
There's a second, quieter feature here that spa managers tend to like more than anything on the feature list: Spa Schedules. The rooms calendar and the therapist schedule each have a link you can open on a tablet or a screen in the staff area, so the day is visible where the work happens without anyone logging into the back end. It's a small thing that removes a printer from a workflow.
Services: what you're actually selling
A service carries a name, a description, an image and a display category that decides where guests find it when they browse. Then the operational parts:
- Duration, which is what the room and the therapist are both held for.
- A standard price and an optional off-peak price, so a Tuesday morning doesn't have to cost what a Saturday afternoon costs. This is the same mechanism private bathing uses.
- An add-on flag, which makes a service available only when booked alongside another one. That's how a scalp treatment, a hot stone upgrade or a twenty minute extension exists as a real bookable thing without ever being sold on its own.
Add-ons are worth dwelling on for a second, because they're the cheapest revenue in a spa. A guest who has already decided to book a sixty minute massage will take a $25 enhancement far more often than a cold prospect will book anything at all.
The gaps nobody types in
This is the specific answer to "relatively basic", and it's the part no comparison site has ever seen, because it lives in a settings tab.
Netbookings holds a matrix of transfer times between every pair of areas in the business: bathing to dining, bathing to a treatment room, private bathing to reception, and so on. When the system assembles an itinerary it inserts those gaps automatically. A guest coming out of the bathhouse needs time to dry off, change and walk to the treatment room, and that time is real whether or not the software accounts for it. Ours does, so the itinerary comes out with air between the elements instead of two things booked at the same minute in different buildings.
Sitting beside it in the same settings tab: continuous services, automatic breaks, a maximum break the booking wizard will tolerate, room splits, automatic swaps, and automatic assignment of spa staff, resources and dining groups. Operators run genuinely different business models off those switches. One of our clients has the module renamed from Tour to Dining and from Accommodation to Stay, because that's the language their guests use.
None of that has ever been documented publicly, which is exactly how a scheduling engine gets described as basic by something that can only read what's been published.
What comes back out
Everything above is data going in. The reason to care about any of it is what you can ask afterwards, and this is the other half of the spa module that has never been described anywhere public.
The Spa reporting category alone holds seventeen reports, sitting alongside separate categories for accommodation, dining, point of sale, vouchers, marketing, financial and online. Each takes a date range, most take filters, and every one of them exports as a spreadsheet, a PDF or raw data. Three are worth naming because they answer questions spa managers actually ask out loud:
- Therapist Utilisation: per staff member, hours rostered, hours blocked, hours used, and utilisation as a percentage. It answers "are we over-rostered on Tuesdays" and "is one therapist carrying the week" without anyone counting appointments by hand.
- Spa Occupancy by room: the same question asked of the building rather than the staff. Which treatment rooms earn their floor space, and which one is really a storage cupboard with a table in it.
- Treatment Count by Room: how many of each treatment ran, and what they were worth, filterable by room and by treatment. This is the one that tells you a facial room is doing massage volume, or that the private bathing suite is quietly out-earning a treatment room.
Therapist utilisation, for the same day you just looked at

This is the same Monday as the staff calendar earlier, and it's worth checking the arithmetic yourself. The used column reads 2.00, 4.58 and 1.25. Those are the 2:00, 4:35 and 1:15 totals sitting at the foot of the three columns on that calendar, in decimal. The blocked column is the lunch breaks. The rostered column is the nine hour day set on the roster screen at the top of this article.
Nothing here was entered twice. A therapist's hours were rostered once, a lunch break was blocked once, bookings landed on the calendar as guests made them, and the report is those three facts divided by each other. That is the entire argument of this article in one table: the depth isn't in any single screen, it's in the fact that the screens are the same data.
Reports look across the business. The other direction is one guest, and it's the same data read the other way round. Open a guest and their entire relationship with you is on tabs: bookings, services, gifts, orders, memberships, tickets, accounts and waivers.
The services tab is the one a spa lives on. It lists every treatment that person has ever had and when, going back years: a sixty minute massage in 2020, a facial the following spring, a private bath, the massage they booked last month. Before a regular is on the table, whoever is treating them can see what they've had before. That's the difference between "what would you like today" and "you had the hot rocks last time, same again?"
One caveat, since this article is meant to be checkable. A treatment booked on its own shows what it cost, right there on the line. A treatment that arrived inside a package shows without a price against it, because the guest bought a package rather than that treatment: the money is apportioned across the components for your accounts by the percentages set on the package, which is covered further down. So a regular's history reads as a reliable record of what they've had and when, and a partial one of what each thing cost them.
Two things about that history are worth drawing out. It isn't spa-only: the same guest's list runs across their villa, their bathhouse session, dinner and breakfast, because it's one guest record for the whole business rather than one per department. And the gifts tab carries vouchers with a remaining balance, so a part-redeemed voucher is visible to whoever is standing in front of the person holding it.
Two reports also deserve a mention for what they say about the design rather than the data. Unassigned Therapist Bookings lists bookings that have no therapist against them, which is the safety net under all that automatic assignment: if something ever falls through, it appears on a list rather than at 10am on a Saturday. And Bookings For Staff Attention is where anything flagged during the day comes back for someone to deal with.
Some of it acts on its own, too. Netbookings sends automatic emails on a schedule you set in days: booking and payment reminders a chosen number of days before arrival, a follow up a chosen number of days after the guest has been and gone, and an abandoned cart email to someone who got most of the way through booking and stopped. The follow up is the rebooking one. It arrives while the massage is still a recent memory, which is exactly when somebody is most likely to book the next.
What that isn't, yet, is a campaign engine. Those emails fire off a booking. They don't fire off a segment: "everyone who had a facial twice last year and hasn't been since March" is a question the data above can answer and the system won't currently act on by itself. That's the honest limit, and it's the next section.
Where a resort spa stops looking like a salon
Here's the part the comparisons genuinely aren't built to measure, because they're comparing spa software to spa software.
Most of our spa clients don't only run a spa. They run a bathhouse with a spa in it, or a retreat with villas and a spa and a restaurant, or hot springs with timed entry, private bathing pavilions and treatment rooms. For those operators the interesting question isn't how good the treatment scheduler is on its own. It's whether a guest can buy bathing at 9am and a massage at 11am as one product, at one price, with both availability checks passing before it's ever offered.
Two elements, two constraints, one price and one date

Underneath that single price, two completely different pieces of inventory are being held: capacity in the 9am bathing session, and a qualified therapist plus a room at 11am. If either fails, the combination is never shown. The guest sees one thing to remember.
Packages are built by your own team, not by us, and they carry rather more than a list of components:
- Swap options with cost offsets: the massage can be exchanged for a signature facial at no extra cost, the queen room for a king at $50. When a guest swaps, the qualification and availability checks simply run again.
- Per-component quantities: bathing for two, dinner for two, one picnic hamper. Two people leaving together don't need two hampers.
- Seasonal pricing on the package itself: $450 standard, $550 on a public holiday. One product with two rates, not two products you have to remember to swap over at Easter.
- Seasonal and day-of-week availability: tick Tuesday and Wednesday and the package simply doesn't exist on any other day, which is how a midweek offer stays midweek without anyone policing it.
- Percentage revenue splits: the guest pays one price, your accounts see the spa share, the accommodation share and the food and beverage share separately, automatically, on every sale.
All five of those, on one screen

That's a real one, "Bathing getaway for two", from the inside. Six components run down the right, each tagged with the module it came from: bathing, dining, stay, dining again, a spa service and a picnic hamper. Each carries its own quantity, so the massage is for two and the hamper is one. Each carries an accounts split, and the six of them total a hundred.
The line that matters most for this article is the massage. It offers a signature facial as a swap at no extra cost, and the queen room above it offers a king for fifty dollars more. A guest taking that facial at eleven o'clock on a Sunday night has no idea that a facial needs a therapist trained in facials, and doesn't need to: the qualification and availability checks simply run again on the new combination before it's confirmed.
Down the left the same package prices itself at $450 for the season and $550 on a public holiday, and the Suggestion Only switch decides whether it appears in the browse list at all or surfaces only as an offer once a guest already has something in their cart.
Those split percentages are what change a finance department's month. A spa inside a resort reports to a different manager, a different revenue account and sometimes a different tax treatment than the room does. If the two live in separate systems, somebody does that breakdown by hand, monthly, forever. Here it's six numbers set once when the package was built.
Packages, built and maintained by the operator

And that package is one of eight, each with its own switches: bookable by staff, bookable online, sellable as a gift voucher, active or not. Look at "Overnight escape for two", third from the bottom. It's on for staff and on for online, and off for vouchers. That's a package you can sell but not gift, decided package by package rather than as a setting for the whole system. Your team builds and retires these, which is the entire point of being able to put one up for a long weekend and take it down on the Tuesday.
The same logic carries through to the counter. A package booking appears at point of sale as one booking with numbered components, so the person on the desk can see the room, the bathhouse entry and the treatment as one arrangement, with total, paid and owing in the corner. Towels, wristbands, retail and a round of drinks go onto the same visit rather than becoming a separate sale nobody can connect back later.
A sale at the counter can also be assigned to a therapist. The oil a guest buys because their therapist recommended it during the treatment is recorded against that therapist, and where a booking involved more than one, the system asks which. It sounds like a small piece of bookkeeping. It's the difference between knowing that retail did $4,000 last month and knowing who sold it, which is the number that changes behaviour on the floor. There's a report for exactly that, Sales by Therapist, over whatever date range you ask for.
The same booking at the desk, split into its components

Around that sit the things a wellness facility needs and a salon mostly doesn't: RFID wristbands that let guests open lockers and charge items to their visit, integrated EFTPOS so payments reconcile without retyping, and gift vouchers, of which the system has now sold more than 1,500,000 with each operator's own branding on them.
Vouchers are worth one more sentence, because they're where a group of businesses stops being a list of businesses. A voucher redeems across the group: bought at one site, spent at any of the others. For an operator running several venues that's the difference between twelve voucher schemes to reconcile and one, and for the person who was given it as a present it's the difference between a gift and a gift with conditions attached.
Where Zenoti genuinely beats us
This section exists because an article that only listed strengths would deserve to be ignored, and because the honest answer is more useful to someone choosing than a defence would be.
Zenoti wins the customer lifecycle. Acquire, book, visit, rebook, membership, loyalty, win back, upsell: they have real tooling at every step, including marketing automation built on segments, loyalty programmes and rebooking prompts driven by a client's own treatment history. If your commercial strategy is to turn every guest into a high frequency spa customer, that is a serious advantage and no amount of operational depth on our side substitutes for it.
Specifically, and without hedging:
- Commissions and gratuities: Zenoti calculates them and pushes the result at payroll. We don't run that calculation. What we do hold is every input to it: sales are attributed to the therapist who made them, treatments are attributed to the therapist who performed them, and Sales by Therapist reports it over any date range, exportable to a spreadsheet. So the gap isn't the data. It's that applying your rates and your tiers to that data is currently a step at your end rather than one we run for you. If commission is central to how you pay your team, ask us how other clients handle it rather than assuming either way.
- Marketing off a segment: this is the real gap, and it's narrower than the comparisons make it sound. Automatic email already goes out on a schedule you control: reminders before arrival, a follow up after the visit, an abandoned cart chase. All of it fires off a booking. What it doesn't do is fire off a slice of your guest list, which is what "win back everyone who hasn't been since autumn" needs. Clients who want that today point an external tool at the data. Native CRM is on our roadmap, aimed squarely at prompting members to book, and we're deliberately not putting a date on it here.
- Loyalty: memberships, passes and vouchers are all strong. Points-and-tiers loyalty is not the same thing, and we won't pretend it is.
- Multi-location enterprise: less of a concession than it looks. Netbookings runs multi-business groups. One staff record spans every business in the group and carries a different role in each, so the same person can be a supervisor at one site, ordinary staff at a second and a master user across the group, without three logins or three records to keep in step. Gift vouchers redeem across the group as well, so a voucher bought at one of your twelve sites can be spent at any of the other eleven. What Zenoti still has that we don't is the reporting layer above all that: group level dashboards and head office analytics across sites.
- Rebooking driven by history: our follow up email goes to everyone, a set number of days after their visit. Zenoti's goes further, prompting the next appointment off what that particular client had and when they had it. The history to do it with is already here, years of treatments against every guest. Turning that into a prompt is the part we haven't built.
So who is the Spa module actually for
The clearest way to put it is as two different sentences an operator might say about their own business.
"We want to turn every guest into a high frequency spa customer." That's a lifecycle problem, and it's Zenoti's problem to solve. If you run six or twelve suburban day spas on repeat visits, commission based pay and constant campaign activity, we'd genuinely tell you to look at them first.
"We need to efficiently operate a complicated wellness business." That's ours. A bathhouse with timed entry across multiple zones, treatment rooms, private bathing, a restaurant, villas, a retail shop and a gift voucher business that runs all through December. One guest record, one availability check, one price, one bill from us, and a finance report that splits itself.
That's also why the module costs what it does. Spa is priced at two module units rather than one, the same as bathing, because of what it carries. On our current pricing that's $60 or $100 per module unit per month depending on the plan, or nothing at all on Easy in exchange for 5% of online bookings, with a 25% discount once you run more than one module, all month to month with no lock in. The full detail is on the pricing page, and the module itself is described on the Spa and Beauty page.
Questions?
If you're comparing systems right now and something in this article contradicts what you read elsewhere, tell us which claim and we'll show you the screen it comes from. If it's us who are wrong, we'd rather find out from you than from a comparison table. Get in touch.