
Hotel Management & Room Booking (PMS)
Hotel management and PMS: reservations that cannot double-sell a room, seasonal rates, a folio billed per night, housekeeping and night audit.
Available for Odoo 16.0, Odoo 17.0, Odoo 18.0, Odoo 19.0, Odoo 20.0. Technical name bambooforge_hotel.
Transcript of the walkthrough (Odoo 20)
Hotel Management & Room Booking (PMS). Hotel management and PMS: reservations that cannot double-sell a room, seasonal rates, a folio billed per night, housekeeping and night audit. Said before you buy, because it is the half that decides whether the app fits: In the next few minutes: hotel management & room booking (pms), then reservations, then seasonal rates, then the folio, then housekeeping. Then what this app deliberately does not do, so you can tell before you buy whether it fits.
Everything lives under Hotel then Today's desk then Reservations then Room board. Odoo Community 16.0, 17.0, 18.0 or 19.0 with account and product. No Enterprise module, no external service. Hotel Management & Room Booking (PMS).
Two rules decide whether a hotel can use the software at all: a room cannot be sold twice for the same night, and nobody checks out owing money that was never written down. Everything here supports those two. Reservations Guest, dates, room type, and an optional room number - a booking can be held on the type and get its number at check-in, the way a hotel really works. Overlapping sales of the same room are refused by the database itself, with an exclusion constraint over the room and the dates: two clerks assigning the same room in the same second cannot both be told it was free.
A cancelled or no-show booking frees the room immediately. Bookings held on a room type are counted too. Confirming a booking checks every night of it against the number of rooms of that type, so a hotel cannot quietly sell fourteen doubles it does not have. Overbooking is allowed by a number the manager types on the room type, never by accident.
A booking that sleeps more people than the room holds is refused: a fire certificate is not a preference. Assign a free room picks a room of the right type that is genuinely free for the whole stay, preferring one that is clean. Seasonal rates. The same room is not the same price in August.
Rates apply per room type over a date range with a minimum stay, and where two rates cover a night the lower sequence wins - that is how a promotion beats the season. A stay that crosses a season is priced night by night. The folio One line per night at that night's rate, plus extras and city tax. Invoiced in one click; a line that has been invoiced can no longer be edited or deleted - corrections belong on the invoice.
Nights are never posted twice, however often the button is pressed. Everything on a folio is a charge. Deposits and payments belong in Accounting, against the invoice the folio raises, where they are reconciled and can be seen. Check-out posts the bill, so what the guest is handed has a number on it, and every invoice a stay raised is one click from the booking.
Crediting an invoice makes exactly its charges billable again. Housekeeping. Housekeeping is a separate state from occupancy, because a room can be occupied and dirty, or free and not yet cleaned. Checking a guest into a room housekeeping has not released is refused.
Checking out puts the room back into "dirty" automatically, and a room with a guest in it cannot be taken out of order. Night audit. A scheduled job that does what the night manager used to do at 2am: it posts the night that has just been slept and turns yesterday's unarrived bookings into no-shows, so the morning report is true without anybody staying up. Tonight is not posted, because it has not happened.
The business date is read through the company's timezone, so a hotel at UTC+7 closes its own day and not London's. A guaranteed booking - a card guarantee, a prepayment, a corporate contract - is never released by the job: a guest on a delayed connection still has a room at 23:00. A release is stamped and can be undone with Reinstate, which checks whether the room is still there rather than pretending it is. Roles.
Housekeeping sees the room board and changes room status, and never sees a rate or a folio. Reception books, checks in and out, posts charges and invoices. The manager configures room types and rates. How we make sure it works.
Before every release, 77 automated checks run against this app on Odoo 16, 17, 18, 19 and 20. Among them: A booking the clerk cannot see still blocks the room. A room cannot be sold twice. A room cannot be sold by a hotel that does not own it.
A room sold for tonight cannot be taken out of order. A room type cannot be sold more often than it has rooms. The complete list is in the source you receive. Questions people ask.
Which Odoo versions does it run on? Odoo 16.0, 17.0, 18.0, 19.0, 20.0, on the series you buy it for; each series is its own listing. Community or Enterprise? Both.
It needs no Enterprise app. Support. support@bambooforge.dev - answered within two business days. OPL-1; one purchase covers one production database plus its staging copies.
The complete manual is at docs dot bambooforge dot dev, the demo database is linked from the store page, and support answers within twenty-four hours. Links are in the description.



Transcript of the walkthrough (Odoo 19)
Hotel Management & Room Booking (PMS). Hotel management and PMS: reservations that cannot double-sell a room, seasonal rates, a folio billed per night, housekeeping and night audit. In the next few minutes: hotel management & room booking (pms), then reservations, then seasonal rates, then the folio, then housekeeping. Then what this app deliberately does not do, so you can tell before you buy whether it fits.
Everything lives under Hotel then Today's desk then Reservations then Room board. Odoo Community 16.0, 17.0, 18.0 or 19.0 with account and product. No Enterprise module, no external service. Hotel Management & Room Booking (PMS).
Two rules decide whether a hotel can use the software at all: a room cannot be sold twice for the same night, and nobody checks out owing money that was never written down. Everything here supports those two. Reservations Guest, dates, room type, and an optional room number - a booking can be held on the type and get its number at check-in, the way a hotel really works. Overlapping sales of the same room are refused by the database itself, with an exclusion constraint over the room and the dates: two clerks assigning the same room in the same second cannot both be told it was free.
A cancelled or no-show booking frees the room immediately. Bookings held on a room type are counted too. Confirming a booking checks every night of it against the number of rooms of that type, so a hotel cannot quietly sell fourteen doubles it does not have. Overbooking is allowed by a number the manager types on the room type, never by accident.
A booking that sleeps more people than the room holds is refused: a fire certificate is not a preference. Assign a free room picks a room of the right type that is genuinely free for the whole stay, preferring one that is clean. Seasonal rates. The same room is not the same price in August.
Rates apply per room type over a date range with a minimum stay, and where two rates cover a night the lower sequence wins - that is how a promotion beats the season. A stay that crosses a season is priced night by night. The folio One line per night at that night's rate, plus extras and city tax. Invoiced in one click; a line that has been invoiced can no longer be edited or deleted - corrections belong on the invoice.
Nights are never posted twice, however often the button is pressed. Everything on a folio is a charge. Deposits and payments belong in Accounting, against the invoice the folio raises, where they are reconciled and can be seen. Check-out posts the bill, so what the guest is handed has a number on it, and every invoice a stay raised is one click from the booking.
Crediting an invoice makes exactly its charges billable again. Housekeeping. Housekeeping is a separate state from occupancy, because a room can be occupied and dirty, or free and not yet cleaned. Checking a guest into a room housekeeping has not released is refused.
Checking out puts the room back into "dirty" automatically, and a room with a guest in it cannot be taken out of order. Night audit. A scheduled job that does what the night manager used to do at 2am: it posts the night that has just been slept and turns yesterday's unarrived bookings into no-shows, so the morning report is true without anybody staying up. Tonight is not posted, because it has not happened.
The business date is read through the company's timezone, so a hotel at UTC+7 closes its own day and not London's. A guaranteed booking - a card guarantee, a prepayment, a corporate contract - is never released by the job: a guest on a delayed connection still has a room at 23:00. A release is stamped and can be undone with Reinstate, which checks whether the room is still there rather than pretending it is. Roles.
Housekeeping sees the room board and changes room status, and never sees a rate or a folio. Reception books, checks in and out, posts charges and invoices. The manager configures room types and rates. Support.
support@bambooforge.dev - answered within two business days. OPL-1; one purchase covers one production database plus its staging copies. The complete manual is at docs dot bambooforge dot dev, the demo database is linked from the store page, and support answers within twenty-four hours. Links are in the description.



Transcript of the walkthrough (Odoo 18)
Hotel Management & Room Booking (PMS). Hotel management and PMS: reservations that cannot double-sell a room, seasonal rates, a folio billed per night, housekeeping and night audit. In the next few minutes: hotel management & room booking (pms), then reservations, then seasonal rates, then the folio, then housekeeping. Then what this app deliberately does not do, so you can tell before you buy whether it fits.
Everything lives under Hotel then Today's desk then Reservations then Room board. Odoo Community 16.0, 17.0, 18.0 or 19.0 with account and product. No Enterprise module, no external service. Hotel Management & Room Booking (PMS).
Two rules decide whether a hotel can use the software at all: a room cannot be sold twice for the same night, and nobody checks out owing money that was never written down. Everything here supports those two. Reservations Guest, dates, room type, and an optional room number - a booking can be held on the type and get its number at check-in, the way a hotel really works. Overlapping sales of the same room are refused by the database itself, with an exclusion constraint over the room and the dates: two clerks assigning the same room in the same second cannot both be told it was free.
A cancelled or no-show booking frees the room immediately. Bookings held on a room type are counted too. Confirming a booking checks every night of it against the number of rooms of that type, so a hotel cannot quietly sell fourteen doubles it does not have. Overbooking is allowed by a number the manager types on the room type, never by accident.
A booking that sleeps more people than the room holds is refused: a fire certificate is not a preference. Assign a free room picks a room of the right type that is genuinely free for the whole stay, preferring one that is clean. Seasonal rates. The same room is not the same price in August.
Rates apply per room type over a date range with a minimum stay, and where two rates cover a night the lower sequence wins - that is how a promotion beats the season. A stay that crosses a season is priced night by night. The folio One line per night at that night's rate, plus extras and city tax. Invoiced in one click; a line that has been invoiced can no longer be edited or deleted - corrections belong on the invoice.
Nights are never posted twice, however often the button is pressed. Everything on a folio is a charge. Deposits and payments belong in Accounting, against the invoice the folio raises, where they are reconciled and can be seen. Check-out posts the bill, so what the guest is handed has a number on it, and every invoice a stay raised is one click from the booking.
Crediting an invoice makes exactly its charges billable again. Housekeeping. Housekeeping is a separate state from occupancy, because a room can be occupied and dirty, or free and not yet cleaned. Checking a guest into a room housekeeping has not released is refused.
Checking out puts the room back into "dirty" automatically, and a room with a guest in it cannot be taken out of order. Night audit. A scheduled job that does what the night manager used to do at 2am: it posts the night that has just been slept and turns yesterday's unarrived bookings into no-shows, so the morning report is true without anybody staying up. Tonight is not posted, because it has not happened.
The business date is read through the company's timezone, so a hotel at UTC+7 closes its own day and not London's. A guaranteed booking - a card guarantee, a prepayment, a corporate contract - is never released by the job: a guest on a delayed connection still has a room at 23:00. A release is stamped and can be undone with Reinstate, which checks whether the room is still there rather than pretending it is. Roles.
Housekeeping sees the room board and changes room status, and never sees a rate or a folio. Reception books, checks in and out, posts charges and invoices. The manager configures room types and rates. Support.
support@bambooforge.dev - answered within two business days. OPL-1; one purchase covers one production database plus its staging copies. The complete manual is at docs dot bambooforge dot dev, the demo database is linked from the store page, and support answers within twenty-four hours. Links are in the description.



Transcript of the walkthrough (Odoo 17)
Hotel Management & Room Booking (PMS). Hotel management and PMS: reservations that cannot double-sell a room, seasonal rates, a folio billed per night, housekeeping and night audit. In the next few minutes: hotel management & room booking (pms), then reservations, then seasonal rates, then the folio, then housekeeping. Then what this app deliberately does not do, so you can tell before you buy whether it fits.
Everything lives under Hotel then Today's desk then Reservations then Room board. Odoo Community 16.0, 17.0, 18.0 or 19.0 with account and product. No Enterprise module, no external service. Hotel Management & Room Booking (PMS).
Two rules decide whether a hotel can use the software at all: a room cannot be sold twice for the same night, and nobody checks out owing money that was never written down. Everything here supports those two. Reservations Guest, dates, room type, and an optional room number - a booking can be held on the type and get its number at check-in, the way a hotel really works. Overlapping sales of the same room are refused by the database itself, with an exclusion constraint over the room and the dates: two clerks assigning the same room in the same second cannot both be told it was free.
A cancelled or no-show booking frees the room immediately. Bookings held on a room type are counted too. Confirming a booking checks every night of it against the number of rooms of that type, so a hotel cannot quietly sell fourteen doubles it does not have. Overbooking is allowed by a number the manager types on the room type, never by accident.
A booking that sleeps more people than the room holds is refused: a fire certificate is not a preference. Assign a free room picks a room of the right type that is genuinely free for the whole stay, preferring one that is clean. Seasonal rates. The same room is not the same price in August.
Rates apply per room type over a date range with a minimum stay, and where two rates cover a night the lower sequence wins - that is how a promotion beats the season. A stay that crosses a season is priced night by night. The folio One line per night at that night's rate, plus extras and city tax. Invoiced in one click; a line that has been invoiced can no longer be edited or deleted - corrections belong on the invoice.
Nights are never posted twice, however often the button is pressed. Everything on a folio is a charge. Deposits and payments belong in Accounting, against the invoice the folio raises, where they are reconciled and can be seen. Check-out posts the bill, so what the guest is handed has a number on it, and every invoice a stay raised is one click from the booking.
Crediting an invoice makes exactly its charges billable again. Housekeeping. Housekeeping is a separate state from occupancy, because a room can be occupied and dirty, or free and not yet cleaned. Checking a guest into a room housekeeping has not released is refused.
Checking out puts the room back into "dirty" automatically, and a room with a guest in it cannot be taken out of order. Night audit. A scheduled job that does what the night manager used to do at 2am: it posts the night that has just been slept and turns yesterday's unarrived bookings into no-shows, so the morning report is true without anybody staying up. Tonight is not posted, because it has not happened.
The business date is read through the company's timezone, so a hotel at UTC+7 closes its own day and not London's. A guaranteed booking - a card guarantee, a prepayment, a corporate contract - is never released by the job: a guest on a delayed connection still has a room at 23:00. A release is stamped and can be undone with Reinstate, which checks whether the room is still there rather than pretending it is. Roles.
Housekeeping sees the room board and changes room status, and never sees a rate or a folio. Reception books, checks in and out, posts charges and invoices. The manager configures room types and rates. Support.
support@bambooforge.dev - answered within two business days. OPL-1; one purchase covers one production database plus its staging copies. The complete manual is at docs dot bambooforge dot dev, the demo database is linked from the store page, and support answers within twenty-four hours. Links are in the description.



Transcript of the walkthrough (Odoo 16)
Hotel Management & Room Booking (PMS). Hotel management and PMS: reservations that cannot double-sell a room, seasonal rates, a folio billed per night, housekeeping and night audit. In the next few minutes: hotel management & room booking (pms), then reservations, then seasonal rates, then the folio, then housekeeping. Then what this app deliberately does not do, so you can tell before you buy whether it fits.
Everything lives under Hotel then Today's desk then Reservations then Room board. Odoo Community 16.0, 17.0, 18.0 or 19.0 with account and product. No Enterprise module, no external service. Hotel Management & Room Booking (PMS).
Two rules decide whether a hotel can use the software at all: a room cannot be sold twice for the same night, and nobody checks out owing money that was never written down. Everything here supports those two. Reservations Guest, dates, room type, and an optional room number - a booking can be held on the type and get its number at check-in, the way a hotel really works. Overlapping sales of the same room are refused by the database itself, with an exclusion constraint over the room and the dates: two clerks assigning the same room in the same second cannot both be told it was free.
A cancelled or no-show booking frees the room immediately. Bookings held on a room type are counted too. Confirming a booking checks every night of it against the number of rooms of that type, so a hotel cannot quietly sell fourteen doubles it does not have. Overbooking is allowed by a number the manager types on the room type, never by accident.
A booking that sleeps more people than the room holds is refused: a fire certificate is not a preference. Assign a free room picks a room of the right type that is genuinely free for the whole stay, preferring one that is clean. Seasonal rates. The same room is not the same price in August.
Rates apply per room type over a date range with a minimum stay, and where two rates cover a night the lower sequence wins - that is how a promotion beats the season. A stay that crosses a season is priced night by night. The folio One line per night at that night's rate, plus extras and city tax. Invoiced in one click; a line that has been invoiced can no longer be edited or deleted - corrections belong on the invoice.
Nights are never posted twice, however often the button is pressed. Everything on a folio is a charge. Deposits and payments belong in Accounting, against the invoice the folio raises, where they are reconciled and can be seen. Check-out posts the bill, so what the guest is handed has a number on it, and every invoice a stay raised is one click from the booking.
Crediting an invoice makes exactly its charges billable again. Housekeeping. Housekeeping is a separate state from occupancy, because a room can be occupied and dirty, or free and not yet cleaned. Checking a guest into a room housekeeping has not released is refused.
Checking out puts the room back into "dirty" automatically, and a room with a guest in it cannot be taken out of order. Night audit. A scheduled job that does what the night manager used to do at 2am: it posts the night that has just been slept and turns yesterday's unarrived bookings into no-shows, so the morning report is true without anybody staying up. Tonight is not posted, because it has not happened.
The business date is read through the company's timezone, so a hotel at UTC+7 closes its own day and not London's. A guaranteed booking - a card guarantee, a prepayment, a corporate contract - is never released by the job: a guest on a delayed connection still has a room at 23:00. A release is stamped and can be undone with Reinstate, which checks whether the room is still there rather than pretending it is. Roles.
Housekeeping sees the room board and changes room status, and never sees a rate or a folio. Reception books, checks in and out, posts charges and invoices. The manager configures room types and rates. Support.
support@bambooforge.dev - answered within two business days. OPL-1; one purchase covers one production database plus its staging copies. The complete manual is at docs dot bambooforge dot dev, the demo database is linked from the store page, and support answers within twenty-four hours. Links are in the description.



Key facts
- What it is
- Hotel management and PMS: reservations that cannot double-sell a room, seasonal rates, a folio billed per night, housekeeping and night audit.
- For
- Industries
- Odoo versions
- 16.0, 17.0, 18.0, 19.0, 20.0 - Community and Enterprise
- Runs on
- Odoo.sh or Odoo you host yourself - not Odoo Online, which accepts no third-party apps
- Price
- 149 EUR, one-time, on the Odoo Apps Store
- Technical name
- bambooforge_hotel
- Not for
- Said before you buy, because it is the half that decides whether the app fits:; Sell the same room twice: the database itself refuses overlapping sales, and a room type cannot sell more rooms than it has.; Overbook by accident - only by the number a manager types on the room type.; Sleep more people in a room than it holds.
- Manual last updated
- 2026-10-15
Hotel Management & Room Booking (PMS)
Two rules decide whether a hotel can use the software at all: a room cannot be sold twice for the same night, and nobody checks out owing money that was never written down. Everything here supports those two.
Reservations
Guest, dates, room type, and an optional room number - a booking can be held on the type and get its number at check-in, the way a hotel really works.
Overlapping sales of the same room are refused by the database itself, with an exclusion constraint over the room and the dates: two clerks assigning the same room in the same second cannot both be told it was free. A cancelled or no-show booking frees the room immediately.
Bookings held on a room type are counted too. Confirming a booking checks every night of it against the number of rooms of that type, so a hotel cannot quietly sell fourteen doubles it does not have. Overbooking is allowed by a number the manager types on the room type, never by accident.
A booking that sleeps more people than the room holds is refused: a fire certificate is not a preference.
Assign a free room picks a room of the right type that is genuinely free for the whole stay, preferring one that is clean.
Seasonal rates
The same room is not the same price in August. Rates apply per room type over a date range with a minimum stay, and where two rates cover a night the lower sequence wins - that is how a promotion beats the season. A stay that crosses a season is priced night by night.
The folio
One line per night at that night's rate, plus extras and city tax.
Invoiced in one click; a line that has been invoiced can no longer be edited or deleted - corrections belong on the invoice.
Nights are never posted twice, however often the button is pressed.
Everything on a folio is a charge. Deposits and payments belong in Accounting, against the invoice the folio raises, where they are reconciled and can be seen.
Check-out posts the bill, so what the guest is handed has a number on it, and every invoice a stay raised is one click from the booking. Crediting an invoice makes exactly its charges billable again.
Housekeeping
Housekeeping is a separate state from occupancy, because a room can be occupied and dirty, or free and not yet cleaned. Checking a guest into a room housekeeping has not released is refused. Checking out puts the room back into "dirty" automatically, and a room with a guest in it cannot be taken out of order.
Night audit
A scheduled job that does what the night manager used to do at 2am: it posts the night that has just been slept and turns yesterday's unarrived bookings into no-shows, so the morning report is true without anybody staying up. Tonight is not posted, because it has not happened. The business date is read through the company's timezone, so a hotel at UTC+7 closes its own day and not London's.
A guaranteed booking - a card guarantee, a prepayment, a corporate contract - is never released by the job: a guest on a delayed connection still has a room at 23:00. A release is stamped and can be undone with Reinstate, which checks whether the room is still there rather than pretending it is.
Roles
Housekeeping sees the room board and changes room status, and never sees a rate or a folio. Reception books, checks in and out, posts charges and invoices. The manager configures room types and rates.
Requirements
Odoo Community 16.0, 17.0, 18.0, 19.0 or 20.0 with account and product. No Enterprise module, no external service.
How we make sure it works
Before every release, 77 automated checks run against this app on Odoo 16, 17, 18, 19 and 20. Among them:
A booking the clerk cannot see still blocks the room.
A room cannot be sold twice.
A room cannot be sold by a hotel that does not own it.
A room sold for tonight cannot be taken out of order.
A room type cannot be sold more often than it has rooms.
The complete list is in the source you receive.
What it does not do
Said before you buy, because it is the half that decides whether the app fits:
Sell the same room twice: the database itself refuses overlapping sales, and a room type cannot sell more rooms than it has.
Overbook by accident - only by the number a manager types on the room type.
Sleep more people in a room than it holds.
Install
Copy bambooforge_hotel into your addons path and update the app list, or install the ZIP from the Odoo Apps Store.
Install Hotel Management & Room Booking (PMS).
Open Hotel - its menus are Today's desk, Reservations, Room board, Housekeeping.
Questions people ask
- Which Odoo versions does it run on?
Odoo 16.0, 17.0, 18.0, 19.0, 20.0, on the series you buy it for; each series is its own listing.
- Community or Enterprise?
Both. It needs no Enterprise app.
- What does it need?
The standard Discuss, Invoicing, Products, Settings apps. No extra Python package.
- Where does it show up?
Under the Hotel menu (Today's desk, Reservations, Room board, Housekeeping).
- Does anything leave my server?
No. It makes no call outside your Odoo server: no telemetry, no licence check, no third-party service.
- What happens if I uninstall it?
Odoo drops the app's own tables and fields; the standard records it worked on (contacts, orders, products) stay as they are.
Support
support@bambooforge.dev - answered within two business days. OPL-1; one purchase covers one production database plus its staging copies.