WordPress.org

Plugin Directory

GemBooking – Appointment Booking, Booking Calendar & Reservations

GemBooking – Appointment Booking, Booking Calendar & Reservations

Description

GemBooking is a complete WordPress booking plugin for appointments, events, rentals and bookable resources. Publish your availability, let customers pick a date and time on a mobile-friendly booking calendar, collect payment, and have the confirmation email sent automatically – without writing a line of code.

It suits any business that sells time or space: salons and spas, clinics and therapists, consultants and lawyers, photographers, tutors and coaches, studios and gyms, coworking desks, rental gear, courts and meeting rooms.

GemBooking at a glance

  • Online booking calendar – a live date and time slot picker that only offers slots you are really free for.
  • Appointment scheduling – per-service duration, buffer time, lead time and booking windows.
  • Rental and resource reservations – book rooms, desks, courts, vehicles and equipment, not just people.
  • Staff and multi-host teams – every host keeps their own working hours.
  • Payments – sell bookings through WooCommerce or StoreEngine using your existing gateways.
  • Automatic emails – confirmation, reschedule and cancellation notices for customer and admin.
  • Customer self-service – a My Bookings page to reschedule or cancel, embedded in your store dashboard.
  • 18 industry presets – a working booking system seeded for you in a couple of clicks.
  • Free and unlimited – no bookings cap, no time limit, no upsell walls inside the plugin.

What can you book with GemBooking? Industry presets

Not sure which kind of booking system you need? Start the onboarding wizard and pick the preset closest to your business. Each preset seeds a working service, availability, pricing and booking form for you, so you begin from a real, bookable setup instead of a blank screen – and you can rename or rebuild any part of it afterwards.

Professional services – time-slot appointments with a single host.

  • Appointments – consultant, coach, freelancer: 1-on-1 time-slot bookings, online or in person.
  • Photographer / Videographer – headshots, weddings, events: packaged photo and video shoots.
  • Lawyer / Consultant – legal advice and business consulting sold as hourly billable appointments.

Beauty and wellness – in-person services with optional staff selection.

  • Salon / Hair / Beauty – hairdresser, nails and beauty treatments booked per service.
  • Massage / Spa – massage therapist and spa treatments sold as fixed-length sessions.

Health and medical – clinical appointments with intake questions.

  • Doctor / Dentist – patient appointments with intake fields on the booking form.
  • Therapy / Counselling – private 1-on-1 therapy or coaching sessions.

Fitness and classes – group bookings that share one capacity.

  • Class / Studio – yoga, language class or workshop: several people book the same session.
  • Fitness Class / Gym – group classes and gym sessions with a capacity-limited headcount.

Hospitality – tables, desks and catering.

  • Cafe / Reserved Seat – reserve a small table for a time window.
  • Coworking Desk – a hot desk rented by the hour at a coworking space.
  • Catering Booking – a catering package booked for a date, with guest count and minimum party size.

Travel and transport – journeys and charters.

  • Airport Shuttle / Transfer – pickup-to-dropoff transfer booked for a chosen time.
  • Boat / Yacht Charter – private charter at an hourly rate with a passenger limit.

Rentals – book the thing, not the person.

  • Court / Equipment Rental – tennis court, kayak or gear: direct resource bookings by the hour or day.
  • Car / Van Rental – daily vehicle rental from a pool of cars, each with its own rate.
  • Camera / Gear Rental – daily rental of cameras, lenses and equipment.

Education

  • Tutoring / Lessons – private 1-on-1 lessons or tutoring sessions.

Anything else

  • Custom – skip the wizard and build your services, availability and form from scratch.

Online appointment scheduling

  • Date and time slot picker – customers book from a live calendar that only shows slots you are actually free for.
  • Per-service duration and buffer time – add padding before or after each appointment so back-to-back bookings never collide.
  • Lead time and booking window – require a minimum notice before an appointment, and stop bookings too far in the future.
  • Weekly availability with date overrides – set working hours once, then block holidays or open a partial day when you need to.
  • Automatic double-booking protection – slots are checked against existing bookings and capacity before a booking is accepted.
  • Recurring bookings – let a customer book the same slot daily, weekly or monthly in one go.
  • Group and party bookings – set a capacity per slot and collect details for every attendee in the party.

Resource and rental reservations

Bookable resources cover anything that is not a person: rooms, desks, courts, studios, vehicles, equipment. Each resource gets its own capacity, pricing and availability rules, plus its own public listing page.

Staff, hosts and multi-location teams

Assign one or more hosts to a service and the booking form respects each host’s own working hours. Team roles keep staff on the screens they need without handing out administrator access.

Custom booking forms

Build the questions you ask at checkout with a drag-and-drop form builder: text, email, phone, dropdown, radio, checkbox, multi-select and more, per service or shared globally. Mark fields required, and get notified when a specific answer comes in.

Automated booking emails

Confirmation, reschedule and cancellation emails are sent automatically to both the customer and the site admin, from templates you can edit in the admin.

Customer self-service

A My Bookings page lets customers view, reschedule or cancel their own bookings through signed links – and it is embedded as a native tab inside the WooCommerce, StoreEngine and Academy LMS account dashboards, so customers never leave your store to manage a booking.

Visitor timezone detection

Times are detected in the visitor’s own timezone and shown that way in the slot picker, confirmation screen, My Bookings page and emails, so remote appointments are never booked an hour off.

Booking management for admins

  • Calendar and list views of every booking, with search and filters by date, status or customer.
  • Status workflow – pending, confirmed, cancelled, rescheduled – plus bulk actions.
  • Add a booking manually on behalf of a customer straight from the calendar.
  • Redirect customers to a thank-you page of your choice after booking.

Accept payments for bookings

Connect the built-in WooCommerce or StoreEngine integration and every booking becomes a real order, inheriting your existing prices, taxes, currencies and payment gateways – no separate checkout to configure.

Works with your existing store or LMS

  • WooCommerce – sell bookings as products and show My Bookings inside the WooCommerce account dashboard.
  • StoreEngine – full checkout, product linking and order sync, with a My Bookings dashboard tab.
  • Academy LMS – My Bookings appears as a native tab in the student dashboard, so tutoring sessions sit beside courses.

Shortcodes

Drop booking anywhere on your site – any theme or page builder that renders shortcodes will do:

  • [gembooking_service id="123"] – a single service with its Book Now button
  • [gembooking_service_list] – a browsable list of services
  • [gembooking_resource] – bookable resources, one or all
  • [gembooking_event] / [gembooking_event_list] – events
  • [gembooking_flow] – a full guided booking flow, with or without a picker
  • [gembooking_form] – a standalone booking form
  • [gembooking_my_bookings] – the customer booking dashboard
  • [gembooking_customer_panel] – the customer account panel

Developer friendly

Custom database tables with a documented REST API, WP-CLI commands, outgoing webhooks for booking events, and filters throughout the booking solver. Fully translation ready and RTL ready under the gembooking text domain.

GemBooking Pro – advanced booking types

GemBooking Pro is a separate plugin that unlocks the booking types below, plus dynamic pricing rules, extra services, prepaid packages, and Zoom, Google Meet, Google Calendar, Microsoft Teams and SMS integrations.

  • Hotel / Short-Stay Rental – multi-day stays with check-in / check-out dates and a pool of rooms.
  • Restaurant – table reservations placed on a visual floor plan.
  • Ticket / Event Sales – concerts, theatre and workshops: sell tickets for a fixed date with QR check-in and per-ticket perks.
  • Seated Event – theatre, concert hall or stadium: assigned-seat ticket sales with a visual seat picker.
  • Conference – a multi-tier community conference ticket with QR check-in for entry, meals, swag and the after party.
  • Contributor Day – the free, hands-on side event that runs alongside a conference: RSVP tickets with QR check-in.
  • Bus Route – inter-city bus with multiple stops, assigned seats and segment-aware ticketing.
  • Tour / Day Trip – guided tour or day trip with a fixed departure date and capacity.

Installation

From your WordPress dashboard

  1. Go to Plugins – Add New and search for GemBooking.
  2. Click Install Now, then Activate.

Manual installation

  1. Upload the gembooking folder to /wp-content/plugins/.
  2. Activate the plugin through the Plugins menu in WordPress.

First-time setup

  1. Go to GemBooking – Dashboard and run the onboarding wizard.
  2. Pick the preset that matches your industry. It seeds a starter service, availability and booking form for you.
  3. Set your working hours under the service’s availability tab.
  4. Publish the booking form on any page or post with the [gembooking_service id="123"] shortcode, or link to the service page the plugin already created.
  5. Optional – activate the WooCommerce or StoreEngine integration if you want to charge for bookings.

FAQ

Is GemBooking free?

Yes – no booking limit, no time limit, nothing locked behind an upgrade prompt. GemBooking Pro is a separate plugin for hotels, restaurants, seat maps, ticketing and third-party integrations.

Which preset should I choose?

The one closest to your business. A preset only seeds a starter service, availability and form, and anything it creates can be renamed, re-priced or deleted. If nothing fits, pick Custom.

How do I add a booking form to a page?

Paste [gembooking_service id="123"] into any page or post, or [gembooking_form] for a standalone form. The plugin also creates service and resource pages for you automatically.

Can I prevent double bookings?

Yes. Every slot is validated against existing bookings, per-slot capacity and buffer time before it is saved, so the same slot cannot be taken twice.

Can I book rooms, equipment or vehicles instead of people?

Yes. Bookable resources cover anything that is not staff-based, each with its own capacity, pricing and availability.

Does it support multiple staff members?

Yes. Assign a service to one or more hosts and the booking form only offers slots that host is actually free for.

Can customers reschedule or cancel their own bookings?

Yes, through signed links in the confirmation email and on the My Bookings page. Both can be switched off per service.

Does it handle different timezones?

Yes. The visitor’s timezone is detected automatically and every time is shown in it, while the booking is stored against your site’s timezone.

Can I accept payments for bookings?

Yes. Activate the WooCommerce or StoreEngine integration and each booking checks out as a normal order, using your existing gateways, taxes and currency.

Does it work with WooCommerce?

Yes. Sell bookings as WooCommerce products, and My Bookings appears as a tab inside the WooCommerce account dashboard.

Can I sell event tickets?

Date-based event bookings are free. Ticket tiers, QR check-in and assigned seating come from the separate GemBooking Pro plugin.

Does it work with my theme and page builder?

Yes. The booking screens render through shortcodes, so any theme or page builder that outputs shortcodes can display them. The front end is responsive and RTL ready.

Is GemBooking translation ready?

Yes. All strings use the gembooking text domain, a POT file ships in /languages, and the interface supports RTL languages.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“GemBooking – Appointment Booking, Booking Calendar & Reservations” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.3.1

25-08-2026
* Fixed – Translations now apply to the admin and booking screens. GemBooking’s JavaScript strings could never be matched to a language pack on translate.wordpress.org, so even a fully translated locale still displayed English. The plugin now ships a translation manifest that WordPress.org and WordPress can both read.
* Fixed – 47 JavaScript strings across 16 screens carried an incorrect text domain (including “gembook”, “gemboards” and “academy”) and so were never offered for translation at all.
* Fixed – Some GemBooking Pro settings tabs could render with missing spacing and styles.
* Improved – GemBooking Pro can now add its new Manage License screen to the bottom of the Settings tabs.

1.3.0

17-08-2026
* Changed – GemBooking Pro’s features now ship entirely inside GemBooking Pro. The free plugin no longer contains any locked, greyed-out or non-functional Pro screens; every control it shows is fully usable.
* Changed – The dynamic pricing, extra services, seat map, floor plan and hotel editors, the Venues and Floors screens and their matching booking-form steps are now added by GemBooking Pro when it is installed.
* Improved – Group attendees (per-attendee details for party bookings) is now a free feature.
* Improved – Booking form builder— field types that your site cannot use are hidden instead of shown as locked options.
* Fixed – StoreEngine shop archive— the “Book Now” button is now swapped in without output buffering, removing an unclosed buffer that could interfere with other plugins on the shop page.

1.2.4

09-08-2026
* Fixed – Custom database tables now use the WordPress-recommended dbDelta schema format, so activation no longer logs “Multiple primary key defined” database warnings.

1.2.2

27-07-2026
* Changed – Updated the bundled chillerlan/php-qrcode library to version 5 for continued security and compatibility.
* Changed – The full React/Sass source and build configuration now ship with the plugin so the compiled assets are publicly reviewable and reproducible.
* Fixed – Removed a leftover set of add_action() calls that were registered without a callback, preventing a possible fatal error on PHP 8+.

1.2.1

15-07-2026
* Changed – GemBooking now requires PHP 8.1 or higher. On older PHP the plugin stays inactive and shows a notice instead of causing errors.
* Improved – Ticket QR codes are now generated on your own site (no third-party QR image service), so ticket data never leaves your server.
* Improved – Privacy & self-hosting— removed all remote asset calls (fonts, images); the core plugin loads everything locally and contacts no external service by default.
* Improved – WordPress.org compliance & security hardening— input sanitization, output escaping, proper script/style enqueuing, and nonce/permission checks across admin and REST endpoints.
* Improved – Admin notices on GemBooking’s own screens are hidden only on those pages, so other plugins’ notices are never suppressed elsewhere.
* Fixed – Ticket QR image now loads correctly on sites using plain permalinks.

1.2.0

25-06-2026
* Added – Timezone auto-detect— booking time fields detect the visitor’s own timezone; slot picker, confirmations, My Bookings and emails show times in the customer’s zone.
* Added – Dashboard embed— “My Bookings” is now embedded as a native tab inside the WooCommerce, StoreEngine and Academy LMS customer dashboards, so customers manage bookings without leaving the store/LMS.
* Added – My Packages— customers see their purchased packages on the My Bookings page and book the included services/events/resources for free, with a friendly empty state.
* Improved – Add-ons page— credential add-ons reserve a fixed connection slot so toggling/connecting no longer makes the card grid jump.
* Improved – Booking calendar— hover any day (month, week or day view) to reveal an “Add” button that opens Add Booking pre-focused on that date.
* Improved – Manual booking— admin “Add Booking” no longer prefills or assigns the booking to the admin; the real customer is captured and the booking owner resolves from the customer’s email.
* Improved – Booking Forms— the advanced builder now unlocks automatically when GemBooking Pro is active (no separate add-on toggle).
* Improved – Ticket scanning— the Tickets admin page now surfaces the frontend “staff scan” page link (with copy), so you can share it with gate staff to redeem tickets from any phone.
* Changed – Packages moved to GemBooking Pro— the Packages feature now requires GemBooking Pro.
* Fixed – Add-on activation crash (“Cannot assign to read only property”).
* Fixed – “Show booking products in shop” setting now saves.
* Fixed – Customer Profile page crash on the timezone field.
* Fixed – StoreEngine dashboard “My Bookings” menu icon.
* Fixed – Logged-out My Bookings page now redirects to login and, when active, the store/LMS dashboard.
* Fixed – Team members— assigning an access role no longer overwrites a user’s existing roles, and the team UI can no longer grant administrator.
* Fixed – Multi-value booking-form answers (checkbox / multi-select) are now saved correctly instead of being lost.
* Fixed – Deleting a package from the admin list.

1.1.0

18-06-2026
* Added – Microsoft Teams location option— Microsoft Teams added as a selectable location type when creating or editing calendar events.
* Improved – All admin dashboard UI and frontend booking modal UI
* Fixed – User reschedule and cancellation for booking.
* Fixed – All buttons click page reload issue.
* Fixed – All buttons disable issue.
* Fixed – Onboarding reload issue.

1.0.1

10-06-2026
* Improved – Ticket selling— Fixed event datetime with sales cutoff, per-tier pricing (Adult / Child / VIP / GA).
* Improved – Tickets List table— Admin table view for managing tickets.
* Improved – Share system— Share bookings and events.
* Improved – Reply Features— Reply to booking notifications.
* Improved – WooCommerce Integration— Full WooCommerce checkout compatibility with prices, taxes, and gateway inheritance.
* Improved – StoreEngine integration— sell bookings through the StoreEngine eCommerce engine (checkout, product linking, order sync).
* Improved – eCommerce Engine system— Flexible eCommerce engine architecture.
* Improved – Price Global Settings— Global pricing configuration.
* Improved – Onboarding wizard— Industry preset system with guided setup.
* Improved – Free presets— Appointments, Photographer, Lawyer/Consultant, Salon/Spa, Massage, Doctor, Therapy, Class/Studio, Fitness, Cafe, Coworking, Catering, Shuttle, Boat Charter, Rentals, Car Rental, Gear Rental, Tutoring.
* Improved – Preset system— Pre-configured booking setups with lock system for Pro presets.
* Added – Taxonomy Support— Custom taxonomy for organizing services, events, and resources.
* Added – Location features— Location-based booking support with multiple location types (in-person, Zoom, Google Meet, MS Teams, online).
* Improved – Shortcode—[gembooking_service id=”123″]and[gembooking_event]shortcode support.
* Improved – Service & Event archive/single pages— Custom template pages for services and events.
* Improved – My Bookings page— Customer self-service booking management.
* Improved – Settings UI— Complete settings page redesign with organized sections (General, Email, Hotel, Venue).
* Improved – Booking management— Status workflow (pending confirmed / cancelled / rescheduled), bulk actions, search and filter by date/status/customer.
* Improved – Calendar view— Calendar view added to booking management.
* Improved – Booking details— Updated booking detail views.
* Improved – Reschedule UI— Reschedule and cancellation interfaces.
* Improved – Modal system— Multiple modal types for booking flows, confirmation dialogs before delete.
* Improved – Dashboard UI— Redesigned admin dashboard.
* Improved – Time format— Configurable time format support.
* Improved – Breadcrumbs— Updated breadcrumbs across admin pages.
* Improved – Icons & Colors— Updated icon set and border colors throughout the admin.
* Improved – Security hardening— Fixed multiple security issues across the codebase.
* Improved – Token security— Improved token handling for authentication.
* Improved – Auth fixes— Resolved authentication issues with Zoom server-to-server OAuth.
* Fixed – Timezone compatibility— Fixed timezone issues; now fully compatible with WordPress timezone settings.
* Fixed – Availability rules— Fixed availability rule generation and bug issues.
* Fixed – Preset fixes— Resolved preset pricing, conflicts with StoreEngine, and multiple preset bugs.
* Fixed – Ticket system— Fixed ticket slot picking, attendee types, and booking issues.
* Fixed – Host issues— Fixed event host missing and host member slot generation.
* Fixed – Modal issues— Fixed modal open/close issues across the admin.
* Fixed – Payment issues— Fixed payment processing bugs.
* Fixed – Notification indexing— Fixed notification indexing for proper delivery.
* Fixed – Required fields validation— Fixed form validation for required fields.
* Fixed – Menu option— Fixed admin menu option display.
* Fixed – Lazy load— Removed lazy loading for improved reliability.
* Fixed – Table issues— Fixed various table display and data issues.
* Fixed – Tags and slug— Fixed taxonomy tag and slug issues.
* Fixed – Custom availability— Fixed custom availability override issues.
* Fixed – Slot conflicts— Resolved time slot conflict detection.
* Fixed – Team member slots— Fixed team member slot generation.
* Fixed – Link creation— Fixed link generation issues.
* Fixed – Max capacity— Fixed maximum capacity enforcement.
* Fixed – Booking redirect— Fixed post-booking redirect behavior.
* Fixed – Service duration— Fixed duration and attendee value bugs.
* Fixed – StoreEngine conflicts— Resolved conflicts between presets and StoreEngine.
* Fixed – Meta issues— Fixed save meta not showing and meta data saving issues.
* Fixed – Onboarding issues— Fixed onboarding wizard flow and menu issues.

1.0.0

26-05-2026
* Initial public release.