Provide reservation form with reservations management. You can define time slot length (default 15 minutes) and one reservation length (default 2 hours). After each reservation, this time slots are taken and it's not possible to make another reservation for this time (time picker slots are disabled). This reservation can be cancelled to release that taken time slots.
- Reservations Calendar adds backend calendar to show all reservations visually
- Reservations Units adds Units management to define your units (rooms, cars, teachers, bikes)
- reservations have coloured statuses, bulk actions and fulltext search to save your time
- nice and clean dashboard widget
- reservations export with status filtering
- reservation can be created directly from the backend
- returning customers function
- shipped with translations and covered by unit tests
- reservation form has CSRF protection and multiple bots submissions protection
- reservation form has AJAX sending and also non-JS fallback
- overloadable data seeding for statuses
- no other plugin dependency
Real usage screenshot
Status management with coloured icons:
Filtering by status:
Reservations export with status filtering:
- Insert reservation form component to your page.
- Be sure you have jQuery loaded!
You can set time slot length (default: 15 minutes) and reservation length, which means how much time one reservation takes (default: 2 hours).
If you have reservations at 13.10.2016 at 11:00 and also at 13:00, both with 2 hours length, all time slots from 09:15 to 14:45 will be booked (with 15 minutes slot length).
------------ 11:00 ------------- 13:00 --------------
Because nearest previous reservation can be done at 09:00 (with 2 hours lengths till 11:00) and next reservation at 15:00.
Plugin allow you to mark returning customers:
- set amount of previous reservations at Backend > Settings > Misc > Reservations
- at reservations listing, click at the list settings (the hamburger at the right corner) and check Returning
- it shows star at customers with more then <your-threshold> non-canceled reservations
Units, capacity, prices
If you need to manage your units (cars, teachers, tables), with some capacity (4 seats, group of 10 people), with some price - you should definitely check reservations units plugin.
Looking for backend calendar to see your reservations visually? Take a look at backend calendar plugin.
When you want to override default plugin's config.php, which is placed at plugin's folder /config, just create file:
And override values you want to change. Example of this file:
<?php return [ 'formats' => [ 'date' => 'd.m.Y H:i:s', ], ];
If you want to extend some plugin and don't know how, check Brands extending examples repository, where you can find many examples which can be applied on every plugin including this one.
For other plugins you can use plugin's facade vojtasvoboda.reservations.facade with some public methods as follows:
$facade = App::make('vojtasvoboda.reservations.facade'); $facade->storeReservation(array $data); $facade->getReservations(); $facede->getActiveReservations(); $facade->getReservedDates(); $facade->isDateAvailable(\Carbon\Carbon $date);
For override seeding just copy seed files from plugin's folder /updates/sources and copy them to:
This file will be load with first migration, or you can force refreshing migrations with this command:
php artisan plugin:refresh VojtaSvoboda.Reservations
phpunit in the plugin directory. For running plugin's unit tests with project tests,
add this to your project phpunit.xml file:
<testsuites> <testsuite name="Reservation Tests"> <directory>./plugins/vojtasvoboda/reservations/tests</directory> </testsuite> </testsuites>
Receiving "Class 'PluginTestCase' not found" error? Just type
composer dumpautoload at your project root.
Reservations plugin is open-sourced software licensed under the MIT license same as OctoberCMS platform.
Icon made by Freepik from www.flaticon.com.
Found the plugin not useful on 30 Jul, 2018
I have just added this plugin to my project and its not working. Its not showing in my backend menu, nor in my updates and plugins list of plugins however it has installed. If i go to the the plugins menu i can VojtaSvoboda.TwigExtensions but that's it. If i go to the actual pluging directory i can see vojtasvoboda reservationscalendar. From the backend if i click Reservations -> reservationscalendar I get an error "Unable to find the specified settings."
Whats going on here?
Found the plugin useful on 17 Jan, 2018
Very usefull plugin!
Mark van den Elzen
Found the plugin useful on 20 Nov, 2017
Found the plugin useful on 14 Sep, 2017
It's very nice plugin ! I had questions for this plugin :
- I would like to deactivate the reservations for this day from some hours. For example, from 5PM the reservations for the rest of this day are disable. How modify the code to do that ?
- How to make so that several customers can book the same schedule ? For example, 4 customers can book one hour and more than 4 bookings the schedule is blocked.
I hope to receve a response for my questions. Thanks for your plugin
Vojta Svoboda author
Replied on 18 Sep, 2017
Thanks for the positive review! If you want to block some time interval, the easiest way is to create your own reservation from 5 p.m. to midnight. For more reservations in one date please check Reservations Units plugin - it's made exactly for this purpose. For more questions, feel free to send me an email or message, I will be glad to help.
Found the plugin useful on 18 May, 2017
very nice plugin! After I install this plugin. I suddenly find we still need another module, 'Payment system'! because this is very important for the reservation circle for make "MONEY", yes, you know what I mean.
After the reservation has been made. the system shall take him to the payment page. after the pay agency redirect to the server. the reservation then put the recorder into system. or make the status to paid.
for front-end. the disabled book time shall be always available, until it has been paid.
Vojta Svoboda author
Replied on 19 May, 2017
Hi Mike, feel free to create this plugin. I could make some hooks or other functionality if you will it :-) Let me know.
Dec 09, 2017
Fix working days
Sep 22, 2017
Make date picker translatable to french.
Aug 12, 2017
Put old method back for backward compatibility.
May 15, 2017
Move configs to settings, add working days and opening hours, better validation of selected date.
May 15, 2017
Add translate settings, add translate front, fix error
May 10, 2017
Add russian lang
May 05, 2017
Fix form labels names.
Apr 08, 2017
Enable backend date availability validation when reservation is changing.
Mar 07, 2017
Fix sending confirmation email to admin by locale chosed at backend.
Mar 07, 2017
Refactor plugin's mailers.
Dec 16, 2016
Add Admin confirmation function.
Dec 15, 2016
Fix reservation datepicker JS.
Dec 15, 2016
Returning customers function.
Dec 14, 2016
Add Spanish locale (thanks to Victor van Herpt)
Dec 13, 2016
Count all reservations with same email and put it to the confirmation mail template.
Dec 12, 2016
Add method getReservationByInterval() to facade to better extensibility.
Dec 04, 2016
First version of Reservations
Oct 14, 2016