Skip to main content

Appointments Changelog

Recent releases for WooCommerce Appointments. Older versions live in the changelog archive.

Latest stable: 5.4.15

Pre-release builds are listed first for testers. Production sites should use the release marked Latest.

[5.5.0-rc] - October 17, 2026​

Pre-release

Focused on Admin panel, Locations, and Admin calendar (+3 more). 2 features, 3 improvements, and 2 fixes.

Features​

  • Locations: product Location mode can be Fixed (assign one venue, hide it from cart, checkout, thank-you, and customer emails), matching resource Selection → Automatic (#1488).
  • Admin panel: set the customer's timezone when creating an appointment (hidden only when Timezone Display is disabled everywhere; saved on the appointment and customer account when linked) so emails and My Account show their local time (#1490).

Improvements​

  • Admin panel: create uses one Customer card (search + contact/address/timezone); payment method and transaction ID sit under Order.
  • Admin calendar: create and edit no longer book unavailable times by default. Screen Options → Allow booking unavailable times restores the confirm-and-proceed override; the date/time notice scrolls into view when out of sight (#1388).
  • Availability hub: Locations and Rooms can use Range of days (whole weekdays open or closed), matching day-duration room schedules.

Fixes​

  • Product edit: compact number/unit and help-tip layout applies only to appointment fields (Duration, Inventory, Availability Check), so simple and other product types keep WooCommerce select widths and tip placement.
  • Availability / slots: Automatic rooms with Open hours alone again list bookable times; seats follow each room's Open window (not only Closed blackouts) (#1487).

[5.5.0-beta7] - October 14, 2026​

Pre-release

Focused on Availability hub, Timezone, and Product Duration (+5 more). 4 improvements and 8 fixes.

Improvements​

  • Compatibility with WooCommerce 11.2.
  • Timezone: abbreviation hover tip styles match across admin and My Account; the series list When column includes the abbreviation.
  • Product Duration: Night is no longer in the Duration dropdown (it was never a merchant option). Use Day for multi-day stays.
  • Availability hub: read-only footer copy says "You can edit your own hours."

Fixes​

  • Availability hub: on small screens the WordPress admin bar stays fixed with Screen Options / Help instead of scrolling away.
  • Availability hub: staff who can only manage their own hours can browse General and assigned product / location / resource rules read-only; Save stays on their Staff layer; Edit links hide without Create & Edit Products / Locations / Resources.
  • Availability: night-duration span end dates advance in civil days, and summaries show civil When with an N night(s) label.
  • My Account and order/email series times use the viewer timezone (saved preference, then browser, then site). Recurring pattern summaries and occurrence labels stay on the series booking axis so times no longer over-shift (e.g. 09:00 CEST shown as 18:00) (#1483).
  • Storefront: same-day slots stay bookable on positive-offset stores (e.g. Australia/Sydney afternoon) (#1478).
  • Availability / admin: day summaries, slot day keys, privacy export, save notices, and admin calendar day buckets keep appointment and slot civil days correct on non-UTC stores.
  • Availability / slots: Automatic rooms Closed for a day no longer leave seats bookable; storefront and admin create require a free allocated room (name shows when Selection is Automatic, show name).
  • Admin edit appointment: Locations & rooms experimental off no longer clears the room on save; Resources stays visible from history. Location change refilters rooms (concrete pick, no Automatic). Empty title area hidden; Created on / Save / Parent ID / Qty layout cleaned up.

[5.5.0-beta6] - October 10, 2026​

Pre-release

Focused on AutomateWoo, Availability hub, and Storefront (+11 more). 1 feature, 8 improvements, and 11 fixes.

Feature​

  • AutomateWoo: appointment.location and appointment.resources workflow variables (#1460).

Improvements​

  • Admin: What's New leads with the Availability hub; Locations & rooms and Meet are labeled experimental (off by default under Settings → Appointments). When the beta is off, CTAs open that setting. Mobile section tabs, topic cards with Previous/Next, and NEW/BETA title pills are clearer; copy matches menu labels and beta gates; Help → What's New is omitted on that screen.
  • Availability hub: permanent left rail (title, description, search with layer filters, nested entity tree); full-width rule editor with Other rules that apply beside Week at a glance; layer and entity rows are real links; path toggle on small screens.
  • Product Availability tab: Week at a glance (same strip as the hub, product + General) and a short Availability hub link; new products show General hours until a draft is saved.
  • Product edit: Resources tab shows only a Locations nudge until the product has a venue (when locations exist); rooms still work alone when the shop has no locations.
  • Settings → Appointments → Experimental: Locations & rooms off fully stops new booking use and hides related admin screens; past appointments still show their venue/room; product and CPT data stay for re-enable.
  • Availability hub: new Open hours / Unavailable rules insert next to matching rows (not reshuffled on save); live search under the field with layer hit counts; timezone tip matches staff Availability; Restrict start days notes product weekdays; sticky rail docks without jumping.
  • Product edit: cancel/reschedule "before the start date." aligns with the number and unit fields; help tips after Duration, Interval, Padding, Lead Time, Scheduling Window, Inventory capacity, Availability Check, and Tax status/class align with the controls.
  • Storefront: location, staff, and resource extra costs use add-on style brackets (e.g. (+$5)).

Fixes​

  • ICS export: VTIMEZONE DAYLIGHT/STANDARD use real DST transitions so EU zones keep last-Sunday March/October and strict clients no longer show events one hour late (#1480).
  • Timezone labels: short abbreviations follow DST at the appointment time (e.g. London BST/GMT, Brussels CEST/CET) in emails, cart, and admin (#1479). Offset-style PHP abbreviations (GMT+0000) and Woo +00:00 zone IDs map to UTC/UTC±N instead of leaking into the storefront picker.
  • Storefront: Default timezone shows city and abbreviation (e.g. Default (Ljubljana - CEST)); picker Default option uses the same site timezone as the form. Calendar bootstrap keeps site today selectable on positive-offset stores (#1478).
  • Checkout: free (100% coupon / €0) appointment orders no longer re-fire completed and flood emails when object cache keeps a stale pending snapshot (#1477). Appointment Select2 styles no longer pad the country/state dropdown.
  • Availability / slots: staff capacity fully overrides product capacity again (pre-5.5). Locations no longer re-clamp staffed slots by Inventory Capacity; room limits stay on Resource Max at once. Unstaffed products still count capacity per location. Locations without a matching room stay bookable on staff/product capacity; unscoped resources still close slots while venues exist (claim the resource to a venue first). Choose-resource copy works with singular or plural labels.
  • Storefront: staff and resource SelectWoo labels show name and avatar again (#1474); after changing location, the resource list shows only rooms for that venue plus shared (#1472); resource Select2 keeps its featured image after venue filtering; changing quantity no longer clears a still-valid selected time.
  • My Account: rescheduling saves a newly selected location and resource (#1474).
  • Availability hub: Week at a glance on a room includes the linked location's open hours and closed rules; Unavailable rules at the same priority no longer get reopened by earlier Open hours; search, rail, and pills omit disabled location/room layers; search keeps results until cleared, marks the open entity, and does not clip the focus ring; rail scroll stays put on pick and pins deep-linked rows; dragging to reorder rules refreshes Save / Discard; admin notices sit in the main editor column; product duration uses plural forms.
  • Admin panel: create/edit availability checks include the selected room/resource so listed slots are no longer marked unavailable; panel notices show the server reason when a check fails.
  • Night-duration products: checkout and add-on extended spans use Fake UTC civil day tokens and the date-slot path (like day products), so availability no longer rejects valid night bookings on non-UTC stores.
  • Recurring series preview: store→booking timezone conversion on dtstart runs once. REST civil dtstart strings stay on the booking axis; repeating normalize no longer shifts weekly sessions outside open hours on non-UTC stores.

[5.5.0-beta5] - October 2, 2026​

Pre-release

Focused on Locations, Rooms & resources, and Availability hub (+8 more). 2 features, 12 improvements, and 12 fixes.

Features​

  • Locations: optional additional cost per assigned location on the product Locations tab (signed; negative = discount). Staff and resource costs also accept negatives; appointment total still floors at zero.
  • Rooms & resources: optional additional cost per resource on the product Resources tab, added to the appointment price like staff.

Improvements​

  • Product Availability tab: Availability Check, Auto-select, and Restrict start days return here; open hours stay in the Availability hub (link on the tab).
  • Germanized Pro invoices: appointment when, duration, location, resources, and staff sync onto new invoice line items (StoreaBill). Re-sync existing invoices from the order if they were created before this update.
  • Settings → Appointments: Locations & rooms (beta) stays off by default under Experimental. Turning it off keeps menus, hub layers, and product tabs when the store already uses locations or rooms; booking times still honor stored settings.
  • Admin panel: Staff, Locations, and Resources tabs share one picker-and-rows pattern (assign until Update). Manage / Add sit beside the title; row Edit opens in a new window. Staff rows show email and product count; Locations show kind, resource count, and optional cost (sortable when Customer selected); Resources show cost, Max at once, venue, and a featured image when set.
  • Admin panel: Location and Resources tabs show when the beta is on, or when the product already uses them. With the beta off, Location stays on venue products; Resources stays on products that already require rooms, and on location products when published rooms exist.
  • Product Location tab: drag venues to set storefront order when Customer selected (first is the default); leave empty for all venues A-Z.
  • Storefront: customer-selected locations preselect the first listed venue so the calendar shows on load; customer-selected resources list only the product rooms (no blank Select), with the first in Resources tab order as the default.
  • Availability hub: Title column is a Screen Option (on by default) for every layer; synced rules keep the Synced badge on the title when shown. Layout stays start-aligned like other admin screens, not centered.
  • Storefront: first-month day availability is embedded in the product page again so the calendar paints without a second AJAX wait.
  • Availability / slots: multi-staff month switches and dense calendars load faster.
  • Admin panel: Inventory Capacity tips use appointments (not people); Resources field is Max at once with shorter tips; Resources label shows only when Selection is Customer selects; Location tips shortened.
  • Availability hub: quieter chrome (empty-state placeholders, sidebar, search, week accent); Optional chip on layer blurbs; Save shows a loading state; entity Edit and hub links open in a new window with an external icon.

Fixes​

  • Admin panel: product config notices name the product with no appointable times, and the Availability hub dismisses that notice after General or product hours are saved when times exist again.
  • Availability hub: product capacity notices show on the product deep link and open the matching open-hours rule; draft, pending, private, and scheduled entities appear with a status badge so you can set hours before publishing.
  • Availability hub: typing a two-digit hour in From/To no longer loses the second digit; overnight Ends the next day floats on the To field as you type; save after a long-open tab retries once with a fresh security token.
  • Availability hub: Week at a glance shows net available ranges (open hours minus recurring Closed), honors rule priority and month/week Closed rules that apply now, updates live while you edit, and on mobile stacks open ranges under the day name.
  • Availability hub: deep links keep sidebar search and scroll only the entity list; mobile editor column stretches again; Unavailable empty state stays clear when only Google Calendar busy rules exist.
  • Admin panel: product save no longer clears Location settings when the Location tab is hidden; Fixed mode keeps the selected venue; Resources filter follows assigned location rows.
  • Storefront: resource select hides when the chosen location has no rooms, auto-selects the first room when the venue has any, updates when location changes, and matches location/staff spacing.
  • Storefront: location/resource/staff changes coalesce into one calendar load; the loading bar stays until refresh finishes; month requests cover the visible month; repeat calendar AJAX no longer re-runs setup and migration checks.
  • Storefront: days no longer look partially booked when staff capacity exceeds room capacity and nothing is booked (occupancy and "X left" follow real appointments).
  • Availability / slots: when the requested range is already indexed, the calendar uses that data instead of falling back to the slower path while indexes catch up (live appointments still apply until backfill finishes).
  • Availability / slots: rule priorities of 0 and below are honored on the dynamic path again so a Yes exception can override a Closed rule at priority 1.
  • Checkout: products that use a room/resource no longer treat the customer's own in-cart hold as occupying that room when re-checking availability (same exclude as staff/location occupancy).

[5.5.0-beta4] - September 22, 2026​

Pre-release

Focused on Availability / slots, Availability hub, and Admin panel (+4 more). 1 feature, 8 improvements, and 9 fixes.

Feature​

  • Availability / slots: location and resource open/closed rules apply when those entities are in the slot request. Empty rules add no constraint.

Improvements​

  • Admin: What's New page highlights rooms & resources and the Availability hub alongside locations and Google Meet, with a light animated hero.
  • Admin: Availability hub (Appointments > Availability) loads once with instant layer / entity navigation; Open hours and Unavailable editing; product, staff, settings, location, and resource screens link into the hub instead of separate rule tables. Product config notices for missing rules also link to the hub.
  • Product General: Availability Check, Auto-select, and Restrict start days sit with duration / interval / padding; the product Availability tab is removed (hours stay in the hub).
  • Availability hub: UI strings are localizable; the default layer is labeled General; Open / Closed / Busy use adjective translator context so they are not read as buttons.
  • Staff permissions: separate Availability hub caps for global, product, location, and resource layers (plus existing own hours); staff without Set Available can only add closed dates.
  • Admin: Availability hub uses quiet floating chrome on the WP admin gray with accents from the selected admin color scheme; Show priority and Show status live in Screen Options (status on by default; priority on for upgrades, off for fresh installs); when status is off, Open / Closed / Busy pills sit beside section titles.
  • Admin: Availability hub week glance marks open days with a success accent; spacing, type scale, and touch targets tightened for clearer mobile-first editing.
  • Availability hub: General rules say they apply to all products, locations, resources, and staff, and that rules on those levels override them.

Fixes​

  • Availability hub: mobile gutters match left/right; layer menu items get room inside the highlight; synced rule values sit closer to their labels; empty location/resource layer tabs stay hidden and tab badges are server-rendered so the tab row does not flash before JS paints.
  • Availability hub: Week at a glance updates when you change a rule's range; datepicker date changes sync into the save payload.
  • Rooms & resources: list table shows a featured-image thumb beside the title only when one is set; automatic allocation skips resources Closed for the booking window so cart validation matches displayed slots.
  • Availability / slots: at equal priority, location or resource Closed (including time rules) vetoes product/staff Open; location/resource Open does not override staff Closed. Lower priority numbers still win as an intentional override.
  • Storefront: time slots and cost calculation pass the selected resource into the slots engine (calendar already did), so resource Closed days no longer show bookable times or an available cost quote.
  • Availability hub: staff without hub layer permissions no longer see or edit other layers; rule IDs must belong to the target entity on save/delete.
  • Deleting a location or resource removes its availability rules (and indexed cache rows via the existing delete path).
  • i18n: appointment change notes, resource-to-location migration lists, timezone titles, and last-synced timestamps only translate labels; arrows and date/time joiners stay fixed in code.
  • Availability / slots: appointment index backfill only targets future appointments, so past bookings no longer block the gap queue.

[5.5.0-beta3] - September 19, 2026​

Pre-release

Focused on Rooms & resources, Admin panel, and Product Resources tab (+7 more). 1 feature, 9 improvements, and 7 fixes.

Feature​

  • Rooms & resources: products can require shared resources (rooms, equipment) that limit availability across products. Qty 1 blocks every product that needs that resource once booked; higher qty allows concurrent use up to that limit.

Improvements​

  • Product Resources tab: Label plus Selection (Automatic show name / Automatic / Customer selects); assign with venue-grouped checkboxes filtered by Locations (Select all / Clear per venue). Checked items are alternatives (one is allocated or customer-picked). Thumbs appear only when a featured image exists.
  • Storefront: resource picker matches staff Select2 UI (under Location, before Staff); options filter by venue and stay hidden until a location is chosen when the customer picks the venue. Automatic has no form control.
  • Product Inventory: Capacity / Min / Max copy describes people spots (not resource quantity). Resource Max appointments is concurrent bookings; Location is required when venues exist (one resource per venue).
  • Locations: Resources sidebar lists rooms for that venue; Manage and Add respect the manage resources permission.
  • Appointments list: optional Resources column (Screen Options) shows allocated titles; Location and Resources stay hidden by default.
  • Admin calendar: events and hover tooltip include resource titles (with location).
  • ICS export, Google Calendar description, CSV export, and the woocommerce-appointments/resources email personalizer tag include allocated resources.
  • Order confirmation, My Account, order emails, PDF invoices, and appointment emails show the assigned resource when Automatic show name or Customer selects is on (admins always see it).
  • Location and resource Products sidebars: whole row is clickable on hover. Resource edit lists products beside Featured image under Publish; list table shows the featured image beside the title.

Fixes​

  • Rooms & resources: Automatic allocation picks a free alternative in the OR pool for the booking window and location (no restacking a busy room; no wrong-venue rooms).
  • Availability / slots: required resources gate slots even with no existing resource bookings; OR-pool "N left" sums free alternatives.
  • Classic appointment edit and admin panel create/edit/view: resource select (filtered by location when needed), view links to resource edit when permitted, and save preserves an existing pick instead of blind re-auto.
  • Admin panel: floating labels stay raised when a select has a preselected or locked value.
  • Admin panel: editing date/time no longer clears staff or location (Select2 sync no longer re-enters change handlers), so appointments stay on the calendar after save.
  • Admin panel: create Product select always shows a search field so typing filters even with fewer than 10 products.
  • Recurring: series occurrences receive resource allocations from the product when materializing.

[5.5.0-beta2] - September 14, 2026​

Pre-release

Focused on Security, Admin panel, and Appointments list (+7 more). 8 improvements and 11 fixes.

Improvements​

  • Staff permissions: View Product Details is folded into View Assigned Products (pricing, duration, and capacity included). Create & Edit Products remains the edit gate.
  • Admin panel and appointments list: product and location titles link to their edit screens only when the user can manage products or locations.
  • Staff customers: table fits the viewport without horizontal scroll (secondary columns drop on narrower screens; mobile uses stacked cards); toolbar search matches select height; Appointments count aligns with its column header.
  • Appointments list: Location column (snapshot title), hidden by default like Add-ons.
  • Staff dashboard: location filter beside the Dashboard title (default All locations) scopes upcoming, week, insights, heatmap, chart, and top products when more than one location exists; Welcome date shows the staff profile timezone abbreviation.
  • Settings → Staff Permissions: permission list uses plain rows instead of bordered cards; matrix keeps the standard settings column layout.
  • Locations: In person / Online type control is a connected segmented toggle so it reads as one exclusive choice on all widths.
  • Locations: removed staff assignment on the location edit screen (and the Locations Staff / Users Locations roster columns). Staff stay on the product; location is where/how only. Multi-location no longer filters staff by venue. Admin calendar and staff dashboard location filters list all published locations until optional staff-profile assignment exists.

Fixes​

  • Security: staff without Manage others appointments cannot edit or delete others' appointments; confirm, bulk status, create appointment, product staff AJAX, and Google Calendar AJAX enforce the same capability rules.
  • Security: recurring series REST create is limited to users who manage appointments (customers create series through checkout); availability rules and appointment index REST require edit capability; guest slots and availability index reads are rate-limited.
  • Security: appointment export only serves files under uploads; Google Calendar sync stores Busy instead of personal event titles; OAuth connection state is signed and bound to the admin who started it.
  • Storefront: staff names on the appointment form are escaped (XSS).
  • Appointments list: product filter shows its placeholder when no product is selected; When column timezone abbreviation tooltip is no longer clipped.
  • Staff dashboard: Upcoming Appointments eye icon opens the appointment view panel; dates, times, Insights, This Week, heatmap, and chart use the staff profile timezone.
  • Admin: classic appointment edit screen shows and saves Location.
  • Admin panel: view panel from the appointments list or Upcoming Appointments opens immediately (skeletons while details load).
  • Locations / product Staff: Manage Staff is hidden without Manage others appointments; location Used by hides Manage Products and Add Product without Create & Edit Products.
  • Admin: Dashboard no longer gets a blank top gap when WP_DEBUG display is on and a product add-on is missing the display key (panel preload no longer emits PHP warnings that trigger WordPress php-error).
  • Storefront: after checkout, leftover appointment cart lines linked to a paid or settled order are cleared without the "removed due to inactivity" notice.

[5.5.0-beta] - September 10, 2026​

Pre-release

Focused on Locations, Virtual meetings, and Admin panel (+9 more). 2 features, 9 improvements, and 14 fixes.

Features​

  • Locations: appointable products can use fixed or customer-choice locations (physical or online); bookings store a location snapshot for cart, emails, My Account, ICS, and Google Calendar.
  • Virtual meetings: Google Meet links are created via Google Calendar sync for online locations when the product meeting provider is Google Meet; emails, My Account, ICS, and admin panel show a Join Meeting line.

Improvements​

  • Staff Permissions: Manage Locations controls whether staff can open the Locations admin (off by default; included in the Full preset).
  • Storefront / admin panel: location pickers use the same searchable select pattern as staff.
  • Locations: edit screen uses In person / Online chips, floating labels, and a two-column layout; sidebar lists products that use the location; Staff select shows avatars.
  • Admin calendar: filter panel keeps Products, Staff, and Locations columns with status above; Locations hides when unused and includes No location; events show location on hover; live SSE updates include location.
  • Virtual meetings: Join Meeting shows an Open meeting link in the admin panel, emails, and order summary (plain-text emails still include the full URL).
  • My Account: appointments list shows Join (Meet or static online URL) with a starts-in countdown; pending Meet without a URL notes that the link will appear when ready.
  • Product Location tab: matches Staff (toolbar list, Manage/Add); Location is None, Fixed, or Customer selected with an optional Label; Customer selected offers every location unless two or more are listed; Video meeting shows only for Online locations.
  • Product Staff tab: staff rows use a larger avatar with aligned edit/remove controls; assign picker stays at the standard Select2 height.
  • Admin panel: location field uses one floating label (no duplicate placeholder); view location icon matches other outline key icons.

Fixes​

  • Availability / slots: max bookings per slot is counted per location; multi-staff calendars and automatic assignment only use staff eligible at the selected location.
  • Indexed availability: leftover pending rule IDs no longer keep the storefront on the dynamic engine forever; expired rules no longer block index readiness and are purged on expire or reindex.
  • Locations: product edit warns when none of the product's staff are listed on an allowed location; "all staff together" and slot checks use only location-eligible staff.
  • Locations: Customer selected with two or more venues asks for a location first (staff and calendar stay locked until chosen); empty list or a single leftover id still offers every published location; one published location is used automatically.
  • Locations: storefront location select2 shares staff field styles; list column Type replaces Kind.
  • Admin calendar: on small screens the admin bar stays pinned, the toolbar sits flush, and Add New / Today / date stay on one baseline; filter columns wrap instead of scrolling sideways.
  • Admin calendar: switching to week or day view scrolls to now (or 08:00) instead of throwing a JavaScript error.
  • Admin: classic Create Appointment page persists the location ID and snapshot (same as the panel path).
  • Admin panel: create and edit respect the selected location for capacity; Customer selected with two or more venues hides staff and date/time until a location is chosen; empty allow-list cannot stay Fixed; staff options filter by location.
  • Admin panel: clearing Staff (e.g. after a location change) no longer leaves the old staff name under the floating label.
  • Admin panel: recurring create writes location onto the series; view shows Join Meeting from the calendar event with Location before Meeting.
  • Recurring: series preview, conflict checks, create, and reschedule respect location capacity like single bookings; My Account series view, series emails, and order summary show the series location.
  • Storefront: selected date in the appointment form uses the site language and date format, not the browser locale.
  • Storefront: customer-selected location is kept in the page URL (with date, staff, and time) so refresh and share links restore it; restoring location from the URL no longer clears date and time.

[5.4.15] - September 4, 2026​

Latest

Focused on Product Add-ons and Cart. 1 improvement and 4 fixes.

Improvement​

  • Compatibility with WooCommerce 11.1.

Fixes​

  • 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.
  • 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.
  • Product Add-ons: a required Quantity (input multiplier) with min 0 again accepts 0 (base duration only; no add-on cart line).
  • 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.

[5.4.14] - September 3, 2026​

Focused on Admin calendar, Google Calendar, and Checkout. 3 improvements and 4 fixes.

Improvements​

  • Admin calendar: availability SSE snackbars name the change again (saved or deleted; bursts still collapse to a count).
  • Admin calendar: reorder-only availability rule saves no longer show an SSE snackbar.
  • Updated all translations for new and changed strings.

Fixes​

  • 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.
  • 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).
  • 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).
  • 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.

[5.4.13] - September 2, 2026​

Focused on Storefront. 1 fix.

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.

[5.4.12] - August 28, 2026​

Focused on Product Add-ons, Storefront, and Admin panel. 3 improvements and 5 fixes.

Improvements​

  • Updated Product Add-ons to 8.4.1 (validation, Store API batch, global add-ons search/sort, upload index.html, WordPress Abilities).
  • WooCommerce minimum supported is 10.6; WordPress minimum is 6.8 (aligned with Product Add-ons).
  • Updated all translations for new and changed strings.

Fixes​

  • 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).
  • 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.
  • 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.
  • 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.
  • 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.

[5.4.11] - August 26, 2026​

Focused on Product Add-ons and Orders. 1 improvement and 1 fix.

Improvement​

  • 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.

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).

[5.4.10] - August 20, 2026​

Focused on Google Calendar, Storefront, and Admin panel. 1 improvement and 4 fixes.

Improvement​

  • Compatibility with WordPress 7.1.

Fixes​

  • Storefront: changing staff with auto-select on keeps the selected date and time when still available; otherwise shows Show first available next to No slots available.
  • Google Calendar: appointments from another site on a shared calendar import as busy rules (foreign site_url). Editing that busy rule no longer overwrites the Google appointment event.
  • Google Calendar: restored woocommerce_appointments_gcal_sync_updated_description on event updates (dropped in the 5.0 sync rewrite).
  • Admin panel: changing day or a duration add-on no longer jumps the form scroll back to the top of the mini calendar.

[5.4.9] - August 15, 2026​

Focused on Admin panel, Storefront, and Cart (+2 more). 2 improvements and 6 fixes.

Improvements​

  • Admin panel create: WooCommerce Deposits uses the same outlined card as billing, with pay-deposit guidance and payment plans only while paying a deposit.
  • Admin panel browse: month availability includes the day’s time slots in one request; open browse joins the in-flight prefetch.

Fixes​

  • Cart: logging back in during checkout restores the in-cart hold; abandoned-cart cleanup no longer deletes a hold already linked to an order.
  • Admin panel: mini calendar marks a day available only when at least one slot has enough capacity for the quantity field (same rule as the time list).
  • Storefront: time slots refresh for the full add-on duration (longer or shorter), so late starts that no longer fit are removed from the list.
  • Emails: custom theme subclasses of appointment emails no longer fatal on PHP 8 when they override trigger() or init_form_fields() without a : void return type.
  • Storefront: add-ons after the calendar appear once a date (or month) is chosen, so extras that change duration stay visible when no times are left.
  • Admin calendar: third-party admin notices no longer push the grid down; calendar errors still show flush under the toolbar.

Older releases (2015–2026) →


Generated from the plugin changelog on build.