When it comes to using Drupal for managing reservations, there is not "a" module for it, but over a dozen ...
Below is a summary of the available modules and/or distributions for Drupal sites (notational convention: D7 = Drupal version 7, D6 = Drupal version 6).
Modules with a stable D7 release
Here are some modules that might fit, which have a stable D7 release (quotes are from their project pages):
Availability Calendars (D6 or D7).
... allows you to add an availability calendar to entities. Example use cases are tourist accommodation, e.g. bed and breakfast, holiday homes or self catered apartments, and car or motor bike rental.
An availability calendar shows your customers at what dates your accommodation is still available and at what dates it is already booked.
Simple Reservation (D6 or D7).
... provides a simple and easy way to reserve items which can be created by the administrator. Examples for it's usage can be hotel rooms, boats, cars, airplanes, basically anything you can think of which can be reserved by one individual.
The module provides the possibility to create reservations for other users (dependend on the permissions), and provides also restrictions in the maximum number of reservations a user can make and a maximum time a reservation can be made in advance.
There is NO support for payment, booking and what ever one could imagine beyond the pure and simple reservation, and it is also NOT intended to create more than this simple functionality.
MERCI (D6 or D7).
... can extend any content type into a list of unique reservable items (like studios) or buckets of interchangeable items (like DV cameras). We followed the approach used by Organic Groups, Feed API, and Scheduler and added MERCI's configuration to the Edit tab of those content types.
Resource Conflict (D6 or D7).
... allows for users to book resources for use during events. For example, a student can book a microscope for use within their lab.
Room Reservations (D7).
... for use by academic libraries to manage access to and use of their study rooms.
All academic libraries have rooms set aside for student study and collaboration. These rooms are often available on a first come, first serve basis. Many libraries would like to have a room reservation system that would allow students to better plan their use of these often scarce resources, but setting up and administering such a system without computer support is a very difficult and time consuming undertaking.
The Room Reservation module was created to meet this need. It allows any library to very quickly put together a reservation system customized to its own particular requirements. And once the system has been set up, it performs all the functions necessary to manage the use of group study rooms with practically no involvement from the library staff.
Although this application was written specifically for use by academic libraries, it could also be useful to any facility that provides rooms that can be reserved and used on a short term basis.
... is a booking and room management solution for hotels, vacation rentals and B&Bs.
Its module page also mentions some related modules you may want to look at, such as:
- Rooms Package: Define special offers for bookings.
- Rooms Availability Constraints - Allows admins to define availability constraints such as the minimum period of a booking.
- Rooms Views- Provides a "Rooms availability" filter and a "Booking form" field to improve the Views integration for Rooms.
Modules without a stable D7 release
Some more modules that might fit, which do have a D7 release, but not a stable version yet (quotes are from their project pages):
Booking Time Slots (D6 or D7, but only a dev version for D7).
... provides Time Slots Booking functionality.
The Drupal 7 version allows you to set-up schedule for Venue Facility, so users can book slots (e.g. classes) within specified opening hours.
Here is a a sample screenprint created with this module:
Resource Booking (D6 or D7, but only a beta version for both).
... provides a widget that can be included in any content type and enable resource booking.
Agreservations (D6 or D7, but only a beta version for both).
... to handle reservations of resources.
Hotel Booking System for Ubercart (D6 or D7, but only a beta version for both).
... The uc_hotel module is a hotel booking system for Drupal and Ubercart.
It does not manage individual rooms, but rather lets you create room types, and set how many of each type are available for specific dates on the calendar. Each room type can be assigned a different rate, or be based off a single master rate and have a modifier applied to adjust that rate by a certain amount.
Reservations (D7-alfa version only).
... consists of an API that enables nodes of any content type to be reserved based by users by role as either a resource of a bucket. Using the bucket configuration works more like a hotel or rental car system where customers reserve a type or item and the specific item they get depends on what is available at the time the reservation starts. This project includes multiple sub-modules including Reservation UI which provides a Reservation Request -> Confirmation -> Checkout -> Check In workflow driven Views making to easy to modify. Additional modules can enforce custom validation, add pricing, or add additional availability to the basic hours of operation.
Note: the module page contains about 7 additional (related) modules.
Reservation (D7-alfa version only).
... allows site users to reserve a unit. A unit could be anything, but the most common are rooms or pieces of equipment. Site builders create the units that can be reserved, adding any additional fields. Validation of reservations is done using Rules, which can be customized by the site builder.
Modules integrating with other booking systems
There are a few Drupal Distributions about bookings / reservations avaialble also, though they all seem to only have a beta version for D7, such as (quotes are from their project pages):
... helps you create a full featured Hotel site with online booking and online availability.
... has everything you need to kickstart your restaurant website. It comes with a menu management system, a reservation system, a customizable blog and events management.
... to set up a website, that will suit all your needs in managing your own hotel, inn or hostel online.
It gives a set of options for visitors to make room reservations, contact hotel administration or just follow hotel’s newsletter to be aware of all special offers and discounts.
Easy booking profile is powered by Drupal Rooms and Drupal Commerce - widely used and popular contributed decisions, which means active maintaining and timely technical support.
Booking Systems Comparison
Refer to Comparison of Booking System modules for a comparison of various modules related to bookings / reservations.
This comparison contains some other modules (not mentioned in my answer here) that might be worth considering also, e.g. in case of requirements that are slightly different (as compare to those in the question here).
My recommended shortlist
I'd consider the list of modules mentioned in Modules with a stable D7 release as my shortlist for further evaluation, i.e:
- Availability Calendars (Reported installs: 2.061 sites).
- Rooms (Reported installs: 1.575 sites).
- MERCI (Reported installs: 441 sites).
- Resource Conflict (Reported installs: 329 sites).
- Simple Reservation (Reported installs: 202 sites).
- Room Reservations (Reported installs: 156 sites).
How to pick the module that fits best
I've ordered my recommended shortlist above by number of reported installs. Though that is often a good first indicator, it should not be used as the only criterium to pick a module.
So do your homework to pick the right one for you. E.g. by using criteria such as those I often use for selecting module, as mentioned in the community documentation about Maintenance Scorecards.
Here is the intro about it (from that page):
... contains a list of 23 criteria (=28-5) that might help to evaluate
the maintenance and support of contributed modules. Below is an
attempt to apply those criteria to each of the native charting modules
Obvious, these scorecards are related to "charting modules", but the same criteria are applicable, IMHO, whenever you need to decide between multiple modules.
Also note that I've ordered my shortlist above by number of reported installs. Though that is often a good first indicator, it should not be used as the only criterium to pick a module. So do your homework to pick the right one for you.
Disclosure: I'm the author of that community documentation page (partially inspired by the 28 criteria in the issue linked near the beginning of the scorecards paragraph).