Sell your own rooms and dorm beds. Set them up once, then take stay bookings from the front desk, with a cast-iron guarantee that the same bed can never be double-booked.
When you'd use this
- You own rooms or a dorm and want to take walk-in stays alongside diving.
- A diver (or a non-diver) wants a bed for a few nights.
- You need to see who's staying, in which room, on which dates.
This is different from Places to stay (Settings → Guest info → Places to stay), which is your list of nearby hotels you recommend, not rooms you sell yourself.
Before you start
- Switch the module on yourself: Settings → Bookable Rooms → the "Accommodation module" toggle (owner/manager). Once it's on, the Accommodation item appears in the sidebar.
- You'll need the Accommodation page permission (owners and managers have it by default).
Set up your place and your rooms (Settings → Bookable Rooms)
- Go to Settings → Bookable Rooms.
- Your place comes first. Check the name, address, phone and email (they are filled in from your centre details), set Check-in from, Check-in until and Check-out by, add your House rules, then click Save your place. Have more than one building? Click Add another property.
- Under What you sell, click Add rooms. First choose what you are adding:
- Private rooms: give it a name (for example "Garden Bungalow"), how many people it sleeps, the price per night and how many rooms. Three rooms are made at once and numbered Garden Bungalow 1, 2 and 3.
- Dorm beds: give it a name (for example "Dorm"), the price per bed per night, who can stay (Anyone, Mixed dorm, Women only, Men only), how many dorm rooms and beds in each. Two dorms of six beds are made at once: Dorm A and Dorm B, with beds named "Dorm A, Bed 1" and so on.
- Click a room type to open it and see its rooms, or its dorm rooms and beds. Use the pencil to rename a room or bed, add notes, or take it out of use. Use Add a room, Add a bed to Dorm A or Add dorm rooms to grow it later.
- The pencil on the room type changes its price, who can stay, its tax rate and description. Untick For sale to stop selling it without deleting it.
- A room or bed that has stays recorded against it can't be deleted: take it out of use instead.
The tax rate (shown once you have more than one) is the rate room payments are taxed at when you record VAT. Leave it on the main rate unless rooms are taxed differently.
The room calendar groups dorm beds under their dorm room.
Bookings from other booking sites
If you also sell rooms on Booking.com, Hostelworld, Agoda, Airbnb or Expedia, enter those bookings here too, so your calendar is right and the same bed is never sold twice.
- Open Accommodation → New booking and pick the site under Booked through.
- Fill in the Booking number on the site. The same number can't be entered twice for a site.
- Check Total the guest pays, Already paid to the site (what the guest paid the site online, 0 if they pay you everything here) and Commission to the site (optional). The form shows Due here: the total less what the site already took.
- Click Create booking. The guest's bill, balance and payments only ask for what is due here, so nobody is charged twice.
On the stay, Booked through shows the site and its booking number, with the commission and what was paid to the site.
Close dates when you fill up
Open a room type in Settings → Bookable Rooms, click the pencil and tick Also sold on other sites. When that room type is full for a night, the bell says Close these dates on your other sites, names the nights and opens the room calendar on the first one. DiveOps doesn't talk to the booking sites for you, so close those dates there yourself.
Photos and details
Each room type and each place has its own Photos and details page. Open it from Settings → Bookable Rooms: click Photos and details on a room type, or on the place card at the top.
- Photos. Add up to 20. The first one is the cover. Click Add photos and pick several at once, or drop them on the box. Move a photo earlier or later, make it the cover, describe it or remove it from the buttons under each photo. Photos save the moment you add or change them.
- Describe each photo in a few words, for example "Twin room with sea view balcony". Screen readers and search engines read it.
- Details. A description (up to 2,000 characters for a room, 5,000 for a place), the room size, a private or shared bathroom, and the beds in the room ("1 double bed", "2 single beds"). A dorm only says what each bed is, a single or a bunk.
- Amenities. Tick what the room or the place has, from a fixed list (air conditioning, hot water shower, lockers, sea view, dive gear rinse and storage and more).
- Save changes at the bottom saves the details and amenities. If someone else changed the page while you were on it, you will be asked to reload and save again.
Photos are checked, cleaned of location data and saved small and fast. Phone photos stand upright. A photo with a lot of fine detail may be refused: try a smaller one. Guests will see these on your booking page and website in a later step; nothing public changes yet.
Deleting a room type removes its photos and details with it.
Sell a dorm with a course
A Dive Menu add-on can include nights in one of your room types (see Dive Menu, "A stay that comes with the course"). When a diver takes it:
- A bed is held for the course dates in the same moment as the booking. It shows on the room calendar under its dorm and on the booking page, in a Stay section.
- The bed owes nothing on its own bill: the price is on the booking, paid the usual way.
- The bed follows the booking. Cancel or postpone the booking and the bed is freed. Change the booking's date and the bed moves, or the change is refused if no bed is free for the new dates.
- On the room calendar the stay says With booking … and points back to the booking. Change or cancel it there.
- If the dorm is full for those nights, the next sale is refused in plain words, so you can never sell a bed twice.
- Your customer's booking email gains a Your stay section: the room, check in and check out days with your property's times, the nights, where it is, and who has a bed. It says the stay is included in the booking. Set the times and address in Settings → Bookable Rooms.
- On your booking site the extra works like any other: the diver ticks it for themselves (or it is included for everyone), and the dorm bed is held while they pay. If the dorm fills while they are choosing, the cart says the bed was just taken, keeps nothing of the order and charges nothing.
You can't switch your rooms off while upcoming stays exist or an add-on still includes a stay: finish or cancel the stays and unlink the add-ons first.
Prices, rate plans, rules and fees
Open Settings → Bookable Rooms and click Prices on a room type. Everything about what a stay costs is set here, and the desk, your booking page and your bot all use the same answer.
Rate plans. A rate plan is one way of selling the room: its price, its cancellation terms and its deposit. Every room type has a Standard plan (its usual price). Most places only need that. Click Add a plan for another way of selling the same room, for example Non-refundable, 10% less than Standard. A plan can be:
- A change to another plan: less or more than it, by a percentage or a set amount. It follows that plan's calendar, so you only keep one set of prices up to date.
- Its own prices: for something that is not just a discount, like a weekly rate.
For each plan you set the board (room only, breakfast and so on), who the price covers and what each extra adult or child costs per night, the cancellation terms (free until a number of days before arrival, then charge a percentage or some nights, or non-refundable), an optional deposit and when the rest is due, and the plan's own rules (fewest and most nights, a same-day booking cut-off, how far ahead guests can book).
The calendar. Pick a plan to see its months. A bold price was set for that day, a faint one is the plan's usual price. Click a first day, then a last day, and a panel opens for that stretch:
- Price per night for those days.
- Fewest nights if a guest arrives on those days, or for any stay that includes them (high season, bank holidays).
- Most nights if a guest arrives on those days.
- Not for sale, No arrivals, No departures.
- Only on these days limits a stretch to some weekdays (for example weekends).
Leave a box alone to keep what is there. Empty a box you changed to go back to the usual price. Back to the usual clears everything you set for the stretch. Price periods lists your set prices for the next 12 months: click one to open it on the calendar. Days in the past cannot be changed, and a stay already booked keeps the price it was booked at.
Fees and taxes. Under What you sell, Fees and taxes holds charges added to a stay: a tourist tax, a resort fee, a cleaning fee. Each is charged per person per night, per night, once per stay or as a percentage, can start from an age (children under 12 pay nothing), can have a most per stay, and can be marked Already in the room price (shown on the stay, not added) or VAT applies. A stay keeps the fees it was booked with.
Take a booking (Accommodation → New booking)
- Open Accommodation in the sidebar and click New booking.
- Choose the Room type, the Check-in and Check-out dates, and how many rooms / beds and adults (add each child with their age if there are any).
- The form shows how many are free for those nights, and the price worked out from your prices: each night, any fees, the total, and the cancellation terms. If the room type has more than one rate plan, pick the Rate plan.
- If the stay breaks one of your rules (for example the minimum nights), the form says which. Tick Book anyway and say why, and the reason is kept on the stay.
- To agree a different price with the guest, type it in Agreed price for the room. A reason is asked for.
- Optionally link a Guest by searching your existing customers.
- Click Create booking. It appears in the list immediately.
Change the price of a stay. Open the stay and click Change price next to Price, enter the new room price and a reason. The old and new prices are both kept on the stay. You cannot lower a price below what the guest has already paid: record the refund first.
Manage a booking
- Click any row in the list to open the booking.
- Use the action buttons (they change with the booking's status):
- Confirm · accept an enquiry or reservation.
- Check in / Check out · when the guest arrives and leaves.
- Mark no-show · the guest never arrived; frees the bed.
- Cancel booking · cancels the stay and frees the bed (asks you to confirm).
- Add staff-only Internal notes (e.g. "paid cash") and click Save notes.
Cancelling, no-show and check-out all free the room/bed so it can be sold again for those nights.
Today: arrivals, departures and who is in the house
Accommodation opens on Today. It shows how many guests arrive, leave and stay tonight, and how many rooms need cleaning, using your centre's date.
- Waiting for a room lists stays that hold a place but have no room yet. Press Give a room.
- Arriving today has Check in on each row. A stay still waiting for payment says so.
- Leaving today has Check out. A guest who should have left earlier shows Overdue.
- Staying tonight lists everyone in the house, with Print for a page you can take to the fire assembly point.
Each row shows what the guest still owes. Press a row to open the stay.
Check out
Check out opens one window for the guest: what this stay owes, anything else they owe (shop tab, dives and courses), and the total still owed.
- Take payment records the money. If they owe for more than the stay, it opens their customer page with everything ready to take.
- Check out without paying lets them go and leaves the balance on their account. You are asked to confirm.
- A guest leaving before their last night gets a choice: Charge only the nights stayed (the later nights are given back and any later part of the booking that had not started is cancelled) or Charge the full price.
- Checking out marks the room as needing cleaning.
Change room or dates
On a stay, Change room or dates moves the guest to another room, extends or shortens the stay, takes the room away, or splits the stay across two rooms from a night you choose. The new price is shown before you save.
- A room that is taken or blocked is shown as such and cannot be chosen.
- A new room type can use its own price or keep the old price. Keeping the old price needs a reason, which is written on the stay.
- If money is already paid and the stay now costs less, you are told how much to refund in Payments.
- A guest who is already in the house is moved from today with Move the guest to another room from a later night.
- A bed that comes with a dive booking can only move to another bed of the same type. Its dates follow the booking.
Rooms to clean
Accommodation → Cleaning lists private rooms and dorm rooms (never single beds) in four groups: Needs cleaning (a room arriving today first), Leaving today, Clean, waiting for a check and Ready. Press Mark clean, then Mark checked. Needs cleaning puts it back.
A stay with no room yet
Sometimes the room type can sell a stay but no single room is free for all of its nights. When you book it, the form says so and offers Book it without a room for now. The stay holds a place of that room type, shows No room yet, and is counted against what you can sell, so you can never sell the same place twice.
- Open the stay and press Give it a room when a room is free for every night.
- A stay with no room cannot be checked in. Give it a room first.
- A bed sold with a course also waits for a room rather than failing the booking.
What changed on a stay
Open a stay and press History to see who changed what and when: the room, the dates, the price, the status. It never shows notes. History is kept as long as the stay's payments.
If a guest has not arrived, or is still in the house after their last night, the bell tells you once an hour and clears itself when you deal with the stay.
Take or refund a payment
Open a booking and use the Payments section. It shows three figures for the whole stay: Total, Paid, and Balance (what's still owed, in red if outstanding).
- Click Take payment (it shows the balance). The same payment window opens as on a booking or the customer page. If the stay has a guest linked, what they owe on it also shows on their customer profile, in their Balance and a Stays card, and you can take it from there too.
- The amount is the balance. Lower it for a part-payment or deposit; it can't be more than the stay owes.
- Pick how they paid (your own payment methods), the Date, and an optional Reference (e.g. a receipt number). For cash, type what they handed over under Received to see the change to give.
- Click Take. It's added to the list and the balance updates.
To give money back, click Record refund, enter the amount (you can't refund more than was paid), and save. Refunds show in the list as a negative amount.
Each payment has a Receipt button, and a Tax invoice button too once your Tax Rate and Tax ID are set in Centre Info → Finance, the same as a booking payment. In Germany, room payments and refunds taken at the desk are signed by your till security device (TSE) like any other desk sale, and appear in the tax export.
- Room payments post into Finance automatically under a new Accommodation income line, so they show in your P&L and cash totals alongside dives and retail.
- Taking payments and refunds needs permission to edit payments. Staff who can only see payments still see the balance, just not the buttons.
- A stay can't be paid more than it owes: a second entry of the same payment is refused and nothing is recorded.
- If you cancel a stay that's already been paid, you'll be reminded: cancelling frees the bed but does not refund the guest, so record a refund first if money is owed back.
Selling rooms with diving online
Once your rooms have a price (a Standard plan with a price), your booking page can offer them with the dives. After a customer has chosen their dives and pressed Continue, they see Need a place to stay?. It is optional: they can press Continue without a room.
What the customer sees:
- The dates are filled in from their dives: they arrive on the first dive day and leave the day after the last one. They can change both.
- Who needs a bed? lists everyone in the booking, ticked. Someone who already has a bed on those nights (a room already in the booking, or a Dive Menu extra that includes a stay) is shown unticked, with the reason.
- Rooms free for your dates shows each room type that has a bed or room free, with its photo, what it has, and each rate plan you sell on the booking page with its cancellation terms and what is paid now. Press Choose, look at the exact price, tick any optional extras (breakfast) and press Add to your booking.
- A group is looked after: four people in doubles become two rooms, shared evenly; a dorm is one booking with a bed for each person.
- The room appears on Check your booking under Where you're staying, with Change and Remove, and in the total.
What happens when they send the booking:
- The beds are held for 30 minutes while they pay, with the dives. If they do not pay, the dives and the beds are released together.
- A room is confirmed by its payment. If nothing is due online (a plan with no deposit), it is confirmed straight away and they pay at the centre. If your centre cannot take payment online, the room is reserved and you arrange the payment.
- Your booking alert lists the room under the bookings, and the customer's confirmation email lists it under Your stay with what is paid and what is left.
- The room is on your Accommodation calendar and in the stay's window, which says Booked online · order and the order's reference. Its payment reads Card, online (or PayPal).
Partner discount codes do not apply to rooms: they are always at your normal price.
Optional extras. In Settings → Bookable Rooms → Fees and taxes, tick Guests choose it on the booking site on a fee (for example breakfast, per person per night). It is then offered as an extra the guest ticks, priced into the room; a fee already in the room price cannot also be optional.
The step only shows for a centre that has the rooms module on and at least one room type with a priced Standard plan. If you turn the module off, the step goes away, rooms already booked stay, and turning it off is refused while upcoming stays exist.
Deposits and the balance
A rate plan can ask for a deposit (see Prices, rate plans, rules and fees). On the booking page:
- With a deposit, the customer pays the deposit now and the rest by the plan's balance date, or when they arrive if it has none.
- If the balance date is today or already past, they pay all of it now.
- With no deposit, nothing is taken online and the whole room is paid at the centre.
- If they choose Pay in full on the payment step, the room is paid in full too.
The stay shows the deposit and the balance date, and what is still owed appears in the customer's balance as for any stay.
The balance by link
When the balance date comes, before the guest arrives, DiveOps emails the person who booked a link to pay the rest by card. It goes out once a day, in the morning, and each guest gets one email.
- What it needs: the stay is confirmed, the guest has not arrived, something is still owed, there is an email address, and your centre can take card payment links (Settings → Integrations → Payments).
- If the email cannot be sent: the bell says Balance link not sent with the guest and dates. It is tried again the next day, three times at most.
- Send it yourself: open the stay and press Send balance link (under Payments). You get a QR, a copy button and an email box. Pressing it again shows the same link while it still asks for what is owed; if a payment arrived meanwhile, the old link is closed and a new one is made.
- Paid at the desk instead: record it as usual. A link for more than is now owed stops working, and the page tells the guest to contact you.
- Paid up: a stay that owes nothing never gets a link.
Refund a room paid online
Open the stay and look at Payments. A payment taken online says , online and has Refund to card (or Refund to PayPal).
- Press it. The window shows what can still be given back (never more than was paid) and asks for a reason.
- Type the amount to confirm and press Refund. The money goes back through Stripe or PayPal, with the share of any card fee that was added, and is recorded on the stay in the same moment: room income reversed, VAT reversed, and a credit note.
- A part refund can be followed by another, up to what was paid.
If you already sent the money back from Stripe's or PayPal's own site, do not refund it twice. Use Record a Stripe refund (or Record a PayPal refund) on that payment. It books what was sent back, with no money moving.
To send back a whole order at once (dives and rooms), use Refund order on the order card. A room is a row with its own card payment; money the guest paid for a room at the desk is handed back from the stay's own Record refund.
Record refund on a stay is for money taken at the desk. If the money was paid online, it refuses and points you to Refund to card, so a card payment can never be "refunded" in the books without the money moving.
Block a room for maintenance
- On the Accommodation page click Block a room.
- Choose the room/bed, the From and Until dates, and an optional reason (e.g. "AC repair"). Click Block room.
- Blocked rooms/beds can't be booked for those nights. Existing bookings are kept.
- Remove a block any time from the same window (the trash icon next to it).
See and filter bookings
- The Accommodation page lists every stay with guest, room/bed, dates, nights, status and total.
- Filter by status or search by guest, room or reference.
See bookings on a calendar
- At the top of the Accommodation page, switch to Calendar.
- The calendar is a tape chart: each room and bed is a row, the dates run across the top, and every booking is a coloured bar from check-in to check-out.
- Colours follow the booking status (confirmed, checked in, reserved, enquiry).
- Blocked rooms (maintenance) show as a grey striped bar.
- The checkout day is left free: the next guest can arrive the same day.
- Cancelled and no-show bookings are hidden (the bed is free again).
- Use ‹ / › to move the dates, or Today to jump back to now.
- Click any bar to open that booking and manage it, exactly like the list.
Change a booking by dragging
- Drag a bar to another room, or to another day. If the price changes you see the new price and confirm it.
- Drag the end of a bar to change the leaving day.
- Drop a bar on "Not yet given a room" to take its room away. It keeps a place of its type.
- A guest who is already here moves to the new room from today. A bed that comes with a dive booking only moves to another bed of its type.
- If something stops it (a room already taken, a stale screen), the bar goes back and you are told why. Change room or dates on the booking does the same without dragging.
- Click an empty night for New booking here (room and night filled in) or Block this room.
On a phone
The calendar becomes a list for one day: each room with tonight's guest or Free and a Book button, with stays waiting for a room first. Use ‹ / › to change the day.
Rooms report
Accommodation → Report shows, for a range of nights (up to a year), how many nights each room had on offer and sold, the share filled, the average price and the income. Nights that come with a dive booking are counted but not priced. Staff who may not see prices see the nights only.
Selling rooms online (the Stay page)
Once your rooms have a price and the booking page and the cart are on, your booking site has a Stay page (your booking address, then /stay). A guest picks their dates and how many people, sees every room and dorm bed with photos, what it has and the price for the whole stay, adds what they want and goes on to pay. No diving needs to be in the booking.
- The page reads its dates from the address, so a link like
…/stay?check_in=2026-11-02&check_out=2026-11-05&guests=2opens it filled in. You can paste one into a message or a post. - A room that is full for the dates stays on the page and says Full for these dates. With no dates chosen, rooms show without prices.
- A stay is held for 30 minutes while the guest pays, then confirmed. You get the same "new booking" alert and the guest gets the same confirmation email as for dives.
- To stop selling rooms online, turn off the Bookable Rooms module, the cart, or the booking page. The Stay page then disappears and so does the "Stay with us" section on your website.
A diver who has dives in their booking can still add a room from Need a place to stay?; it is the same rooms and the same prices.
Check in online before arrival
A few days before a guest arrives (3 by default; change it in Settings → Bookable Rooms → Before arrival), they get one email with a Check in online link, the balance to pay if there is one, and how to find you. The email goes once per booking, between 08:00 and 20:00 in your centre's time, and only when the guest has a real email address. To turn it off or change the words, open Settings → Emails → Stay - check in before you arrive.
On the check-in page the guest gives only what is missing. Where the law makes a property report its guests (Thailand, Indonesia, Malta), that is sex as on the passport, date of birth, nationality and passport number for each guest; everywhere else it is just their arrival time, how they are travelling, and a tick to accept your house rules. The page never shows what is already on file.
In the stay window, the Check in block shows whether the guest has checked in, their arrival time, and who else is on the stay. Copy check-in link and Email check-in link send it by hand, for example when someone books the day before. Use Add a guest to put another customer on the stay (a stay for 3 has room for 2 other guests).
Guest register
Accommodation → Guest register lists the guests arriving on a day, with the details your immigration report needs. It shows only to people with the See guest passport details permission (front desk level and above); passport numbers are hidden behind the last four digits until you open a stay.
- Thailand: a Download TM30 file button (once your centre has been set up for it) builds the Excel file for the immigration portal, one file for one property and one arrival date. Guests who cannot go in the file (no passport number, sex X, and so on) are listed above it so you can add them by hand. Mark all as reported ticks them off.
- Indonesia: the portal has no file import, so each stay has two ticks, Arrival reported in APOA and Departure reported.
- Everywhere else: a plain list of who is arriving and what is on file.
Passport numbers and sex are removed from a guest's record one year after their last visit (two years in Malta), unless they have another stay or booking ahead.
Tips
- A room or bed you sell here should not also be listed under Places to stay. Keep each in one place.
- A bed sold as a Dive Menu add-on on a website order is per person: each diver who takes it has their own check-in date on their own line, so two people on one order can arrive on different days.
- Same-day turnover is fine: a guest can check out and another check in on the same date.
- Cancelling a booking frees the bed again automatically.
Troubleshooting
- Symptom: "Those nights are no longer free for that room type" → Cause / fix: every room/bed of that type is already booked for an overlapping night. Try other dates, fewer beds, or a different room type.
- Symptom: the New booking room-type list is empty → Cause / fix: add room types and rooms/beds first in Settings → Bookable Rooms.
- Symptom: "Stays arriving on … need at least … nights" (or another rule) when booking → Cause / fix: a rule you set on the price calendar. Change the dates, or tick Book anyway and say why. Change the rule under Settings → Bookable Rooms → Prices.
- Symptom: "No price is set for these nights" → Cause / fix: the room type has no price. Add one under Prices, or type an Agreed price on the booking.
- Symptom: "This stay has … paid" when changing a price → Cause / fix: the new price is below what the guest has paid. Record a refund first, then lower the price.
- Symptom: customers are not offered a room on the booking page → Cause / fix: the rooms module is off, no room type has an active Standard plan with a price, or the room's plan is not a Standard one (or one worked out from it). Add a price under Prices.
- Symptom: "That money was paid online. Use Refund to card" on Record refund → Cause / fix: the payment was taken by card or PayPal. Use Refund to card next to that payment.
- Symptom: a room is Awaiting payment and the beds look taken → Cause / fix: the customer started a booking and has not paid yet. The beds free themselves after 30 minutes.
- Symptom: "No single room is free for all of those nights" → Cause / fix: the room type has a place for each night, but not in one room. Choose Book it without a room for now, then give it a room or split it across two rooms.
- Symptom: "Give this stay a room before checking in" → Cause / fix: the stay has no room yet. Open it and press Give it a room.
- Symptom: "This guest is leaving before their last night. Choose what to charge" → Cause / fix: pick Charge only the nights stayed or Charge the full price in the check-out window.
- Symptom: a room I want is greyed out in Change room or dates → Cause / fix: it is taken or blocked on some of those nights. Pick another, or split the stay.
- Symptom: a guest did not get the check-in email → Cause / fix: the stay has no email address on file, it is a test address, the email is switched off in Settings → Emails, or the stay is already inside the days before arrival from when you switched rooms on. Open the stay and use Email check-in link or Copy check-in link.
- Symptom: "This link has ended" on the guest's check-in page → Cause / fix: the link ran out the day after their last night, or rooms were switched off. Open the stay and send a new link.
- Symptom: Add a guest is missing in the Check in block → Cause / fix: the stay is for one guest, or every place is taken. Raise the number of guests on the stay first.
- Symptom: the Stay page says "not found" → Cause / fix: the page is only there while the Bookable Rooms module, the booking page and the cart are on and at least one room type has a Standard price. Check each, then reload.
- Symptom: a room is not on the Stay page → Cause / fix: it has no Standard price, or its Standard plan is switched off.
- Symptom: no Guest register link → Cause / fix: your access level does not include See guest passport details. Ask your owner.
- Symptom: no Accommodation menu item → Cause / fix: the module isn't enabled for your centre, or your role doesn't have the Accommodation page permission.
Related
- kb-accommodation.md · the separate list of nearby hotels you recommend (feeds your bot).
- bookings.md · dive and course bookings.