Description
Key Features of WooCommerce Appointments
- Interactive Product Calendar
Displays a visual calendar on the product page for selecting available dates and times. - Automatic Schedule Synchronization
Integrates time slots and availability directly from BookingWP appointments. - Time Slot Blocking After Purchase
Prevents double bookings by reserving the time slot immediately when the order is completed. - Date Fields in the Cart
Keeps the selected date and time visible throughout checkout. - Booking Confirmation Notifications
Sends automatic emails to the customer and administrator when the order is confirmed.
Benefits of WooCommerce Appointments
- Centralized Processes
Combines scheduling and sales in a single WooCommerce system. - Reduced Rework
Eliminates manual availability checks and overlapping bookings. - Integrated Customer Experience
Allows customers to schedule and pay within the same purchasing journey. - Simplified Management
Manages time slots and orders directly from the WooCommerce dashboard.
Who Is WooCommerce Appointments Recommended For?
- Those who sell private lessons, consulting, or coaching through WooCommerce and need to schedule appointments.
- Those who rent equipment, spaces, or rooms and want to integrate availability into checkout.
- Those who offer healthcare or wellness services (clinics, spas) and want to automate appointments with online payment.
How to Download WooCommerce Appointments
WooCommerce Appointments is available for download here at Ultrapack. After downloading the .zip file, install it as a plugin under Plugins > Add New > Upload Plugin, select the .zip file, and activate it. The scheduling feature will then appear when editing WooCommerce products, ready for immediate use.
By combining the BookingWP appointment system with the WooCommerce sales framework, the addon allows those who sell session-based services to manage bookings and payments in a single workflow. Without additional plugins or manual integrations, availability is synchronized in real time, reducing cancellations caused by scheduling conflicts. The result is a more streamlined operation and a clear purchasing process for the end customer.
Frequently asked questions
Is BookingWP | WooCommerce Appointments GPL-licensed?
Yes. BookingWP | WooCommerce Appointments 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 BookingWP | WooCommerce Appointments on multiple sites?
Yes. You can install BookingWP | WooCommerce Appointments 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 BookingWP | WooCommerce Appointments cost at Ultrapack?
BookingWP | WooCommerce Appointments 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 BookingWP | WooCommerce Appointments include updates?
Yes. The current version of BookingWP | WooCommerce Appointments is 5.4.15, published at Ultrapack on Sep 6, 2026. Subscribers update straight from the WordPress dashboard with UAU (Ultrapack Auto Updater).
Is BookingWP | WooCommerce Appointments scanned before publication?
Yes. Every version of BookingWP | WooCommerce Appointments goes through a malware scan (ClamAV and YARA rules, at UltraHub) before it is published.
What are the requirements for the plugin BookingWP | WooCommerce Appointments?
Requires WordPress 6.8 or higher and PHP 7.4 or higher. Tested up to WordPress 7.1.
What changed in this version
Version 5.4.15 2026.09.04
- Dev - Tests: AddonCartCostLiveTest covers day/night duration add-on fees (stack, zero-base, duration-only fee 0, fee without duration).
- Dev - Tests: CartCheckoutLiveTest covers dangling order parent on inactive-cart cleanup and session load; hard-deleted orders assert cascade appointment removal.
- Dev - Tests: weekday collectors treat max_bookable civil day as exclusive (partial max_check_to window; Johnsansom parity stable on America/New_York mornings).
- Fix - Product Add-ons: "Use once per recurring series" follows Can be recurring? on existing and newly added fields, including when the checkbox is toggled before save.
- Fix - Product Add-ons: day/month/night products always include duration add-on fees (zero-base packages and priced bases); extended days still bill at the product rate. Duration-only options stay available: set the option price to 0 so the span grows and only the product rate applies.
- Fix - Product Add-ons: a required Quantity (input multiplier) with min 0 again accepts 0 (base duration only; no add-on cart line).
- Fix - Cart: deleting a draft (or any) order as cron/Action Scheduler again releases linked in-cart holds; abandoned-cart cleanup no longer treats a missing order ID as a live exemption.
Version 5.4.14 2026.09.03
- Improvement - Admin calendar: availability SSE snackbars name the change again (saved or deleted; bursts still collapse to a count).
- Improvement - Admin calendar: reorder-only availability rule saves no longer show an SSE snackbar.
- Improvement - Updated all translations for new and changed strings.
- Dev - Tests: live suite no longer strips shared WP/WC hooks to silence SSE; pushes gate via `wc_appointments_sse_push_enabled`, runtime queue reset, safer cache flush, and phpunit memory_limit 768M.
- Dev - Tests: CartCheckoutLiveTest covers multi-line same-slot checkout (2 allow / 3 reject), confirmed-plus-holds, different times, staff-scoped holds, and single-hold qty 2; index on/off where capacity exclude matters.
- Dev - Tests: BookingFormAtcLiveTest covers storefront add-to-cart capacity (confirmed/in-cart fill, qty above remaining, remaining seat allow) and sold-individually blocking a second cart line.
- Dev - Tests: BookingScenarioWritePathLiveTest covers padding×capacity, per-day multi-line, staff automatic/all ATC, requires-confirmation occupancy/mixed cart, overnight multi-hold, addon×capacity, customer TZ ATC, unpaid occupancy, cross-product padding ATC, span=start ATC, admin vs storefront capacity parity, restricted days / min_date crafted POST ATC, multi-day overlap ATC, cancelled/was-in-cart vs complete occupancy, and independent products at the same wall time.
- Dev - Tests: MyAccountRescheduleContractLiveTest covers reschedule self-exclude, full-slot reject, capacity-2 remaining seat, padding adjacent reject, and staff-all taken reject; CartCheckoutLiveTest locks Store API vs legacy checkout wrappers on multi-hold capacity; RestAppointmentsCreateLiveTest documents that REST create may overbook a storefront-full slot.
- Dev - Tests: GcalStaffRemoveOnCancelLiveTest locks `remove_from_gcal` staff fan-out: staff-only sync, main plus staff, and shared calendar with and without a main event (one DELETE per event).
- Dev - Tests: IcsCancelContractLiveTest locks cancelled ICS export (no STATUS:CANCELLED) and that cancel emails skip ICS attachments; EmailCancelTransitionLiveTest covers single cancel notifications, series FUTURE suppress, and series ONE per-occurrence cancel; GcalInboundCancelLiveTest covers Google→WP CANCELLED (main cancel, staff detach, last-staff cancel).
- Fix - Checkout: two or more separate cart appointments for the same product and time slot no longer fail availability when their combined quantity still fits capacity.
- Fix - Google Calendar: cancelling or trashing an appointment now removes the event from staff calendars when only staff calendars are connected (no site calendar or no site event).
- Fix - Google Calendar: successful event DELETE clears the stored site/staff event IDs; inbound staff detach drops that staff’s event ID (staff event ID map merge no longer blocks removals or updates).
- Fix - Admin calendar: fixed toolbar and day headers use locked SCSS spacing (no JS height measure); left tracks the admin menu via WP folded breakpoints so Chrome and Firefox stay flush.
Version 5.4.13 2026.09.02
- Dev - Validation clones the product to the posted duration for range checks (`get_product_for_range_validation`); extended-range capacity anchors on a start-aligned grid row (±120s) with a covering-row fallback for off-grid starts; a zero or negative posted/list total keeps the base duration (shorten below base stays allowed); slot cache keys include duration so adjusted-length collections never reuse base rows.
- Dev - Tests: AddonDurationValidationLiveTest covers handoff after a prior booking (+30/+60), shortened 19:15–20:00 (−15), index on/off, and listing vs cart; AddonCartCostLiveTest locks posted duration below base.
- Fix - Storefront / cart: Product Add-ons that lengthen or shorten duration book the same times shown in the list, including starts right after another appointment ends and late starts that only fit a shortened length.
Version 5.4.12 2026.08.28
- Improvement - Updated Product Add-ons to 8.4.1 (validation, Store API batch, global add-ons search/sort, upload index.html, WordPress Abilities).
- Improvement - WooCommerce minimum supported is 10.6; WordPress minimum is 6.8 (aligned with Product Add-ons).
- Improvement - Updated all translations for new and changed strings.
- Dev - Tests: AddonSeasonalDuplicateOptionLiveTest covers radio/checkbox purchase when a hidden seasonal option shares the same label; AddonCartCostLiveTest covers cart duration fields, posted duration totals, and hour vs day addon cost rules; AddonStorefrontTitleLiveTest locks fieldset Title (Label/Heading) markup for checkbox, radio, and images, plus image swatch title omitting price when hide price is on.
- Fix - Product Add-ons: radio/checkbox options with the same label as a hidden seasonal duplicate can be purchased again; cart uses the visible option’s price (not the hidden one).
- Fix - Product Add-ons: hide price and duration labels work again on the storefront after the 8.4.1 update (including image swatch tooltips); option prices no longer wrap onto their own line.
- Fix - Storefront: add-on Title (Label/Heading from the product editor) shows again for checkbox, radio, and image fields; fieldset/legend styles match upstream so titles do not collapse.
- Fix - Product Add-ons: cart again skips TM Extra Product Options items when addons carry `epo`, so both extensions can coexist after the 8.4.1 sync.
- Fix - Admin panel: header/footer scroll shadows match the calendar chrome and appear from the first pixel of overflow, drawing over fields scrolled under the edges.
Version 5.4.11 2026.08.26
- Tweak - Product Add-ons: addon name font size and weight are no longer `!important`, so themes and custom CSS can restyle them; display stays `!important` so poorly styled themes do not break legend/label layout.
- Dev - Tests: PhpstanLevel2RegressionLiveTest covers Failed → processing/completed restoring an order-linked `was-in-cart` hold via `publish_appointments`.
- Dev - Admin CSS: clearfix no longer emits IE `*zoom`; calendar tablenav date/week selectors drop redundant `inline-block` under `float` (rebuild `admin.css`).
- Fix - Orders: paying a previously Failed order restores an order-linked appointment stuck as Was In Cart (e.g. Apple Pay retry after Auth Denied).
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-appointments.zip. - In the WordPress dashboard, go to Plugins > Add New > Upload Plugin.
- Select the file
woocommerce-appointments.zipand click Install Now. - Click Activate.
Requirements: Requires WordPress 6.8 or higher and PHP 7.4 or higher. Tested up to WordPress 7.1.
- This item is already activated. If any screen asks for a license, enter any code; any email works in the email field.
Stuck on a step? Open a ticket telling us which one you stopped at.

UAU Ready