Description
Bookings turns WooCommerce into a booking platform by time slot, day, or block of time, creating a bookable product type with an interactive calendar on the front end and configurable availability rules in the admin. It works for rentals, consultations, services, accommodations, and any scenario where the customer needs to choose a date or range before completing the order at the store’s standard checkout.
Key Features
- Dedicated bookable product
Adds a new WooCommerce product type with mandatory date or range selection. - Interactive calendar on the product page
Displays a visual picker showing available, booked, and partially available days to the customer. - Flexible availability rules
Sets business hours, blocked days, holidays, and resource-specific windows. - Manual or automatic confirmation
Lets you approve bookings individually or release payment immediately after the time slot is chosen. - Pricing by duration and headcount
Calculates the price based on days, hours, number of participants, or resources selected by the customer.
Benefits of Bookings
- Unified store and schedule
Centralizes sales and bookings in the same WooCommerce dashboard, with no external calendar tool needed. - Fewer scheduling conflicts
Automatic blocking of booked slots reduces duplicate reservations and cancellations from overlap. - Predictable revenue per window
Structures pricing by hour, day, or package, increasing the business’s average ticket. - Clear customer experience
The visual calendar shortens the decision process and reduces support questions before purchase.
Who Is It For?
- WooCommerce stores selling services by the hour, such as consulting, therapy, and private lessons.
- Accommodation businesses and rentals of properties, equipment, vehicles, or spaces by period.
- Health, beauty, workshop, and studio professionals who need to manage scheduling and payment on the same platform.
Built for those who already run WooCommerce and want to turn products into bookable services without migrating to parallel systems, Bookings combines catalog, calendar, payment, and reservation management into a single flow. Granular availability and pricing configuration makes the module suitable for both simple consultation setups and multi-resource scenarios, such as rooms, suites, and teams.
Frequently asked questions
Is WooCommerce Bookings GPL-licensed?
Yes. WooCommerce Bookings is distributed under the GPL (GNU General Public License). You may legally use, modify and redistribute it on as many sites as you want.
Can I use WooCommerce Bookings on multiple sites?
Yes. You can install WooCommerce Bookings on as many sites as you want. Only automatic updates through Ultrapack Auto Updater have a limit: from 3 to 80 sites, depending on the plan.
How much does WooCommerce Bookings cost at Ultrapack?
WooCommerce Bookings costs US$2.99 as a single purchase, and it is also included in the subscription plans starting at US$12/mo (VIP I).
Does WooCommerce Bookings include updates?
Yes. The current version of WooCommerce Bookings is 3.10.0, published at Ultrapack on Sep 2, 2026. Subscribers update straight from the WordPress dashboard with UAU (Ultrapack Auto Updater).
Is WooCommerce Bookings scanned before publication?
Yes. Every version of WooCommerce Bookings goes through a malware scan (ClamAV and YARA rules, at UltraHub) before it is published.
What are the requirements for the plugin WooCommerce Bookings?
Requires WordPress 6.8 or higher and PHP 7.4 or higher. Tested up to WordPress 7.0.
What changed in this version
Version 3.10.0 2026.09.02
- Add - New "Share max bookings per block?" resource setting that makes a bookable product's max bookings per block a single allowance shared by all of its resources, so a slot taken on one resource can no longer be booked again on another.
- Fix - Bounded public availability requests by the product booking window and a one-year hard limit.
- Fix - Prevented public slot requests from exposing non-public booking products.
- Fix - Prevented public booked-day requests from exposing unpublished booking products.
- Fix - Required object-level edit access and relevant booking capabilities for booking product AJAX mutations, and prevented duplicate resource links.
- Fix - Required exact-order permission before booking REST requests can change existing order associations.
- Fix - Required access to the target booking before confirming it from the admin list.
- Fix - Restricted the store-wide booking calendar to users who can edit other users' bookings.
- Fix - Restricted store-wide booking notifications to users who can edit other users' bookings.
- Fix - Rejected availability requests for resources not assigned to the requested product.
- Fix - Preserved caller-selected CSV source files after an import finishes.
- Fix - Restricted store availability AJAX reads to users with the availability read permission.
- Fix - Enforced the current cancellation policy and cutoff for saved cancellation links.
- Fix - Restricted booking product metadata in REST responses to product editors.
- Fix - Kept cached slot responses separate for requests that show or hide unavailable times.
- Fix - Hardened private-read checks for booking and resource REST records.
- Fix - Required delete permission when a REST update trashes a team member.
- Fix - Blocked payment for orders with bookings awaiting confirmation.
- Fix - Limited public team-member REST responses to profile fields.
- Fix - Rendered imported Google Calendar event summaries as text in the merchant schedule.
- Fix - Prevented translations from loading before WordPress initialization.
- Tweak - Improved booking form performance by fetching availability for all blocks and resources in one query instead of one per combination.
- Dev - Managed changelog entries with Jetpack Changelogger: pull requests add a change file under changelog/ instead of editing changelog.txt, which is compiled at release time.
- Dev - Added E2E coverage for the bookable product editor, asserting settings persist by reading the saved product back over the REST API.
- Dev - Removed redundant and low-value tests.
Version 3.9.0 2026.08.19
- Fix - Fixed a fatal error on the product page and when adding to the cart if a person type cost was stored with a currency symbol or other non-numeric characters.
- Fix - Fixed a person type cost stored with a thousands separator or a decimal comma being priced as only the digits before the separator.
- Fix - Fixed a fatal error when a pricing rule was set to divide by an empty or zero amount.
- Fix - Fixed the admin calendar single-day view defaulting to the server (UTC) date instead of the site timezone, which shifted bookings by a day once UTC and the site were on different calendar dates (for example, past 7 PM in UTC-5).
- Fix - Fixed a false "Error while deleting the item" error when permanently deleting bookings on HPOS stores.
- Dev - Removed the vulnerable extract-zip package from the development toolchain to resolve a Dependabot security alert.
- Fix - Prevented manual booking creation from changing orders without edit permission.
- Dev - Restored TLS certificate verification and fail-closed error handling in the release deployment script.
- Fix - Prevented team-member updates from changing unauthorized booking products.
- Add - Support for importing accommodation bookings from a CSV file.
- Fix - Fixed a blocking Google Calendar API call being made on every request (front end, REST API, cron, login) when a Google account is connected; the calendar list is now fetched only when the settings form fields are actually used.
- Dev - Pinned and checksum-verified the WP-CLI executable used in release builds.
- Dev - Wired the pull request CI checks required by the trunk branch protection rules (PHP coding standards, @version tag validation).
- Dev - Aligned AI-agent docs, ignore rules, and npm script aliases with the sibling extensions.
- Dev - Updated the npm build toolchain to resolve all remaining Dependabot security alerts.
- Fix - Restricted booking product template creation to authorized product editors with a valid request nonce.
- Fix - Fixed the "Booking Person Discount" coupon applying a discount 100 times too large at cart and checkout for currencies with zero decimals (for example JPY).
- Fix - Fixed console errors on admin screens when the WooCommerce Tracks object is unavailable.
- Fix - Fixed the date picker calendar availability announcement not being read by screen readers when the calendar opens on focus.
- Fix - Fixed the admin Add Booking screen and reschedule dialog showing times in the merchant's browser timezone instead of the store timezone when "Display visitor's local time" is enabled.
- Fix - Fixed the admin calendar month and schedule views defaulting an out-of-range year to the server (UTC) year instead of the site timezone, so the calendar could open on the wrong year around New Year.
- Dev - Update the shipped @babel/runtime helpers to resolve a security advisory.
- Dev - Fixed Markdown documentation lint violations and wired the Markdown docs lint into CI.
- Dev - Removed the dead lint:md:js script.
- Dev - Documented the isolated worktree setup for local development.
- Dev - Stop waiting on networkidle when opening the front-end product page in E2E specs; wait on the date picker's own readiness signal instead.
- Dev - Enabled TLS certificate verification for translation downloads.
- Dev - Seed bookable products for E2E specs through the REST API instead of driving the admin product editor.
- Dev - Suppressed dependency deprecation notices in the PHP unit test suites.
- Dev - Added a CI check that fails when the plugin's own PHP sources raise compile-time deprecation notices.
- Dev - Added a pre-commit check that enforces updating the @version tag to x.x.x on modified PHP classes.
- Dev - Enabled JavaScript linting in CI and fixed source violations.
- Dev - Migrated the ESLint setup to the flat config format required by ESLint 10, aligning the lint and formatting toolchain with WooCommerce core.
- Dev - Update wp-coding-standards/wpcs to 3.4.1 (security release) in the phpcs lint tooling.
- Dev - Update PHPUnit to 9.6.35 to resolve a security advisory in the PHP test toolchain.
- Dev - Update development npm dependencies to resolve security advisories in the build toolchain.
- Dev - Update the shipped phpseclib library to resolve security advisories, and move Strauss and QIT CLI to require-dev.
- Dev - Update the shipped Guzzle libraries and the Symfony YAML development dependency to resolve security advisories.
- Dev - Enabled CSS linting in CI and fixed source style violations.
- Fix - Prevented resource REST requests from reading or deleting team members.
Version 3.8.0 2026.07.22
- Add - Reschedule flow on the booking details admin view: availability-aware calendar that preselects the current slot, keeps the original price, and re-syncs to Google Calendar.
- Add - Added the ability to edit the "Requires confirmation" payment method title and description from its settings.
- Fix - Fixed hourly bookings ending exactly at midnight incorrectly blocking the following day from being booked.
- Fix - Fixed a JS error when multiple bookable products are displayed on the same page.
- Fix - Fixed the admin calendar Day view displaying a booking that ends at midnight as an all-day block on the following day.
- Fix - Fixed calendar date picker navigation arrows being hidden at narrower screen resolutions due to a z-index conflict with the table navigation bar.
- Fix - The `woocommerce_bookings_booked_day_blocks` filter is now consistently applied even when a product has no existing bookings.
- Fix - Replaced legacy `{blogname}` placeholder with `{site_title}` in all booking email subject defaults to align with WooCommerce core.
- Fix - The add-to-cart button on the single product page now inherits the theme's Global Styles button design on block themes.
- New - Important: WordPress 6.8+ is now required.
- New - Important: WooCommerce 10.6+ is now required.
- Tweak - Bumped WooCommerce "tested up to" version to 11.0.
Version 3.7.0 2026.06.29
- Tweak - Important: Updated frontend templates.
- Fix - Improved accessibility.
- Fix - Fixed availability times on the product edit screen when admin and site timezones differ.
- Fix - Fixed calendar showing days as available when remaining slots are below the minimum persons per booking.
Version 3.6.0 2026.06.16
- Add - Bookings CSV exporter to download bookings as a CSV file.
- Add - Bookings CSV importer to create and update bookings in bulk from a CSV file.
- Add - Added a "Bookings" endpoint setting under WooCommerce > Settings > Advanced > Page Setup > Account endpoints.
- Fix - Booking reminder emails and automatic completions now happen at the correct local time on sites outside the UTC timezone.
- Fix - Fixed a fatal error when importing a bookable product CSV with person types disabled (empty Person types column).
- Fix - Bookable product CSV import/export now uses readable column labels and auto-detects them on import.
- Fix - Fixed clipped Date created hour/minute inputs on the booking edit screen in WordPress 7.0.
- Fix - Fixed the booking list in WP Admin showing the wrong customer email after reassigning a booking to a different customer.
- Fix - Prevented the "Move to trash" link from displaying on the Edit Booking screen for users who cannot delete bookings.
- Fix - Fixed a fatal error when enabling "Restrict selectable days" without selecting any days.
- Fix - Fixed admin calendar possibly showing a stale customer note on bookings without a note.
- Fix - Fixed the `woocommerce_bookings_account_endpoint` filter not working when used in a theme's functions.php.
- Fix - Used the configured bookings account endpoint slug for the email "View my bookings" link and My Account pagination links instead of the hardcoded default.
- Tweak - Removed the "Enable Bookings Timezone Calculation" setting, as booking events now always follow your site's timezone automatically.
- Tweak - Improved the booking edit screen responsive layout by stacking details columns before fields become crowded.
- Tweak - Improved booking form calculation AJAX requests.
- Tweak - Performance improvements when fetching bookings for availability requests.
- Tweak - Bumped WooCommerce tested up to version to 10.9.
- Dev - Fixed Plugin Check compatibility reporting for guarded block metadata registration helpers.
Release notes published by the developer.
How to install
Automatic updates: this item is updated by the Ultrapack Auto Updater. With it installed, the new version shows up in your dashboard like any other WordPress update (how to set it up).
- Download the file
woocommerce-bookings.zip. - In the WordPress dashboard, go to Plugins > Add New > Upload Plugin.
- Select the file
woocommerce-bookings.zipand click Install Now. - Click Activate.
Requirements: Requires WordPress 6.8 or higher and PHP 7.4 or higher. Tested up to WordPress 7.0.
Stuck on a step? Open a ticket telling us which one you stopped at.

UAU Ready