Team Booking – the innovative WordPress booking plugin
A deep Google Calendar integrationTeam Booking is a WordPress booking and reservation plugin for appointments and services with a very distinctive feature: all the availability plans are made via Google Calendar!
- Make availability plans through Google Calendar…
- Calendar events become free slots, ready to be booked…
- Once booked, the relative Google Calendar event will be updated!
Just some plugin’s features
- A complete booking solution – services, events, appointments, rooms and so on…
- Planning via Google Calendar – use your Google Calendar to plan availability and manage reservations
- Collaborative – specify WP roles allowed to be service providers. They can work together for the same service, while keeping their own Google Calendars for availability planning!
- Customizable – tweak general and personal reservation behaviour, frontend calendar style, maps, confirmation email and more.
- Hassle-free – the frontend booking calendar works out of the box with shortcodes!
- Timezone conversion – let the customers choose their timezones!
- Reservation form builder – create your perfect reservation forms!
- Payments – with PayPal and Stripe!
- Promotions – discount coupons and campaigns!
- Complete notification e-mail system – build custom e-mail content with dynamic user data
- Export data – a full reservations database, downloadable as *.CSV and *.XLSX files
- Fully WPML compatible – requires WPML Multilingual CMS
- Language support – via .po and .mo files
F.A.Q.Is a connection with Google Calendar required?
In order to provide availability for scheduled services, a service provider must do that via Google Calendar. Unscheduled services don’t require a Google Calendar. A customer is not required to have a Google Calendar to book a service.
Can I place repeating or full-day slots?
Yes. All these Google Calendar possibilities are perfectly matched by Team Booking! Repeating slots in Google Calendar will help you with repeating availabilities, so you don’t have to create every single slot manually!
Can I place multiple-days events?
Multiple-days events (i.e. a single event from April 4th to April 6th) are not yet supported.
Can I place a slot without showing the ending time?
Yes! But please note that the slot will still have a duration, even if not displayed, that the customer can’t change.
Can I place different frontend calendars by coworker or service?
Yes. Not only, you can also mix them up as you prefer, via shortcodes.
Can I choose not to show the calendar to unregistered users?
Yes. You can either choose to show the calendar in read-only mode for unlogged users.
Will the unregistered users be invited to register?
Yes. The registration landing page is the WP default one, or you can choose any link to a custom registration page.
Need customers a Google account?
No, they don’t.
To set availability, there is no other way than using Google Calendar(s)?
No, this plugin is made for that.
RequirementsTeam booking is tested with WordPress 4.7+ and strictly requires PHP 5.3+.
The plugin relies on Google Calendar and more generally on Google API infrastructure’s status to work properly.
If you are going to use the PayPal gateway, then ensure your server being SHA256 and TLSv1.2 compliant, accordingly to the current PayPal standards.
AN IMPORTANT NOTE
Please consider that the above requirements are not there as a joke.
Using old PHP versions may expose you or your clients to security vulnerabilities and bugs that have been fixed in more recent versions of PHP.
- Support for SCA with Stripe - Fix: minor bugs
- Fix: issue with WordPress 5.1 and containers showing the wrong slot times - Fix: batched e-mail messages not sent in some occasions - Fix: frontend timezone sorting and searching according to locale language - Fix: Google Batch endpoints updated
- Fix: wrong price displayed in the payment step - Fix: tickets selected always reverted to 1 in some configurations - Fix: coupons were not applied to cart reservations
- Fix: e-mail template can now be edited - Fix: added the "token" property to the API reservation object - Fix: price increments were not recognized when escaped chars are involved - Fix: custom regex expressions with backslashes now work - Fix: the edit_reservation API now edits the form fields too
- Fix: payment options not shown during a cart checkout
- Fix: the selection of the number of tickets was not friendly on mobiles
- Fix: promotions can't be created due to uncorrectly wrong date format - Fix: reminders were not sent - Fix: reservations database timeout setting were not observed - Fix: payment e-mail page wasn't functional
- Feature: multiple slots selection (cart) - Feature: full WPML compatibility - Feature: e-mail templates - Feature: frontend slot customers list - Feature: slot commands via Google Calendar - Improvement: selectable template for the cancellation/approval/payment pages - Improvement: services can be read-only - Improvement: past slots can be shown in the backend slots list - Improvement: persistent customer's preferences - Improvement: searchable timezone selector and timezone aliases - Fix: general languages directory is now recognized - Fix: Google PHP API library is now namespaced to avoid conflicts - Fix: admins and coworkers (for their own slots) will open/close limits - Fix: TGMPA library conflict with some themes should be no longer an issue - Fix: All-day events timezone - Fix: wrong dates in PDF export - Fix: reservations were computed 2 times in multisite environments - Fix: sorting order of the form fields were inconsistent - Minor bugfixes
- Improvement: containers (and only containers) can now be created in a shared Google Calendar also by non-owners - Improvement: e-mail reminders can now be set up to 5 days before - Fix: Stripe payment errors now give some feedback to the user - Fix: recurring events causing bad performance in a multisite environment - Fix: coworker_url e-mail hook now works - Fix: service providers should be able to cancel a confirmed reservation - Fix: "Error calling GET[...]" in rare occasions - Fix: slots were incorrectly set as read-only in rare occasions - Fix: all-day recurring instances were wrongly addressed
- Improvement: ability to add or prevent the customer being added as a guest to the Google Calendar event - Improvement: customer's phone number available as additional event title data - Improvement: ability to hide the service's name from the frontend slots - Fix: slider's height went crazy when service description contains images - Fix: upcoming events were not showing correctly in some occasions - Fix: recurring containers were not showing correctly when the start time passes while the end date still not
- Fix: fixed coupons were not working - Minor bugfixes
- Feature: backend slots list - Feature: single-use coupons - Feature: query string parameters - Improvement: selectable timezone continents - Improvement: show tickets left only under a threshold - Improvement: query string parameters - Improvement: show/hide the map - Improvement: new reservation_id and service_name e-mail hooks - Improvement: do_reservation API request - Improvement: how to treat discarded free slots (show as booked or totally hidden) - Improvement: customizable login URL and redirect back to the calendar page as option - Improvement: new filter to add custom content inside the thank you message - Improvement: custom meta_keys to populate form fields with - Improvement: better and (way) faster recurring events management - Fix: hide_same_days parameter was not working - Fix: reminder e-mail manual sending process now works - Fix: approval rule setting was not correctly loaded - Fix: coupon validation is now case insensitive - Fix: non-admin coworkers were able to see all the reservations in the Overview tab - Minor bugfixes
- Fix: localization and timezones for the upcoming events list - Minor bugfixes
- Fix: coupons were not working properly - Fix: new services were not correctly added - Fix: some upcoming list sorting issues - Fix: upcoming shortcode builder was outputting a wrong parameter for selective services
- Feature: upcoming events list shortcode and widget - Feature: promotions usage limits - Feature: promotions timeslots date bounds - Improvement: a new slots display style - Improvement: dynamic data for booked event titles in Google Calendar (Appointment services only) - Improvement: the Service's name too can now be shown inside the numbered dots - Improvement: PayPal checkout logo and other tweaks - Improvement: data tabbed modals - Improvement: reservations table's items per page is now configurable and persistent on a user-basis - Fix: reminder e-mail messages were not sent under some circumstances - Fix: all-day slots overlapping timezone logic - Fix: create api token read/write was not working - Fix: backend display issues with Firefox - Fix: Google Calendar reminders were set even if not selected - Minor bugfixes
- Improvement: more colored dots display settings (name of the service can now be added) - Fix: approval/decline issue - Fix: double e-mail messages were sent - Fix: reminder e-mail setting issue - Fix: all-day containers are now correctly parsed
- Fix: booked slot were always visible regardless of the relative setting
- Feature: coworkers can be limited to certain services only - Feature: Visual Composer's TeamBooking elements added - Improvement: form fields now can have a description text/html - Improvement: reservations list with bulk actions (you can export selected reservations only) and better filtering - Improvement: incremental price can be set also when the base price is zero - Improvement: sortable built-in form fields - Improvement: basic Google Maps style implemented, Snazzy Maps plugin supported (you can create your own style!) - Improvement: more actions/filters (e-mail generate/send process is completely customizable by a custom script) - Improvement: frontend timezones are now translated to the current language - Improvement: non-decimal currencies are formatted out of the box - Improvement: form elements in the builder now show a preview - Improvement: a reservation now shows an #ID number in any exported stylesheets - Some bugfixes
- Improvement: cancel/approve/deny e-mail links landing page now inherits your theme's template - Fix: CSS and scripts were not loaded on some themes - Fix: some strings and times were not localized correctly - Fix: CSS issues - Minor bugfixes
- Improvement: custom WordPress actions for extreme customizations - Improvement: CSS are loaded at the top - Improvement: new API function (get_slots) - Fix: some strings were not translatable - Fix: issue when unscheduled forms are shown directly - Fix: dropdown now works with IE - Fix: decline_link e-mail hook not correctly displayed - Minor bugfixes
- Fix: Overview time sorting issues - Fix: Full-day events showing the wrong day in some timezones - Fix: Overview error when there is a reservation for a removed service - Fix: Safari and old browser's frontend issues
Fix: activation issue
- Feature: realtime Google Maps directions - Feature: Google Calendars interdependence - Improvement: a more clean and informative overview table - Improvement: Stripe's credit card dynamic form - Improvement: database size optimization - Improvement: map zoom level now configurable - Improvement: new [timezone] e-mail hook - Improvement: payment step skipped when the price goes down to 0 due to a promotion - Improvement: built-in fields are now translated on the fly - Improvement: support for .po editing plugins like LocoTranslate - Improvement: a new "review" step during the reservation process - Fix: frontend calendar timezone issues - Fix: Google Calendar event reminders are revert to default when a reservation is cancelled - Fix: selective price not updated in the frontend and e-mail templates - Fix: availabilities not in sync in some multisite environments - Fix: REST API "invalid resource" error - Fix: dropdown overlapping issues - Minor bugfixes
- Fix: double cancellation email to the coworker/admin - Fix: sold-out label not correctly shown - Fix: minor bugfixes
- Improvement: added cancellation notification email back to admin/coworker - Improvement: cancellation reason is now configurable in the e-mail body (it's a hook) - Improvement: e-mail hooks start_datetime and end_datetime are splitted in date only and time only too, for a better customization. - Improvement: better-looking, translatable status labels in the frontend reservations list - Fix: visualization issues on some mobile devices - Fix: Event color not correctly restored in particular configurations
- Fixed reservations were not inserted in the overview tab - Added multisite compatibility - Code cleanups
- Fixed overview tab getting slow when handling an high number of reservations - Fixed errors in some booking circumstances - Fixed the redirect URL option that can't be de-selected - Fixed the widget when hiding the timezone selector - Fixed a blocking error when full-day events are present - Fixed some database memory leaks - Fixed wrong frontend slot sorting - Added versioning to the scripts/stylesheets (should avoid caching issues after a plugin's upgrade) - Minor bugfixes
- Fix: some settings were not saved - Fix: "booked" label was displayed also for available events - Fix: wrong count of reservations made by the same customer - Fix: redirect URLs now work - Fix: POST error when using the container mode - Fix: sorting in the backend reservation table - Minor bugfixes
- Feature: promotion campaigns and discount coupons - Feature: incremental price depending on selected options - Feature: REST API - Feature: Customer's Timezone selector - Feature: Cancel/Approve/Decline/Pay via e-mail link are now implemented (read the documentation!) - Feature: e-mail reminder for customers (read the documentation!) - Feature: Customer's backend list - Feature: 2-way Google Calendar Sync and overlapping events management - Feature: PDF reservation basic report - Improvement: faster and powerful overview table - Improvement: faster and more reliable Google fetcher - Improvement: additional mapstyles! - Improvement: completely new frontend slot's list and restyled calendar (no more modals, less conflicts) - Improvement: frontend accessibility - Improvement: memory optimizations - Improvement: reservation's customer details can now be edited via backend - Improvement: "When reservations should be opened?" setting implemented - Improvement: reservation database id parameter is passed along the redirection URL for conversion tracking - Fix: Google Maps API token requirement is now supported and documented - Fix: XLSX and CSV issue about missing details - Fix: PayPal IPN server requirements are now enforced - Minor bugfixes
- Several minor bugfixes - Speed and memory optimizations
- Fixed an important speed issue - Fixed ICS issues - Fixed frontend form glitches - Enforced Google Event's privacy
- Feature: new and more reliable auto update notification system - Feature: frontend reservation list via shortcode - Feature: cancellation by customer - Feature: custom redirect for each service - Improvement: more refined backend overview tab - Improvement: new status management (todo/done) for unschedued services - Improvement: more patterns and borders in the style panel - Improvement: CSS fix for small fonts (themes using 62.5% font-size method) - Bugfixes
- Improvement: selective resource loading - Fix: issues with cloned services - Fix: PayPal IPN don't fail anymore if taxes are added - Fix: a little issue with accented letters in Google Calendar event's description
- Improvement: notification emails to admin/coworker when approval is required - Improvement: pending payment reservations can now be confirmed by admins - Improvement: admins now bypass the payment system in the frontend calendar - Optimization: more efficient external resource loading - Fix: PayPal IPN issue when price is set > 999 - Fix: ICAL file can't be downloaded by non-logged users - Fix: wrong time shown in admin area / emails when PHP default timezone is not UTC - Fix: exception thrown for logged-users-only reservation's modal - Minor bugfixes
- Improvement: notification bubbles for new reservations added in the admin dashboard - Improvement: faster animation types - Bugfixes for coworker approvals - Bugfixes for tickets left counting logic
- Improvement: added 2 new email hooks (coworker_name, service_location) - Bugfixes
- Fix: "Error calling patch"
- Feature: approval system (no approval, Admin approval, Coworker approval) - Feature: Google Map style customization - Improvement: added a TinyMCE button for shortcodes! - Improvement: the slot's list is now a modal - Improvement: added filtering functions in the slot list - Improvement: general cosmetic refinements both frontend/backend - Fix: fixed "Please reload the page" error in some server's caching circumstances - Fix: a bunch of minor bugfixes
- Fix: cloning bug - Fix: "error calling GET: not found"
- Fix: activation bug - Fix: stucked loading wheel
- Fix: conflict with transit.js - Fix: PayPal listener - Fix: Stripe gateway - Fix: issue with booked slots not correctly excluded
- Improvement: added a search field in the Overview tab - Fix: coworkers without admin privileges can't save their settings
- Fix: reservations won't be confirmed when paying with Stripe
- Fix: payment gateways were not included correctly
- Fix: first activation error
- Feature: Stripe gateway! - Feature: multiple services container mode! - Feature: custom validation rules for reservation form text fields! - Improvement: auto updater (a valid Envato purchase code is required) - Improvement: way faster frontend calendar when navigating through days. - Improvement: frontend calendar fast month/year selector - Improvement: now also the "Event" class service reservations can be cancelled (revoked)! - Improvement: the core configuration is now very simple thanks to JSON file importer - Improvement: the coworker's auth process and the Google Calendars selection was simplified a lot, less room for user errors! - Improvement: backend overview tab, now multiple reservations records can be selected - Improvement: backend overview tab, reservations can be sorted by "Date of reservation" or by "when" value. - Improvement: better currency management - Improvement: frontend slots list, less space wasted, get rid of "Book now" button - Improvement: the service/event address, when present, is shown in the slots list too - Improvement: reservation modal is more refined and good-looking - Fixes: a lot of bug fixes.
- Fixed a lot of issues when using Container Mode + Event classes - Code refactoring and commenting
- Added option to skip Google Maps library loading if the theme is already loading it - Fix: the thankyou message after the reservation now loads correctly - Fix: cancellation now works well for container slots - Fix: cancellation now correctly resets the event color! - Code cleanup
- Improvement: a complete admin restyle! - Improvement: CSS classes namespaced (to avoid some themes conflicts) - Fix: annoying bug, date_time hooks not converted in email content - Improvement: added HTML editor to service description textarea - Improvement: added an "update built-in field translation" button - Minor bugfixes
- Fix: the buffer duration now can be correctly set to 0 - Fix: email not sent if php < 5.4 (it causes some hangs during reservations, with buttons that keeps loading) - Fix: avoid uncaught exception on overview tab when a service was previously deleted - Other minor issues fixed
- Feature: multiple Google Calendars per Coworker! - Improvement: more values added to "when reservations should close" - Improvement: added option to hide/show the "Save on my calendar" button - Improvement: minimum time for "when reservation should close" can be now relative to the slot's end time too. - Improvement: a more correct way to set the From header to comply with security domain policies - Fix: PayPal IPN certificate updated (should fix some IPN issues) - Fix: Google Fonts now load over https too - Fix: fixed dropdown conflict with Bootstrap - Fix: fixed date/time translations issue - Other bugfixes
- fixed a typo
- Feature: location and maps! - Optimization: frontend ticket selection doesn't rely anymore on ajax calls - Cosmetic tweak: frontend ticket selection now is made with a less fancy select. - Documentation update - Bugfixes
- Documentation updated - Bugfix
- Feature: added a new "container mode" for placing availability. - Feature: reservations can now be cancelled (revoked) by admins (Appointments only). - Improvement: it's possible now to manually book/un-book a slot on Google Calendar by changing the title (Appointments only). - Documentation lifting - Major changes in Timezone handlings. - Minor styling changes - Better, clearer and polished settings grouping in back-end - Bugfix
- Improvement: added TinyMCE editors to email bodies - Improvement: added service color setting - Improvement: added color setting for price tags - Important bugfix: service cloning now does't mess up with custom fields anymore - Bugfixes
- Improvement: added [post_id] and [post_title] hooks - Improvement: fixed some CSS conflicts with Foundation framework and Enfold theme - Improvement: added option to open the calendar at the nearest month with free slots by default - Bugfix
- Improvement: a custom profile page can be linked to Coworker's name, if shown - Improvement: services can now be cloned - Improvement: ability to import/export settings - Improvement: custom selects can now be "required" - Improvement: extensions whitelist for file fields - Improvement: frontend calendar cosmetic tweaks (the little numbers inside the gray pointing label now represent how many slots there are, instead of how many total 'tickets') - Improvement: on frontend calendars, the week starts accordingly to WordPress site settings - Improvement: prefilled form fields for logged users can now be hidden - Improvement: small admin backend refactoring - DST Bugfix on notification email
- Improvement: option to include uploaded files in notification email - Bugfix (reservations went wrong in some scenarios) - Minor bugfix in file upload
- Minor bugfix for file fields
- Feature: payments with PayPal! - Feature: file custom fields - Improvement: permanent database for reservations - Improvement: filtering button can now be removed - Improvement: more buffer values for "when reservations should close" - Improvement: SemanticUI assets upgrade - Improvement: Switch from morris.js to charts.js - Bugfixes
- Feature: frontend service filtering ability! - Feature: ability to show/hide sold-out slots on service basis - Feature: new service class (unscheduled service) - Improvement: services can now be deactivated - Improvement: Coworkers can now choose to participate/unparticipate to each service - Improvement: more buffer values for "when reservations should close" - Improvement: SemanticUI assets upgrade - Improvement: Service prices (preparing to PayPal payments) - Updated documentation - Bugfix
- Added: reservation form builder with custom fields (text, textarea, checkbox, radio, select)! - Added: new specific coworker's shortcodes! - Improved: dramatic speed increase (80% faster) on reservations (API optimization) - Improved: advanced error message front-end display - Improved: advanced error message back-end logging system - Improved: list of currently authorized Coworkers in Administrator panel - Improved: way better ticket management for 'Event' services! - Improved: improved calendar graphic customization in Administrator panel, with preview! - Improved: graphical improvements, a more elegant feel - Optimized: got rid of external icons, now using the WordPress built-in ones (dashicons) - Documentation updated
- Added: download reservations logs and data in *.CSV and *.XLSX - Added: more values and better logic for "when reservations should close" - Resolved a conflict with jQuery Transit library when present - Resolved a conflict with FontAwesome css when present - Minor bugs fixed - Code refactoring
- Added: service custom description - Added: frontend schedule list grouping options - Added: choosable max number of log entries per page to show on Overview Tab - Updated documentation - Better user-error handling - Minor code refactoring - Minor bugfix
- Initial release - Languages: English, Italian