I think that would be a great thing to have. If I may make a request ... try not to make your module hotel specific. The general features you outline above could easily describe theater tickets, airline seats, doctor's appointments, library book checkouts, etc. Basically any situation where you have a limited number of rooms/seats/time slots/etc. which can each be purchased/reserved for a specified duration at a specified time.
I also suggest making sure your implementation of reservations is thread-safe to avoid double booking.


