rEEservation booking engine
rEEservation is the add-on for ExpressionEngine 2.x that enables you to accept reservations/bookings on your website and handle them easily. In can be used to book hotel rooms, tickets for event, conference seats etc.
Main features of module include:
Frontend:
- book any object represented by EE channel entry
- check whether object has been booked already
- display booking details
- send notifications
- instant payment using PayPal
- book several places at once
Backend:
- search and list all bookings
- create booking on behalf of customer
- display and edit booking details
- send notification
Just install the module, place the form on your website - and you can start accepting reservations instantly!
The add-on is easily expandable using extension hooks it contains (you can intergrate member registration or payment gateways).
Now bundled with its own plugin for biulding booking/availability calendar!
See the screenshots to get general impression and make sure you check the docs
For support, please email .(JavaScript must be enabled to view this email address).
Comments
Comments are closed. To get support, email .(JavaScript must be enabled to view this email address).


CUrrently I am trying to craft the Solspace Calendar module into something like this, but I think your module may be more of what I’m looking for. However I have a few questions before I buy.
What I’m trying to achieve is the following:
The site is for a number of vacation homes each with a different owner and there is one primary rental unit that gets priority over the others. A visitor comes to the site and is presented with a form to check if the dates they want to rent the primary unit are available. They enter a checkin and checkout date (using jqueryUI datepicker) and submit the form. Upon submitting they are directed to a page with a 12 month calendar showing the availability of the primary unit. If it’s available there is a form to give the rest of their info and make the reservation. If it’s not available then they get a message to let them know the primary unit is not available and a list of the other properties that are available. From your documentation this appears to be easily accomplished.
I would also like a SAEF for the owners of each property to manage the bookings of their units as well as the notification emails to be sent to their appropriate owners instead of all going to one admins address. Is that possible or do you have any advice for accomplishing this?
Hello Ryan,
it looks that in current state the add-on is not completely capable of doing what you request. It performs the check for individual date, and not for a date range. Though I can add this feature quickly if you decide to purchase rEEservation add-on. Or you can check every date in the time range user submitted and if at least one is not available, hide the booking form with javascript.
As of SAEF, I’m afraid this is not possible at all at the moment. You can restrict access to the module control panel to certain member groups, but all of them will have access to all bookings.
You can make the emails to be sent to different addresses by changing the module file (I can assist you in that).
Wait, let me see if I understood this correctly. So a customer who wants to book a week, say from 17th February to 24th February in a room has to check each individual day first? However, you would be able to accommodate a range of dates if I bought the module? If so, that you can make this change, then I too would go ahead and purchase the module.
Thanks.
Jorge, the customer does not need to check every individual day. He needs only to select the first and the last days.
Thanks for the reply. So far I’m liking this over trying to force the Calendar module into something it’s not. I am still a little concerned over the lack of a SAEF though.
I would like to limit each property owner to edit the details of their property. Each property will be an entry in a Properties channel. My plan was to check and see if an entry in that channel for the logged in user exists, if not then giving them a form to create an entry and if one exists then giving the user an edit form for the existing entry. I am using SafeCracker for my SAEFs. And obviously I don’t want my members jumping between the front end and back-end of the site.
I’m not to familiar with editing add-ons is there any way to combing your module with SafeCracker to edit the booking details? Or any other way to allow the booking details to be edited on the front end?
Ryan,
SafeCracker seems to be indended for entry forms only. I think I can add frontend editing of booking if I get more requests for it (or if you go ahead and purchase the module, so I know there is at least one real customer who needs it).
But please also note that editing (in CP, and so with front-end editing, when it will be implemented) enables changing only booking status and adding a comment. You cannot change the booking details. If someone needs to change booking details, he needs to change its status to cancelled/rejected and create new booking.
It’s also possible to send admin notification to the actual entry owner’s email (that’s something that can be implemented quickly)
That sounds like just what I am looking for. I’ve bought the add-on from Devot-ee. Do you prefer to give support through these comments, Devot-ee’s forum or somewhere else?
Devot:ee forum would be preferred
Hi,
This looks great!
Will you have this addon for EE 1.x ?
Thank you,
Agata
Hi Agata,
I don’t think so, at least in nearest future
Hi.
Looks interesting. Do you have any examples running on your customer’s sites?
No examples yet. Though several people have already purchased and installed it, but I don’t know any URLs
One real quick question before I purchase. When you create an event do this module allow you to define a set number of seats that you can sell? Once that number is met does the entry display a warning change status, etc. Please let me know how this is handled.
Thanks,
Steve
Hi Steve,
yes, you can limit number of seats either as a global setting or in custom field associated with an object/entry. When you perform availability check on frontend, you have bookings_limit and bookings_count variables available, so you can compare those two to find out how many seats still can be booked.
Can it be set to offer hourly appointments that the member then has to pay for?
Hourly bookings are not supported yet, but planned for future releases
Thanks for confirming Runner. It looks a good add-on and certainly something I would consider purchasing when there is the ability to allow time defined booking slots.
I need it to allow members of a site I am working on to book appointments online and make payment. The appointment will then be confirmed.
Hourly (or even finer) would be great for booking conference rooms or other assets.
it is in my plans, but I can’t say yet when it will be ready
Looks like a great plugin. I am considering this for 2 clients at the moment. It will work with one client, the other I have a question. I know you have said that you will start doing the hourly bookings. It would be good if you could book time by the hour, and have the ability to book several hours over several days:
e.g. 9am - 10am Monday, 5pm - 6pm Wednesday, 3pm - 4pm Friday and then pay for them based on a rate for each.
Would you consider expanding to that?
Hi Steve,
I plan to start working on hourly booking on this or coming week. However if you plan to have different rates for each time range that sounds more like a place for several channel entries representing time ranges (and one entry can have only one fixed price atm)
Hello, i have a client who is looking to allow users to RSVP/Book for 3-4 events held yearly. Is it possible to have multiple payment methods - like cash/check or paypal? A significant amount of clients they have actually bring cash or mail checks. Can this be done?
THank you,
David
Hello David, if the customers prefer to pay cash, you can simply exclude the “go to payment gateway” part (it is provided by separate “reeservation paypal” extension, so simply don’t install it) and then change the status of booking manually from Control Panel.
I purchased a copy for a “seminar” booking site and everything worked out fine.
I have another site coming up - book helicopter tours - but it requires hourly bookings.
ETA on hourly bookings?
I am working on this, but it appears to come with additional difficulties, so cannot really predict release time.
Hi.
I am considering this add-on for a client that needs to send out multiple barcodes in the confirmation email. Ie to send one confirmation that contains several items and a barcode for each item. Would this be possilbe?
Thanks.
Erica
Hi Erica,
the add-on in its current state allows one reservation at a time. So if user will make several bookings, he’ll get several emails
Just wondering if the reeservation module will work for us. We have a site set up with event channels, where people can RSVP for the event via a form. Right now, that simply sends an email and someone has to manually check if there is a spot available and email the person back.
We’d like to switch it where you could set a number of spots open in the entry itself, and have people RSVP directly through the module until all the spots are taken. It would have to be done without requiring registration, and keeping track of the number of open spots for each entry/event.
Hi Nicole,
the module is capable of doing what you need
What would happen if someone tries to rsvp and all the spots are taken? Is there a waiting list we could somehow set up? or a notification system?
If there are no places available, - the booking request is simply rejected.
No wait list, no notification.
Though ‘notify admins on failed bookings’ sounds like a nice feature to have, I’ll consider adding it in future releases.
I’m currently in the process of developing a restaurant website that would need specific-time bookings for tables (of varying sizes: 2, 4, 8 people tables). Do you have an ETA of when this module would be appropriate for such usage? Do you have any live sites currently using it, so I can get a feel for how others have used it?
Danny,
I plan to release alpha version this week which would support pre-defined time ranges. That means support for specific-time bookings - but the time ranges will have to be pre-defined by admin, so not sure how well that will fir restaurant site.
I have added 2.5alpha version to distributed ZIP file.
2.5 is version under development and should be used ONLY on testing or development locations and NEVER on live sites.
It introduces support for pre-defined time ranges, which is useful for:
- event booking
- exact-time booking
- variable prices for different periods.
Use it only if you’re eager to try new features.
Be warned that it has not been tested well, so there could be - and I’m sure there are! - some bugs. Availability check is not implemented at all.
The updated new docs for 2.5 version is in docs folder.
If you have any questions, requests or bug reports - please send them to .(JavaScript must be enabled to view this email address)
This looks like a very useful add to EE.
Tie ins to CartThrob / BR would be even more awesome.
I do have a client eager for something like this but they need to have 15 minute slots within the hour, which i believe wouldn’t be possible?
The new 2.5 version will have the feature of exact-time booking (booking time ranges will have to be pre-defined in CP). But currently it in testing/development stage and not recommended for production use. I can’t really tell when it will be out of beta.
CartThrob integration is my next step after I’ll get this ranges thing working well.
Hi Yuri,
I think this add-on is probably what i am looking for. Can you let me know if it will do the following please before i decide to purchase:
- I am wanting to sell tickets for events.
- I want to be able to display number of tickets left
- I want user to fill in a form with email, phone, address etc. I may want to add further fields (is this possible?)
- Some event tickets will have a price and i want to sell through paypal. However some events will be free but we will still need to track numbers. Is it possible to have different events some that are free and some that we will sell through PayPal?
- Some people will pay cash. Again can this be done, maybe in backend?
Thank you.
Hi Rob,
You have variables to display total number of tickets for the day and the number of tickets sold. You can then easily display the number of tickets left using some math plugin. I’ll probably add variable to display number of available places in next release.
It is not possible to add further fields, but there is a field for extra contact information, so you can use it - as one field or populate it from several fields using javascript.
As payments are handled with separate extension it is possible to modify it so that for certain entries it will not redirect to PayPal but will return the booking unmodified. Some PHP knowledge will be required for that, of course. You can change the status of booking later in backend, and also make a comment to it.
Thanks Yuri. Much appreciated.
Hi Yuri,
what would the CartThrob integration that you have in mind be? Using payment methods, the same interface,…?
Hi Stijn,
I’m thinking of adding reservations to CartThrob cart, thus allowing usage of all available payment methods. However I did not start working on this yet (there are still no developer docs for CT2 :( ) so not sure exactly what that will be…
Hi,
Really cool module just wanted to know if it supports search with availabilty. i.e. perform a search saying show all properties available between day 1 and day 1.
We’d be using it for a holiday cottage site so need to add multiple properties and search for them with some filters (Keyword, date range, price range, number of beds, and availabilty) would this be possible with the module as it stands?
Dave
Hi Dave,
the module does not have any good search functionality in its current state. It might be added in the future, but no promises.
However when the booking is made, the availability is taked in consideration. Availability can also be displayed in booking calendar.
Hi Yuri,
I am looking to create an equipment reservation/booking system and have been looking at rEEservation. I was wondering if rEEservation has a means to “check-in” an item once it is returned, much like a book from a library. I would need to prevent further booking of an item that is overdue until it is checked in and assess how long it has been overdue to impose the appropriate penalty. There are many other questions I have, but lets just start here.
Thanks,
Loris.
Loris,
rEEservation does not have any of the features you require. I’m not sure it will work well as equipment rent system.
I just book marked your blog on Digg and StumbleUpon.I enjoy reading your commentaries.
Yuri,
We have recently purchased the rEEservation module and are having a few difficulties. What we want to do is make it so that the user can book one place on one particular day, defined by us.
Is there a way of setting up the form so that the user can come onto the site, click on the event that they wish to register for and it automatically puts in a date that we have defined for that event?
Thanks,
Justin
Hello Justin,
sure. You can do the following:
1) store event date in custom entry field
2) output the date in “rel” parameter or html “a” tag
3) use javascript to pull the value of “rel” parameter when link is clicked and set it as the value of “date_from” input
Thanks for your response Yuri.
I am relatively new to EE so I am still learning. Do you have an example of a piece of code I could use just so I could get my head around how to do that?
Many Thanks,
Justin
Justin,
here’s a quick example I’ve just written using jQuery.
Say you have your event date stored in custom field named event_date
Then in your template you should have something like
{exp:channel:entries channel="events" dynamic="no"}<a href="#" rel="{entry_id}" rev="{event_date format=" class="reserve">Make reservation for {title}</a>
{exp:channel:entries}
[removed]
$(document).ready(function() {
$('.reserve').click(function(){
$('#entry_id').val($(this).attr(rel));
$('#date_from').val($(this).attr(rev));
});
});
[removed]
{exp:reeservation:form}
<input type="hidden" name="entry_id" id="entry_id" value="" />
<input type="hidden" name="date_from" id="date_from" value="" />
...
{/exp:reeservation:form}
Yuri,
I really appreciate you taking time out to write code for me, unfortunately, I’ve tried a few things and it still doesn’t do what I want it to.
I think I am going to have to look for an alternative way to do this as it does not seem to do what I want it to.
Regards,
Justin
Justin,
this code requires that you include jQuery library in your template (forgot to mention that). You can email me your code to .(JavaScript must be enabled to view this email address) and I’ll have a look on what’s wrong with it.
Hi Yuri,
I am in the process of mapping 2 projects and looking at your addon to integrate into them.
Just have a couple of questions:
1) for a single property rental site, can it except a double booking for the arrival date/leaving date when checking availability as arrival/leaving day will always overlap (1/2 day)
2) for a bike rental company. A entry can have a unit limit. i.e if the company only has 6 units of a certain bike model can I take this into account.
Thanks in advance
Rob
Hi Rob,
1) double booking should not happen. The day is booked only util the checkout time that you can set in the CP.
2) yes, you can set ‘booking limit’ on per-entry basis
Hi Yuri
You said earlier:
‘Though ‘notify admins on failed bookings’ sounds like a nice feature to have, I’ll consider adding it in future releases.’
Is this added yet? If not, what happens when for example the 9th person tries to book on a course limited to 8? Do they get a notification of why they cannot book on?
Many thanks
Lorna
Hi Lorna,
this feature hasn’t been added yet.
People are of course getting message why they can’t book, e.g. “The object is already booked for the period selected”, “The object has reached maximum number of bookings for dates selected.” and other - you can modify them in language file if you want to adapt them to specific object of booking.
Hey Yuri,
Great plugin. Quick question… I was wondering if it is possible to use this plugin to integrate with a 3rd party Event Registration service. The client has a pre-existing account with an event service. They setup the events there and I am writing a plugin to pull these events into EE. When members register for then event I would like to send a call to the 3rd party APi and then do some magic on the EE side to confirm their registration and associate the event with the member in EE. Is it possible to add the api call to rEEservation and then do some post-processing?
Thanks
Hello Michael,
there is no API as such, but the module provides several extension hooks (http://www.intoeetive.com/docs/reeservation.html#structure) -so you can make use of them to integrate 3rd party service.
The module requires however that you should have an entry in EE corresponding to each booking object defined in settings. So you might need to remove some checks from the module file (or add your own).
But in general the integration sounds possible to me!
Hi
I have just purchased this and unfortunately I am fairly new to Expression Engine so this is probably going to sound like a stupid question. Anyway, I have set up a channel called Workshops and set up custom fields for the Workshop. I’ve also created a Booking channel and copied and pasted the code for the booking form from your documentation. My problem is, how do I link from the Workshop page to the Booking form. I understand a bit about Segment variables and about how to link to a channel page but just don’t know how to encompass both into an EE link. So far my template for the Workshop is:
<ul>
{exp:channel:entries channel=“Workshops” show_future_entries=“yes” orderby=“date” sort=“asc” limit=“6”}
<li class=“vevent”>
<h3 class=“summary”>{title}</h3>
<span class=“dtstart”><span class=“value-title” title=”{entry_date format='%Y/%d/%m'}T20:00Z00”>{entry_date format=’%l, %F %d, %Y’} from {entry_date format=”%g:%i %a”}</span> </span> <!—to <span class=“dtend”><span class=“value-title” title=”{expiration_date format='%Y/%d/%m'}”>{expiration_date format=’%d %F %Y’}.</span></span>—>
{if event_price !=”“}
<span class=“entry-price”>Price: {workshop_price}</span>
{/if}
{if event_details !=”“}
<div class=“description”>
{workshop_description}
</div>
{/if}
Booking Form…
</li>
</ul>
So what should the link to the booking form be?? Also, I did read the documentation and couldn’t find an answer - is this because it’s obvious lol??
Lorna,
you do not need to set up a special channel for booking (if you’re going to let people book workshops). Just enable ‘Workshops’ channel in rEEservation settings.
The booking form needs to “know” the ID of entry to be booked. So, if you place the form on object page (in same templates) - you can pass it using {entry_id} variable. If you prefer to place a link to separate page - well, then the link you have is correct, entry_id will be your {segment_3} on channel/Booking page.
Hi,
We are considering moving into the EE2 product but have an immediate need to set up a professional solution for the booking of rooms at a boutique hotel. Does anyone have any examples of the front end of this booking engine. Want to see how it is going to behave on the customers end.
Regards,
Dave
I am sorry to say that version of rEEservation with support of time ranges (which also could include precise-time booking) will never be released.
I will continue developing and supporting the add-on, but it will support only full-day booking.
Please accept my apologizes everyone who was waiting for this feature.
More info in this post
Hi Yuri,
I just made a FR on Devot-ee to ask for a better solution to Booking-enabled entries field in the Control Panel.
Basically I think entries should be enabled by default and perhaps use the Expiration date to disable them? Afterall, it’s a date based system and no one will be booking something in the past!
Hi, Can you tell me if this extension can do the following, and which it can or cannot:
(request from client)
1.Take a members reservation to an event including how many guests they are bringing, if they need any special accommodations, etc,
2. Email them a confirmation
3. Show them the other members that have already made a reservation
4. The price of the event to change dynamically depending on how many members have already reserved, and or how far in advanced the member makes the reservation.
(This would be similar to an airline reservation system. If you book your tickets 6 months in advance they will be less expensive than if you were to book your tickets the day before your flight)
5. A database log in to view the details to we can plan accordingly
6. A way to edit these events on the fly/weekly.
All answers are yes, except #4 - dynamic pricing is not natively supported.
Sweet, thanks for the speedy response! I’m looking forward to giving it a go!