Skip to content
Help centre

Building your Dive Menu

Last updated 2026-10-16

The Dive Menu is everything a customer can book or buy: courses, course bundles, activities and dated trips. It feeds your booking page and gives your bot the prices and details to quote.

When you'd use this

  • Adding a new course, activity or bundle.
  • Updating a price or how something is booked online.

The order of your menu

Your menu is kept in a sensible order for you. Nobody has to arrange it, and a new service slots straight into its place.

  1. Categories follow the order you set on your booking page (Settings → Booking page). If you haven't set one, they follow a diver's journey: Beginner, Fun Dive, Advanced, Specialty, Tech, Pro, Package, then any others A to Z.
  2. Inside each category, services marked Featured come first, then the cheapest first, unless you have set your own order for that category (see below).

This is the order customers see on your booking page and website menu, and the order the bot and your booking pickers use.

To change what customers see: in Settings → Booking page → Categories and services, move categories, and open a category to put its services in your own order. See Setting up your public booking page.

To sort the list for yourself: click a column heading (Name, Category, Price or Duration). Click again to reverse it. Your choice is remembered on this device. Press Default order to go back. Sorting the list only changes your own view, never what customers see.

Adding a service

  1. Open Dive Menu from the sidebar and press to add a service.
  2. Pick the Type and set the Category (see below), then name, description, price and duration.
  3. Choose how the price is charged: Per person or Flat fee (see below).
  4. Fill in Bot Tips (customer notes) with any routing or selling guidance for the bot.
  5. Save.

Per person or flat fee

Under the price you choose how it is charged:

  • Per person · the price is multiplied by the number of guests. A £1,000 course booked by 3 people comes to £3,000. This is the default and suits most courses and dives.
  • Flat fee · one price for the whole booking, no matter how many guests. A £9,000 private boat charter stays £9,000 whether 1 or 10 people come. On the booking page it shows as "whole booking", and the guest count is still asked (so you know how many are coming).

When you choose Flat fee a Price per person box appears underneath. Use it when a private booking is "a fixed fee for the boat plus an amount for each guest": for example a boat at a flat £8,000 plus £500 for every person aboard. The per-person amount is added automatically for each guest in the party, so a party of 2 comes to £8,000 + £500 × 2 = £9,000. Leave it blank if your flat fee covers everyone. Because it follows the guest count, you never have to add a separate "extra person" option and it can never be missed.

Add-ons

Under the price you can add optional extras a customer can choose when booking this product, for example a gear upgrade or an added dive that only some guests take. (To charge for extra people on a flat-fee booking, use Price per person above rather than an add-on: that way it follows the guest count automatically. For something the customer must pick, use a Choice group below.)

  • Give each add-on a name and a price (0 for a free extra).
  • Set whether it is charged per person or as a one-off.
  • Tick Included for everyone for something every booking of this product pays, such as a marine park fee: it is added to every booking's price, and customers see it as "Included" with no quantity picker.
  • Tick This is accommodation for a dorm bed, room or overnight stay: a booking that includes it asks the customer for a check-in date.
  • Tick Customers must answer yes or no on a per person add-on, such as equipment hire, when you need to know before the day. Each person booking online then picks Yes, add it or No, not needed; nothing is chosen for them, and they can't add the product to their booking until everyone has answered. A Yes is added and priced as usual. A No costs nothing and shows on that diver's booking, under Customer requests, as "Said when booking: Equipment Hire not needed", and the customer's confirmation email lists it too. It can't be combined with Included for everyone: ticking one unticks the other. If someone presses Add to booking without answering for everyone, the page shows them whose answer is missing and takes them to it.

On the booking page the add-ons pop out inside the product when the customer selects it, each with a − / + quantity picker, and the running total shows in the bar at the bottom of the screen. The guest count on the next page pre-fills from the quantities they chose. When the booking comes through, you see a Booking breakdown on the booking showing the product plus every add-on and the final total.

In the booking cart (on for every centre), a per person add-on is ticked per person instead: the customer ticks who it is for, and for an add-on sold by the unit (a nitrox tank, an extra dive) picks how many that person takes, 1 to 10. Each person's extra is priced to them (three tanks for one diver on a two-person booking charges that diver three times the price), and the booking breakdown, the receipt and the customer's email show "× 3" beside their name. A bed add-on (one that asks for a check-in date) is always one per person.

Choice groups (customer must pick one)

Sometimes you don't want an optional extra: you want the customer to choose one option and they can't book without choosing. That's a choice group, in its own card under Add-ons. Two common cases:

  • A question with set answers · for example "What food would you like?" with the answers Meat, Vegetarian, Vegan.
  • Which departure · for example a trip that runs a morning boat or an afternoon boat, and the customer must pick one.

To set one up:

  1. Press Add a choice group and give it a question (this is what the customer sees, e.g. "Which boat?").
  2. Add the options underneath. You need at least two. Each option has a name and a price: leave the price at 0 for a free choice like a meal preference.
  3. Choose whether each option is charged per person or as a one-off, the same as add-ons.
  4. An option can be marked This is accommodation too (for example "Where do you sleep?" with a dorm bed and "my own place"): picking that option asks the customer for a check-in date.
  5. Save.

On the booking page a choice group shows as a set of buttons where the customer picks exactly one, and they can't move on until they have. The chosen option appears on the Booking breakdown with its question, so you can see at a glance what each customer picked (e.g. "Which boat?: PM boat"). A free choice still shows, priced at 0.

Add-on or choice group? Use an add-on when the extra is optional or applies to only some guests (they pick a quantity). Use a choice group when the customer must pick one option from a set.

Choosing a type

The Type picker is how the service works. There are four standard choices, each explained on the form (hover or tap the ⓘ for more):

  • Course · a single certification course (e.g. Open Water). One instructor signs the student off.
  • Course bundle · two or more courses sold together at one price (e.g. Open Water + Advanced). When the customer arrives, the desk splits it into its separate courses so each can be taught and signed off on its own. A bundle can include activities too.
  • Activity · a dive or session that isn't a course: fun dives, snorkelling, a night dive, a refresher. Pay follows whoever guided it.
  • Activity bundle · a multi-session pack (e.g. a 10-dive package). It's saved as an Activity with a session count; the system counts the sessions down as they're used. It never splits into separate bookings.

Plus Dated trip (Organised Trip) for a one-off trip on a fixed date (see below). These choices cover everything a centre sells: there is no free-typed "custom type" option; if a service doesn't fit, it's an Activity.

Sessions included is required for every service. It's how many sessions the service includes: dives for fun dives and dive courses, classroom or pool days for a theory course (a first-aid course = 1; a plain single fun dive = 1). The system counts a customer's pack down as their dives are recorded on trip sheets, and course progress bars use it as their total.

What's in this bundle (course bundles)

When you choose Course bundle as the type, a What's in this bundle box appears straight underneath, with two empty rows. It's required: a course bundle can't be saved until it lists at least two parts.

  1. In each row, pick a course, or an activity with sessions (e.g. a 10-dive pack), from your menu. Click Add another part for more.
  2. Optionally give each part a price. Leave them all blank and the desk starts with an even split. Or click Split the price evenly to fill them in.
  3. Save.

When reception opens a booking for this bundle and presses Split this bundle, the parts are already filled in. They can still change anything before confirming.

  • Part prices only pre-fill when every part has one and they add up to the bundle price. If they don't, the box says so and the desk starts with an even split.
  • If you switch a part off or archive it, it shows greyed out and the desk skips it. It no longer counts towards the two, so replace it or switch it back on.
  • A course that is part of a bundle can't be deleted. Remove it from the bundle first, or archive it.
  • Deleting a bundle removes its parts list with it. A bundle with bookings can't be deleted: archive it instead.
  • Photos: a bundle has two photo slots, Main photo (fills the picture on your website, and shows on your booking page) and Corner photo (the smaller one in the top corner). Upload your own in either, or leave a slot empty to use a photo from one of its courses: the box shows which course photo it will use. When a course gets a new photo, every bundle using it picks it up automatically. No photo of your own yet? Press Choose from our photos next to Upload, pick a category and click one: it becomes your own copy for that course. (Dive sites don't have this, so a stock photo is never shown under a named place.)

Certifies the diver as (courses)

On a Course or Course bundle you'll see a Certifies the diver as dropdown. It tells the system what certification the course awards. When an instructor signs the student off, the diver's certification level is raised to this automatically, so the next morning's roster and trip sheet already show the new level: no need to edit the customer's record by hand.

  • Set it to the level the course awards (Open Water, Advanced, Rescue, and so on). If the name is a familiar one, the form suggests a level for you: just click Use it.
  • Leave it on Does not change their level for a course that doesn't change the diver's headline level: a specialty (Nitrox, Deep, Wreck), a professional internship, or a refresher.

It only ever raises a level, never lowers it: a Rescue diver taking an Open Water refresher stays Rescue. If a sign-off is undone, the level goes back to what it was (unless someone edited it in the meantime).

Pro / extended programme is a tick box under the type, available for any type. Tick it for a long professional programme that runs over weeks or months: divemaster training, an instructor internship, an IDC. Its bookings then show on the Pro tab in Dive Groups instead of the day-to-day Courses and Activities boards. It only changes where the booking shows: it never changes pay or how the service is booked.

Categories

Category is how services are grouped on your booking page and menu: it doesn't change behaviour. Pick a preset (Beginner, Advanced, Specialty, Package, Fun Dive, Kids, Conservation, Tech, Pro) or choose Add new category… for your own. Presets are always available even before you've used them.

When it runs

Every service has one When it runs card. It answers one question first, How do customers book this?, and shows only the settings that choice needs.

  • Pick a day · customers pick a day from your availability (the Availability page, under Operations). Set the days it runs, the length in days and how many a day for this service (required while date booking is on).
  • Pick a run · for courses and organised trips that run on set dates, for example an evening orientation, pool nights and two open water days. You add each run (an intake, such as "November 2026") with its own dates and places.
  • Ask for a date · customers type a preferred date and you confirm it.

Length in days is kept whatever you choose: leave it blank or 1 for a single day, or set 2 or more for a multi-day course.

Pick a day

  • Days it runs · all seven days on (the default) means any day. Turn a day off and customers can't book this service on that weekday: the booking calendar greys it out and a booking on that day is refused. Leave at least one day on, or the service can never be booked online (the editor won't save with none). A multi-day course is judged on its start day.

  • How many a day · while date booking is on (Settings → Booking page), a Pick a day service must say how many people a day it takes, or tick Any number a day; the editor won't save without one. Switching a service to Pick a day suggests a number: 1 booking for a flat-price service, its Max participants otherwise. On a flat-price service it reads How many bookings a day: each booking counts as one, whatever the group size, so "1" means one private charter a day. With date booking off, the field reads Most people a day and stays optional, as before. Any shared limit on the Availability page still applies on top. A number lower than people already booked on some days still saves: the message says how many days are now over it. Those bookings stay, and those days show as full.

  • Times it departs · for a one-day service that leaves at set times, for example a boat at 07:45 and 12:30. Leave it empty and customers book the day, as before. Press Add a time, or tap one of Your boat times (the morning, afternoon and night times from your Trip Sheet settings) to add it with its name. Each time has:

    • a time (24-hour, like 07:45) and an optional label, such as "Morning";
    • its own number: Most bookings on a flat-price service (1 = one private charter at that time), Most people otherwise. It is required unless you tick Any number a day. A new time on a flat-price service starts at 1;
    • days: Every day it runs by default; open it to choose the weekdays that time departs.

    Up to 24 times. With times, there is no separate number a day: a day takes the times added up (two times of 1 each make 2 a day). Tick Any number a day to let a time take any number. Saving the times clears any old number a day; remove all the times and you are asked for a number a day again. Times are shown while date booking is on (or once a service has times). They are only for Pick a day services of one day: switching to another choice or a longer length shows Saving removes this service's times, and saving removes them. A course that still has runs that haven't finished can't have times until you save once with its runs cancelled.

  • A time with bookings · a time that has bookings from today on can't be removed, moved to another time or given fewer days. Saving says which time and which dates, for example "19:00 has bookings on Sat 14 Nov", and nothing in that save is changed. Move those bookings to another time with Change time on the booking (or cancel them), then save again.

  • From the Availability page · Edit in Dive Menu opens the service straight at When it runs, with Back to Availability at the top. This card is the one place a service's days and number are changed; change a single day on the Availability page.

  • Example: set a course to Mon, Wed, Sat and the calendar offers only those weekdays.

New services start on Ask for a date, unless every other service you sell uses Pick a day, in which case a new one starts on Pick a day too.

Pick a run (runs of set dates)

Each run is a small card with:

  • Name · usually the month, for example "November 2026".
  • Places · how many people can book this run. Leave it blank to use the course's Max participants.
  • Dates · press Add a date for each session and set its date, start, end and place. Each date can have its own time and place. Type times like 18:30.
  • How many people are booked on the run so far.

Buttons on each run:

  • Copy to next month · makes a new run four weeks later (five if four weeks would still be in the same month), keeping the weekdays, the gaps between dates, the times, places and number of places. It is named after its new month. Check the dates, then save.
  • Cancel this run · stops it being sold. If people are booked, you are asked to confirm first: their bookings stay, so move or cancel them from Bookings. A cancelled run can be reopened.
  • Remove · on a run you haven't saved yet.

Saving changes only the runs you changed; the others, and past runs, are never touched. Once a run's first date has passed, it is started: you can still change its dates or add one, but not remove a saved date. Runs that have finished fold into Past runs, read only, and you can copy any of them to next month.

While a service has a run that hasn't finished, you can't switch it to Pick a day or Ask for a date, or change its type away from course or trip: cancel the runs first.

On your booking page, a course with runs is booked for the dates of a run: customers don't pick a day. With more than one run, the customer chooses one from a short list ("November 2026 · 3 dates · starts Wed 11 Nov · 3 left") and sees its dates before adding it. The first run that still has places is chosen for them to start with. A full or closed run shows Full and can't be chosen; a run that has started isn't listed, so the customer messages you instead. The booking menu shows when the next run starts. The confirmation email lists only the dates of the run they booked, with the run's name after the course.

If a course still has dates saved by the old Course dates card, they show as one run marked Not saved yet. Saving the service turns them into a proper run, with the people already booked on those dates.

Course dates override the Meeting time field. A single meeting time can't describe a course with different times per date, so once a run has dates, the confirmation email shows each date's own time instead. You can still fill in Meeting time for the WhatsApp bot.

Organised trips

An Organised trip is a dated event (a day trip, a liveaboard departure, a social dive). Choose Dated trip as the Type. Under When it runs, a trip has two choices:

  • On the trip date · set the Trip date. Customers can't pick another day, and the trip leaves your booking page once the date has passed. Capacity is the Max participants set under Booking page: once it's full, customers see "Fully booked".
  • Pick a run · for a trip you run several times, set up runs as above (the single trip date is then cleared).

Organised trips never use the day-by-day booking calendar.

Booking questions (medical and dive details)

Each service has a Booking questions card with two switches that control what customers are asked when they book this service online. Both are on by default.

  • Medical questionnaire · when on, the customer completes the standard diver medical questionnaire before finishing the booking. Turn it off for a non-diving activity (for example snorkelling, climbing or boat handling) so those customers aren't asked medical questions that don't apply.
  • Dive details · when on, the customer is asked for their certification level, certifying agency and last dive date. Turn it off for non-diving activities.

Leave both on for anything in the water that involves diving. Turn them off per service for non-diving activities, and those questions simply don't appear on the booking page for that service.

Meeting time

Each service has an optional Meeting time field (in the Booking page card). It's free text, so you can write a time ("08:30") or a time and place ("08:00 at the shop").

  • When set, the meeting time appears as a line in the customer's booking confirmation email.
  • If your booking page has an hours before the trip starts cut-off (Settings → Booking page), the cut-off counts from this time. When it's blank, it counts from midnight at the start of the trip day.
  • When left blank, the email instead says the meeting time is subject to change and asks the customer to contact you (using your centre email) to confirm.
  • Your WhatsApp bot uses it too: if a customer asks what time to meet, the bot gives that service's meeting time, asks which course or dive when it's unsure, and points them to your email to confirm when it's blank.

Use it when a service has a reliable start time; leave it blank when the time moves with weather, tides or group size.

Max participants

Max participants is the number of places on a course run or trip with set dates: once that many people hold a place on the run, it shows as full online and the party size never offers more. It does not cap a service that customers book by calendar day or by preferred date; for those, your daily capacity and the days the service runs apply instead.

Payment (per-service)

At the bottom of each service there's a Payment card that decides how customers pay for this product online. It has four choices:

  • Use my booking-page default · no override. This product follows whatever you've set centre-wide in Settings → Booking Page. Leave it here unless you want this product to behave differently.
  • Full payment · customers pay the full price online when they book this product.
  • Deposit · customers pay a percentage online (you type the percentage, 1 to 100), or the full amount if they prefer; you collect any balance when they arrive.
  • Pay at the centre · no online charge for this product; the page shows the price and customers pay on arrival.

Anything other than "Use my booking-page default" overrides your centre-wide setting for this one product. So you can, for example, take full payment on a cheap fun dive, a 20% deposit on an expensive course, and pay-at-the-centre on a package, all at the same time.

The balance and receipts work exactly as they do for a centre-wide deposit: the amount collected online is recorded against the booking, the rest shows as outstanding, and commission is worked out from the full price as usual.

Active, Inactive, Archived and Delete

The Dive Menu has two tabs: Active (your working menu) and Archived (services you've retired). There are three ways to take a service off your menu, for three different situations:

  • Inactive · the on/off switch on each row (and the Status toggle inside a service). Turn it off to hide the service from customers, your booking page and the bot, while keeping it in your Active tab so you can switch it back on later. Best for something you pause seasonally.
  • Archive · the Archive service button at the bottom of a service's edit page. This removes it from your menu and every booking screen, and moves it to the Archived tab. It stays on any past bookings and receipts, so your records still make sense. Use this for a service you no longer offer. You can Restore it any time from the Archived tab (it comes back switched off, so you decide when to reactivate it).
  • Delete · the Delete Service button in the red Danger Zone. This permanently removes a service. It only works for a service that has never been booked or paid against: anything with history can't be deleted (to protect your bookings and accounts), and the app will point you to Archive instead. If something else still points at the service (its add-ons, its dated sessions, the days it runs, or a bundle it belongs to), the message tells you what to clear first.

In short: pause it → Inactive · retire it → Archive · remove a mistake with no history → Delete.

Show on booking page

Inside a service, under Status, there's a Show on booking page switch. It's on by default, so every service you add is bookable online as normal.

Turn it off when you offer a service but don't want customers booking it themselves online: for example a business-to-business charter you arrange directly, or anything you only sell offline. When it's off:

  • The service disappears from your public booking page and can't be booked online.
  • It stays fully active: it still shows on your trip sheet and can be assigned to dive staff as normal, and it still counts everywhere in your records.

This is the difference between the two switches: Inactive hides a service from everyone, including your staff screens; Show on booking page → off hides it from customers only, while keeping it available for your team to run.

Link a service from your own website

Each service on your Dive Menu has its own booking link, so a Book now button on your website can open that service directly instead of your booking page's front menu. The link is the service's name on your booking address, for example book.yourcentre.com/open-water-diver.

  1. Open Dive Menu. In the Link column, click the copy icon on the service. (Or open the service and use Copy link under Booking link, in the Booking page section.)
  2. Paste the link into the button on your website (the button's address or URL box).
  3. A customer who clicks the button lands on that service, ready to add to their booking. Back returns them to your full menu.

Good to know:

  • The link is made from the service's name when it is first added, and it never changes, even if you rename the service later. A link you've already pasted keeps working.
  • If you delete a service and later add a new one with the same name, the new one takes that link. Archive a service instead of deleting it if you want the link kept.
  • A service that is switched off, or set to not show on your booking page, has a dash instead of a copy icon, because customers can't book it online. The column is hidden while your booking page is off.
  • Links in the older style (...?service=...) that you copied earlier still work too.

Accommodation add-on (check-in date)

Somewhere to stay is an add-on, like any other extra. Open the service, go to Add-ons, and add one for the bed (for example "Dorm bed - 3 nights") with its price and how it's charged. Then tick the accommodation box on that add-on, so the booking asks for a check-in date.

That tick is the whole switch. Any booking that includes a ticked accommodation add-on shows an optional Dorm check-in date box (next to the start and end dates) for your team to record the day the diver arrives. Leave it blank if you don't know yet. The date is just a note of the arrival day; it doesn't change prices, pay or availability.

The add-on itself works like every other add-on: customers can choose it when they book online, and staff can add it to a booking at the desk. When a customer picks it online, the booking page asks them for their arrival date, so it arrives already filled in; your team can add or change it from the booking either way.

Only tick it on the add-ons that are actually a bed or overnight stay. Leave it off for normal extras like nitrox or gear, and nothing changes for them.

A stay that comes with the course

If you have set up your rooms in Bookable accommodation, an add-on can hold a real bed for the course. Tick Includes a stay in your rooms, choose the room type, how many nights and whether the stay starts on the first day or the day before. Each person who takes the add-on gets a bed for those nights, held in the same moment as the booking. The add-on's price is paid on the booking as usual.

  • Only a per-person add-on can include a stay. Add-ons in a choice group can't.
  • When the dorm is full for those nights, the booking is refused and nothing is saved.
  • Cancelling or postponing the booking frees the bed. Moving the booking's date moves the bed, or is refused if no bed is free.
  • To switch your rooms off you first unlink these add-ons.

If you run proper rooms and want beds, occupancy and no-double-booking, that's the separate Bookable accommodation module instead. This tick is just the simple "note the arrival day" version.

Tips

  • duration is free text for display ("2.5 days", "4 to 6 weeks"); it does not drive the calendar: the Course length (days) number does.
  • Use Bot Tips to tell the bot who to route a specialised enquiry to.

Related

Can't find what you need? Get in touch.