Our idea is that a Room Booking Module would be a fantastic addition to CiviCRM.
The Room Booking Module would give the ability to manage the availability of multiple rooms (i.e. meetings rooms / conference facilities) and assign the bookings to CiviCRM Contacts. Each booking would appear on a contacts new ‘Room Booking’ Tab and an activity ‘Room Booked’ would also be generated. This is the same methodology used for CiviEvents. A calendar view would allow you to search current bookings and add new ones in available time slots. In addition a room could not be booked if that time slot had already been taken unless a booking had been cancelled.
When making a booking you would be able to assign resources to the room. This could be limited number items, such as Projectors, or unlimited items such as Cups of Coffee. Each resource would have a unit cost which would be automatically added to the Booking charge.
If applicable each room would have a fixed cost per time period (i.e. Morning / Afternoon/ Evening). The cost would alter automatically based upon which CiviCRM Contact was making the booking. As an example Members may get a cheaper rate. All costs (room and resources) would be totalled by the system. In the event of something going wrong on the day with a booking a manual override for the total must be available. Each booking cost when logged would be integrated with the CiviCRM Contribution module.
When making a booking a room layout must also be specified. The reason for this is that room capacity changes based upon the layout required. As an example using ‘Theatre’ layout a room may hold 80 people but under ‘Board Room’ layout the same room may only hold 30 people.
The module would also provide PDF Templates for contacting those making the Booking. A good example being that a PDF invoice with all cost / date / room details would have to be generated after the Booking has taken place with a method for emailing the invoice. With Room Bookings invoicing after the booking is common as extra resources are often utilised on the day.
Further phases to this new function could be;
- To provide a public interface so anonymous users could make their own bookings which were then moderated.
- Take Credit Card payments via the CiviCRM payment system
Update: A spec for this project is now on the CiviCRM wiki