Skip to content
Gaurav TiwariChangelog

Plugin changelog

Core Bookings

Appointment and group scheduling, staff availability, payments, and customer self-service.

Latest
1.2.0
Releases
26
Updated
November 6, 2026
  1. Stable

    1.2.0

    From customer feedback. A drop-in update from 1.1.1; invitations gain a duration column (form schema 2), added automatically on update. Core storage stays at schema 8.

    Read full notes 5 changes
    • Added Declining a customer's reschedule can keep the original booking. Check Keep the original time until the new one is approved under Customer reschedules: both times stay reserved while you decide, approving releases the original time, and declining (or not deciding before the original time) keeps the booking at its original time instead of cancelling it.
    • Added Private booking links over the REST API: create, list, read and revoke invitations at core-bookings/v1/admin/invitations, with API key scopes read and bookings:write. An invitation can fix one of the service's durations, in wp-admin too, and then books only that duration.
    • Added Developers: booking.reschedule_declined webhook and reapproval_declined booking event; core_bookings/repay_hours; approval_reschedule_keep on the service abilities.
    • Fixed Approving a card hold confirms the booking only once Stripe confirms the charge. If the charge fails (the hold was released or expired), the booking goes back to awaiting payment for the approved amount instead of being confirmed unpaid, the customer is asked to pay again, and staff get a Payment failed email.
    • Fixed Cancelling a booking, or any change that leaves it unconfirmed, removes its queued reminders, so reminders for appointments far ahead no longer hold up erasing a customer's data. The hourly cleanup also clears reminders left behind by earlier versions.
  2. Stable

    1.1.1

    Starter content and clearer settings. A drop-in update from 1.1.0 with no storage changes.

    Read full notes 3 changes
    • Added Starter content: add the demo's services, four sample staff, draft pages with booking forms, a service directory, popup buttons and a customer dashboard, and optional sample customers and appointments, from Settings > Import / Export. Preview it first; nothing is added until you confirm, no email is sent, existing records are never changed, and dates are built from the day you import. Services that need a module are left out until it is on. Remove starter content deletes exactly what it added and keeps any service a real customer has booked since.
    • Improved Page settings show the address they open, as a link, and follow the dropdown before you save: Customer dashboard page (the chosen page or the built-in dashboard link) and the staff portal's Portal page (the chosen page or the standalone address).
    • Improved Private file storage says why the automatic check could not verify the folder, links to a harmless test file you can open yourself, and lets you confirm the folder is refused when the site cannot request its own address. The setup steps match the detected web server (Apache, LiteSpeed or Nginx), with copy buttons for the Nginx rule and the wp-config.php line.
  3. Stable

    1.1.0

    From customer feedback and a review of other booking tools. Core storage stays at schema 8 with new service settings; the Developer API module and CalDAV write-back add their own tables when switched on. A drop-in update from 1.0.1.

    Read full notes 20 changes
    • Added Approval services on Stripe can authorize the card at booking and charge it on approval. Set Payment for approval requests to Authorize the card at booking, charge on approval. Approving charges the usual amount, a smaller amount you enter, or nothing (0 releases the hold). Rejecting the request, the customer withdrawing it, or the approval window closing releases the hold, so the customer is never charged. Stripe keeps a card hold for about seven days, so the approval window ends an hour before that.
    • Added Deposits can be a fixed amount instead of a percentage, for the service and for each extra duration.
    • Added Customer reschedules can need approval again. With Customer reschedules checked, a customer who moves an approved booking sends it back for approval; it keeps its payment and its time until you decide. Staff moves, and moved sessions of a recurring series, stay confirmed.
    • Added Stripe, Turnstile, Google, Zoom, Microsoft 365 and Brevo keys, and the license key, can live in wp-config.php instead of the database. Settings screens show them as set in wp-config.php.
    • Added Approval can apply only when it matters: requests that start within a set number of hours, first-time customers, or requests above a price. With no rule set, every request still needs approval.
    • Added Approval services on Stripe can also charge at booking and refund automatically when a request is rejected, withdrawn or not decided in time, for decisions that take longer than a card hold lasts.
    • Added Services can limit how many times a customer moves one booking online. Staff can always move it.
    • Added The customer dashboard sign-in email now carries a six-digit code as well as the link, so customers can sign in on the device they started on. Five wrong guesses end the code.
    • Added The booking form block has theme presets: Soft, High contrast, Dark, and one that follows the visitor's light or dark setting. Colors picked on the block still win.
    • Added Booking events reach Google Analytics, Tag Manager and Meta Pixel when they are already on the page: cb_booking_requested, cb_booking_confirmed and cb_booking_paid, without names or emails. Switch it off under Settings > General. The page also fires a core-bookings:event browser event.
    • Added Show the booking form on websites that don't run WordPress. List the allowed sites in Settings > Embed and paste the snippet for a service. The form resizes itself, and the embedding page receives booked, paid and approved events without any customer details. Embedding is off until you list a site.
    • Added The staff portal can be installed as an app, shows the last agenda without a connection, and can send notifications to each staff member's devices when a booking needs their approval, including card holds waiting for approval.
    • Added A new Developer API module adds revocable API keys for server-to-server access under Settings > API keys. Each key acts as a chosen staff member or manager, is limited to the permissions you pick (read, bookings, customers, settings), can expire, shows when it was last used, and is shown only once. It also adds JSON routes to list bookings and customers, read a customer, add staff appointments and read booking settings, an OpenAPI 3.1 description at /wp-json/core-bookings/v1/openapi.json, and a small typed JavaScript client in clients/js, included in the plugin, for custom front ends.
    • Added Booking questions can ask for a signed waiver. Customers read your waiver text and sign on the booking form, or later through a private link in their confirmation email and booking page, by drawing a signature or typing their full name. Each signature is kept privately with the signer's name, the time, and a fingerprint of the exact waiver text, so you can prove which version was signed. Staff see signed or not signed on the appointment, staff portal agenda, calendar and appointment list, can open or download a printable record, and can send a reminder or require the signature before check-in. Customers can download their own copy. Signed waivers are included in personal data exports and deleted on erasure and retention, and webhooks gain booking.waiver_signed.
    • Added Import services, staff, customers, and upcoming and recent appointments directly from Amelia, Bookly or LatePoint when their tables are in the same database, even if the plugin is deactivated. Preview first, map or skip staff, and run again to continue in batches of 2,000. No email is sent and nothing in the other plugin changes.
    • Added Staff can choose a CalDAV calendar (iCloud, Fastmail, Nextcloud) that receives their confirmed bookings. Events are added, moved and removed automatically, and customer names appear only if a manager turns that on.
    • Added Developers: core_bookings/capture_amount sets what approval captures; booking events payment_authorized, payment_captured, capture_failed, payment_released and reapproval_requested, with matching webhooks; capture_amount on the update-appointment ability; deposit_fixed, approval_payment (after, hold, charge), approval_reschedule, approval_rule_notice, approval_rule_new, approval_rule_above and reschedule_limit on the service abilities; POST portal/code signs in with an emailed code; reschedules_left on customer booking payloads; the payment_ledger job and ledger webhook field; a core-bookings:booking DOM event each time the form shows a booking. Embedded payment holds need the payment_intent.amount_capturable_updated Stripe event: Create the webhook for me adds it, also to a webhook it made before.
    • Improved Services with embedded Stripe payment collect the remaining balance in the same embedded form instead of sending customers to Stripe Checkout.
    • Improved The appointment CSV export includes payment references, Stripe's fee and the net amount for each booking, and webhooks include the fee and net, for owners who keep their own books.
    • Fixed The customer dashboard and booking form shrank to almost nothing inside a flex column. They now take the full width, up to their usual maximum.
  4. Stable

    1.0.1

    Fixes for the Bricks element; no storage changes.

    Read full notes 3 changes

    See Add the Booking Form in Bricks Builder.

    • Fixed The Core Bookings element shrank the booking form to about 50px wide inside a Bricks container, because Bricks aligns children to the start. The element now fills its container, and a width set on it in Bricks still wins.
    • Fixed The Bricks builder showed an empty box where the form should be, because the canvas never runs the booking script. It now previews the first step of the form with your wording and colors, like the block editor. Times in the preview are examples; the live page loads real availability.
    • Fixed The Booking service setting showed the service's ID instead of its name. It now lists services by name, with All available services first.
  5. Stable

    1.0.0

    The stable release of Core Bookings 1.0: everything from the four betas plus new payment options. Sites on 0.20.0 move storage to schema 8 (additive); back up before updating, and read the 1.0.0-beta-1 notes below for what 1.0 adds. Updating from 1.0.0-beta.4 changes no storage.

    Read full notes 6 changes
    • Added Dodo Payments joins PayPal, Polar and Paddle as a service payment method. Dodo is the merchant of record and charges tax itself. Connect it under Bookings > Settings > Payment gateways with an API key and a webhook signing secret; each booking gets its own Dodo checkout, and refunds work from the appointment. See Connect Dodo Payments.
    • Added Stripe can offer every payment method switched on in your Stripe Dashboard, such as Link, UPI, iDEAL or bank debits, for bookings, remaining balances, session packs and gift cards. Cards, Apple Pay and Google Pay stay the default. Methods that take days to settle confirm the booking when Stripe reports the payment.
    • Added Check connection on every payment screen names the account and mode the saved keys belong to. Create the webhook for me sets up the Stripe, PayPal or Paddle webhook and saves its secret or ID, on sites with a public HTTPS address. Each screen shows when the last webhook arrived.
    • Improved Paddle's checkout overlay opens over the booking page instead of a separate page, which stays as the fallback.
    • Improved The PayPal, Polar, Paddle and Dodo Payments settings screen is now called Payment gateways.
    • Fixed A delayed Stripe payment that failed after the booking's hold ended kept retrying. It now releases the booking.
  6. Beta

    1.0.0-beta.4

    Fourth beta of 1.0.0. Two fixes and new hooks for sites that run bookings from their own dashboard; no storage changes.

    Read full notes 6 changes
    • Added A request that awaits approval can move to another time before it is decided: customers use "Change requested time" on the manage page before the change cutoff, and staff use "Move requested time" on the appointment or the reschedule-booking ability. It stays awaiting approval with a fresh decision window; reminders and meeting links still wait for approval.
    • Added Developers: do_action('core_bookings/email_verified', $user_id, $email) marks an account's current email as verified when your site checks inboxes itself (one-time codes, SSO), and links its past bookings at once.
    • Added New abilities: clear-dates returns days to the weekly hours, removing time off, blocked time and date-specific hours; erase-customer (managers) erases one customer's data as a WordPress erasure request does. From PHP, do_action('core_bookings/erase_customer', $email) does the same. Upcoming active bookings are kept until they are cancelled.
    • Improved When a linked WordPress account changes its email, the customer and its bookings, session packs, waitlist entries and invitations move to the new address, so the next booking finds the same customer. It is skipped and noted in the customer's history while another customer uses that address or a checkout is open.
    • Fixed The service editor ended in "There has been a critical error on this website" where the revision history should be, on every service. The form above it still saved. The editor and its revision history now load.
    • Fixed The standalone booking page shrank its booking column to a few pixels when a theme or page builder (for example Etch) makes the page body a flex column. The page now keeps its full width.
  7. Beta

    1.0.0-beta.3

    Third beta of 1.0.0. A developer fix; no storage changes.

    Read full notes 1 change
    • Fixed The appointments CSV export applied the core_bookings/export_columns filter twice, in two different shapes, so hooked functions ran twice and a column added in the first shape showed an "Array" header. It now runs once with the documented key => label shape and skips labels that are not text. Fill each row with core_bookings/export_row.
  8. Beta

    1.0.0-beta-2

    Second beta of 1.0.0, with fixes found while writing the documentation.

    Read full notes 3 changes
    • Fixed PayPal, Polar and Paddle services: the booking form's price line said "Pay offline" before checkout. It now shows the amount due at booking, as for Stripe.
    • Fixed The refund form on an appointment names the provider that took the payment instead of always saying Stripe.
    • Fixed Invoices and receipts for PayPal bookings say "Paid through PayPal" instead of "Card payment through Stripe".
  9. Beta

    1.0.0-beta-1

    First beta of 1.0.0. Test it on a staging site before updating a live one: storage upgrades to schema 8. The final 1.0.0 follows after the beta.

    Read full notes 33 changes

    The complete product: nineteen built-in modules that a site turns on in Bookings > Settings > Modules, plus booking-form, scheduling, payment and workspace features that are always available. Every module is included with every license; a module that is off loads nothing. Storage upgrades to schema 8 (additive). See Turn Modules On and Off and the hooks reference.

    Provider integrations (Microsoft 365, iCloud/CalDAV, Twilio, WhatsApp, Stripe Billing, FluentCart subscriptions) are tested with request fixtures only; validate them with your own accounts on staging.

    • Added Bookings > Settings > Modules lists every module with its setup status, three starting sets (one-to-one sessions, a team, classes and workshops) and the features every site always has. New modules stay off after an upgrade. wp core-bookings modules list|enable|disable.
    • Added Platform: Documented hooks let developers change offered times, durations, prices and validation, store data with each booking, and extend the editors, appointment panel, customer pages, emails, webhooks, exports and jobs (hooks reference).
    • Added More WP-CLI commands: list and export appointments, list and create services, list customers, and run setup checks.
    • Added WPML and Polylang translate service names, descriptions, questions and email templates; customer emails go out in the customer's language.
    • Added Booking form: Several durations per service, each with its own price; service categories and a searchable directory block; a popup booking button; links that prefill the form.
    • Added Listed, unlisted or invitation-only services, and single-use invitation links created under Bookings > Invitations.
    • Added Guests on one-to-one bookings (each receives the calendar file), and a limit on upcoming bookings per customer per service.
    • Added Gap-free scheduling (first time of the day or times next to existing bookings) and per-staff session length and price.
    • Added Monthly repeats (same date or same weekday position) and series of up to 52 sessions.
    • Added Public holidays imported from a calendar link or .ics file, with a preview.
    • Added Workspace: Day and week calendars with a column per staff member: drag (or use Move) to reschedule with a reason, click empty time to add an appointment or block time.
    • Added Internal notes on appointments and customers, bulk actions (record payment, cancel, email, export), customer tags, duplicate merge, lifetime value, and a global search box.
    • Added Multiple Google accounts per staff member, each with its own conflict calendars, and one destination calendar.
    • Added Booking questions: per-service questions with show-if rules and private file uploads.
    • Added Teams and routing: round robin by rotation, priority, weight or fewest bookings; collective meetings where every host must be free; routing forms; public staff pages.
    • Added Locations and shared resources: branches with their own hours, staff and services; rooms and equipment that several staff share.
    • Added Staff portal: a front-end agenda for staff with notes, outcomes, rescheduling, hours, a daily agenda email and check-in.
    • Added Microsoft 365: Outlook calendar sync and Teams meeting links. Calendar feeds: a private subscription feed per staff member and Apple iCloud/CalDAV busy checks.
    • Added SMS and WhatsApp: Twilio and the WhatsApp Cloud API, with opt-in, STOP handling and quiet hours.
    • Added Automations: follow-ups, rebooking nudges, review requests and unpaid-hold recovery by email, SMS/WhatsApp, webhook or CRM tag.
    • Added Insights: revenue, cancellations, no-shows, staff utilization, lead time, sources and a busy-times heatmap, with CSV export.
    • Added Reviews: a rating request after each appointment, moderation and a public display of consented reviews.
    • Added Coupons and gift cards: discount codes with limits, gift cards with a balance ledger, and referral rewards.
    • Added Payment rules: no-show protection with a saved card, cancellation fees by notice, tips on balance payments, peak pricing.
    • Added PayPal, Polar and Paddle: three more payment methods for services, with signed webhooks, capture only while the hold is open, payment review for late or mismatched payments, and full or partial refunds. Polar and Paddle act as merchant of record (setup guide).
    • Added Taxes and invoices: VAT/GST rates, customer tax IDs, and numbered invoices, receipts and credit notes.
    • Added Classes and events: a class timetable, ticket types, courses, attendee names, QR check-in, and session packs on group sessions.
    • Added Memberships: monthly or yearly plans through Stripe Billing or FluentCart subscriptions with credits, member pricing and members-only services.
    • Added Integrations: FluentCRM and MailerPress, Core Quotes, Core Portals and Core Support links, and Bricks and Elementor elements.
    • Added AI agent abilities (off by default): 22 WordPress abilities to find times and book, and for staff and managers to run the appointment workspace (approvals, outcomes, notes), staff time off, customers, services and reports, with the same permissions as the REST API and admin screens. Ships a Core Bookings agent skill that Site Agent hands to connected agents, a skill download, and a Bookings > Settings > AI agents screen that recommends Site Agent for MCP access.
    • Fixed The standalone booking page divider sits on the correct side in right-to-left languages.
    • Fixed Approving a request that owes nothing confirms it instead of opening an empty checkout; recurring requests always stay in one checkout.
    • Fixed Refunds from the appointment panel can be partial.
  10. Stable

    0.20.0

    WordPress accounts, outgoing webhooks, a rebuilt email set and a large workspace update. Storage upgrades to schema 6 (additive). See customer accounts, webhooks, emails and the workspace tour.

    Read full notes 35 changes
    • Added Customer accounts: Optionally link customers to WordPress accounts. Logged-in customers have their details filled in and see their bookings in the dashboard without an emailed link ([core_bookings_dashboard]).
    • Added Require login per site or per service, enforced on the server. Create accounts at booking (checkbox or automatic, subscriber by default) without revealing existing accounts.
    • Added Accounts link only after the email is proven (Core Bookings created the account, or the customer confirmed an emailed link), because WordPress lets users change their email without confirmation. "Trust WordPress account emails" is an opt-in for sites that verify emails at registration and never applies after a user changes their email.
    • Added Managers can create, link or unlink a customer's account with a reason. Deleted users are unlinked; privacy export and erasure include the link.
    • Added Where accounts apply (login required, account creation on, or FluentCart), logged-in customers book under their account email; elsewhere they are prefilled and may book for someone else.
    • Added Outgoing webhooks: Send booking, payment, customer, session-pack and waitlist events to Zapier, Make, n8n, FluentCRM or any HTTPS address from Settings > Webhooks, in a standard or flat format.
    • Added Requests are signed (Standard Webhooks), limited to public HTTPS addresses, and retried for about two days. Each endpoint has a delivery log with Resend and turns itself off after repeated failures, emailing the admin.
    • Added Payment holds that expire unpaid now appear in the timeline and notify integrations; pack, waitlist and customer changes emit events for developers too.
    • Added Emails: Readable statuses ("Awaiting payment") instead of internal codes.
    • Added An editable email per event (confirmed, awaiting payment, request received, approved, declined, rescheduled with the previous time, cancelled, refunded, balance paid), each able to follow the general template.
    • Added Calendar (.ics) files attached to confirmations and reschedules.
    • Added Optional staff and admin emails for new, cancelled and rescheduled bookings; approval and calendar-conflict emails include booking details.
    • Added From name, From address and Reply-To settings. Waitlist and session-pack emails use the selected delivery provider.
    • Added Completed and no-show updates no longer email the customer.
    • Improved Booking and manage pages: Starts on the first bookable date, respects notice and horizon, lists common timezones first, shows the hold time and the amount on the payment button, and marks errors on their fields.
    • Improved Optional phone and notes fields and a per-service booking policy saved with each booking.
    • Improved Customers can add a cancellation reason and release an unpaid hold; change and cancel buttons hide inside the cutoff.
    • Improved The dashboard has Upcoming and Past tabs, editable profile fields, session-expiry notice, and only offers "Book again" for bookable services.
    • Improved The standalone page uses the site logo, shows the amount due and lists only active hosts.
    • Improved Workspace: Add phone and walk-in appointments, with an optional customer email, recorded payment, or an override with a reason.
    • Improved Reopen completed or no-show appointments, confirm a payment-review booking after checking the provider, reschedule from available times, resend confirmations, edit customer contact details and copy the manage link.
    • Improved Filter by staff, date range and any status; upcoming views list the next appointment first. CSV export follows the filters with fuller columns.
    • Improved Group sessions, date-specific hours and FluentCart extras are edited as rows, with weekly repeats.
    • Improved Customers list linked account, bookings, next appointment and credits; rosters get a session picker, capacity, CSV and print; the waitlist shows service and staff.
    • Improved Remove saved credentials, copy webhook and redirect addresses, 18 more currencies, and optional customer details in staff Google events.
    • Improved Setup checks cover the background worker, its schedule, the encryption key, FluentCart and the Stripe publishable key. Operations shows readable names, and old finished records are cleaned up after 30 days.
    • Fixed Refunds on confirmed bookings no longer drop pending reminders (Stripe and FluentCart).
    • Fixed The background jobs schedule re-creates itself if it goes missing.
    • Fixed The refund form stays available after a partial refund.
    • Fixed Block text and many interface and validation messages are now translatable; admin muted text meets contrast guidelines.
    • Fixed Rate limits can trust your own proxies, and next-slot searches no longer use up booking submissions.
    • Fixed Imports and exports keep the new service options and booking contact fields.
    • Fixed Privacy export and erasure include booking phone numbers and notes.
    • Fixed Webhook address checks cover IPv6 records and pin each request to the checked address; calendar attachments are written to a private temporary folder.
    • Fixed A failed database upgrade shows an admin notice and retries instead of stopping the site.
  11. Stable

    0.11.0

    Added: Take deposits at FluentCart checkout and collect the remaining balance later from the private booking page through a separate FluentCart cart.

    Read full notes 8 changes
    • Added Take deposits at FluentCart checkout and collect the remaining balance later from the private booking page through a separate FluentCart cart.
    • Added Sell session packs through FluentCart checkout, with activation, expiry, and refund handling matching Stripe packs.
    • Improved Read FluentCart refunds per order item: refunding an extra no longer affects the booking, partial appointment refunds record the exact amount, and deposit and balance refunds add up.
    • Improved Accept same-site checkout links for balance and pack payments in the booking and customer scripts.
    • Improved Give every workspace input, select, and textarea one consistent field style with a visible focus ring; selects keep room for their arrow.
    • Improved Use one reason field per operation or payment-event row, shared by its retry and dismiss buttons.
    • Improved Lay out the service and staff save bar on one row: change reason, Preview changes, and Save.
    • Improved Strip redundant semicolons in the CSS build so the admin skin stays within its 8 KB budget.
  12. Stable

    0.10.0

    Core Bookings 0.10.0 improves booking and payment recovery and adds the tools needed to manage customers and resolve failed operations.

    Read full notes 5 changes

    Requires WordPress 6.9+, PHP 8.3+, and MySQL/MariaDB with InnoDB. Schema 5 upgrades existing data additively. Back up the database before upgrading.

    The product remains in beta. Provider integrations require your own accounts and staging validation. This release does not automatically deploy to an existing site.

    • Fix balance-checkout races, refund reconciliation, reminders, recurring approvals, waitlist terms, meeting cleanup, privacy erasure, and daylight-saving/rescheduling errors.
    • Add searchable operations, customer history and metadata, group rosters, reasoned credit adjustments, and verified waitlist controls.
    • Add next-available appointment search, schedule previews and revision history, conflict-safe edits, opt-in staff-managed availability, and guided setup checks.
    • Add a compact Tabler-based Default UI. No UI Style disables customer-facing styling only; admin screens remain styled.
    • Reduce catalog queries, prioritize expiring messages, separate calendar work, and add regression coverage.
  13. Stable

    0.9.0

    Core Bookings 0.9.0 adds seat limits for individual scheduled group sessions. The product remains in beta.

    Read full notes 7 changes

    Validation includes 43 unit tests/94 assertions, PHP lint/static analysis, database/API and import checks, last-seat and concurrent-edit races, desktop/mobile checks, package installation and upgrades. The hosted demo disables payment and outbound email. Provider acceptance remains specific to each merchant's configuration.

    • Keep a service-wide default and override individual starts from 0 to 100 seats.
    • Show remaining seats and use the chosen session's maximum in the booking form.
    • Prevent capacity edits below confirmed bookings or active payment, approval and waitlist holds.
    • Enforce current limits during booking, payment confirmation, rescheduling, waitlist claims and imports.
    • Preserve limits in format-2 exports while continuing to accept format-1 imports.
    • Add a guided hosted demo with custom/default/closed sessions, a last-seat example and service-editor access.
    • Keep demo dates and per-session overrides aligned across the daily reset.
  14. Stable

    0.8.0

    Core Bookings 0.8.0 adds service overlap rules, native FluentCart checkout and more options for customer integrations. Core Bookings remains in beta.

    Read full notes 7 changes

    FluentCart requires version 1.6.5+ and currently collects full payment. Deposits and session packs remain on Stripe. Partial refunds for combined orders require allocation review. Validate provider connections on staging before accepting customer bookings.

    Validation: PHP lint, 38 unit tests/67 assertions, PHPStan, isolated integration and transfer checks, native FluentCart checks, concurrency tests, upgrade/uninstall checks, desktop/mobile review, and CI across PHP 8.3–8.5 plus WordPress 6.9/current.

    • Allow selected services to overlap for the same staff member while preserving capacity within each service.
    • Add customer profiles with registered metadata, permission-checked REST access and durable lifecycle hooks.
    • Offer embedded Stripe Payment Element alongside hosted Checkout.
    • Combine bookings and optional extras in native FluentCart checkout. GTFC is optional.
    • Protect new bookings, waitlist requests and email sign-in with optional Turnstile.
    • Send Brevo templates with up to five reminder steps and per-step template selection.
    • Preserve guest bookings, optional Core Forms intake, scoped assets and existing data during schema 4 upgrades.
  15. Stable

    0.7.1

    Core Bookings 0.7.1 adds organized settings and clearer setup guidance, including independent section saves, license purchase links, retention controls on the License page, and an accessible email placeholder reference.

    Read full notes 3 changes

    This release also includes the 0.6.0 and 0.7.0 additions since the previous store package:

    Requires WordPress 6.9+, PHP 8.3+ with Sodium, and MySQL/MariaDB InnoDB. Provider integrations require your own accounts and configuration. Validate provider connections and email delivery on staging before accepting customer bookings.

    The installable asset is core-bookings-0.7.1.zip; GitHub's generated source archives include development files.

    • Customer dashboard, recurring bookings, session packs, approvals, and waitlists.
    • Balance payments, queued refunds, calendar synchronization, and Google Meet/Zoom links.
    • Optional embedded Core Forms intake, calendar invitations, notification templates, availability overrides, and expanded privacy/import tools.
  16. Alpha

    0.7.2-dev

    Added: Permit activation on individual multisite subsites; continue rejecting network activation.

    Read full notes 4 changes
    • Added Permit activation on individual multisite subsites; continue rejecting network activation.
    • Added Add the isolated Core Bookings demo with synthetic appointments and a daily subsite-only reset.
    • Improved Restrict staff profiles to members of the current site.
    • Improved Apply each site's own data-deletion preference during network plugin uninstall.
  17. Stable

    0.7.0

    Added: Add email-verified customer access, booking/payment history, repeat-booking links, and paginated session-pack credits.

    Read full notes 10 changes
    • Added Add email-verified customer access, booking/payment history, repeat-booking links, and paginated session-pack credits.
    • Added Embed opted-in Core Forms intake with private context already filled, preserving Core Forms validation and submission behavior.
    • Added Add private iCalendar downloads and Google/Outlook add-event links.
    • Added Provision Google Meet and Zoom participant links through durable jobs; share group meetings and reconcile uncertain Zoom creation.
    • Added Add explicit balance Checkout and refund reconciliation across deposits, series, and remaining balances.
    • Added Add daily/weekly limits, expiring staff approvals, atomic recurring requests, and optional automatic staff selection.
    • Added Sell prepaid session packs with locked credit debits, idempotent restoration, expiry, and refund protection.
    • Added Add verified waitlists, reserved claim windows, expiry, and repeat-safe claims.
    • Improved Extend transfer/privacy/uninstall coverage, migration tests, and concurrency fixtures for the new customer state.
    • Improved Preserve earlier booking request replay and keep provider authorization headers independent of translations.
  18. Stable

    0.6.0

    Provider fixtures verify integration behavior; real provider accounts, licensed customer updates, and pilot approval remain release gates.

    Read full notes 8 changes
    • Added Add staff-owned Google connections, multiple conflict calendars, writable destination selection, incremental sync, expiring watch renewal, and external-conflict alerts.
    • Added Add manager-requested Stripe refunds with durable jobs, provider reconciliation, amount checks, and recovery from lost responses.
    • Added Add split shifts, date-specific hours, customer search, and a monthly appointment calendar.
    • Added Add editable notification templates and optional Core Forms intake using expiring intake-only codes.
    • Added Add opt-in retention, intake/refund transfer support, broader privacy exports, and failed-delivery dismissal.
    • Added Add schema upgrades, isolated test runtimes, focused reliability tests, translation hooks/catalog, and recovery documentation.
    • Improved Keep existing Google events on their saved destination and preserve required-calendar failure behavior.
    • Improved Recover lost Checkout responses from verified webhook receipts; retain periodic conflict checks when watch renewal fails.
  19. Stable

    0.5.1

    Added: Add a License submenu with encrypted FluentCart activation, status checks, and deactivation.

    Read full notes 4 changes
    • Added Add a License submenu with encrypted FluentCart activation, status checks, and deactivation.
    • Added Add 24px desktop / 16px mobile admin padding, refresh product screenshots, and add confirmed pricing to the local product page.
    • Improved Bind WordPress updates to Core Bookings product 1178439, refresh download URLs before upgrades, and validate package identity.
    • Improved Protect copied sites from reusing source-site credentials; keep booking features independent of license status.
  20. Stable

    0.5.0

    Added: Export versioned Core Bookings JSON for configuration or configuration plus appointments/history.

    Read full notes 6 changes
    • Added Export versioned Core Bookings JSON for configuration or configuration plus appointments/history.
    • Added Import with staff mapping, conflict previews, atomic booking-data writes, and duplicate recognition.
    • Added Add Calendly, Acuity, and custom CSV import with editable column/service mapping and explicit timestamp timezones.
    • Improved Encrypt staged files, restrict transfers to booking managers with export permission, and keep imports silent.
    • Improved Exclude provider credentials, private tokens, live checkout sessions, and jobs from portable files.
    • Improved Show the version as plain text, retaining its v prefix.
  21. Stable

    0.4.2

    Improved: Combine the workspace logo, navigation, and version badge into one responsive bar.

    Read full notes 4 changes
    • Improved Combine the workspace logo, navigation, and version badge into one responsive bar.
    • Improved Give standalone service pages a service summary, host profile, pricing, and a focused booking panel.
    • Improved Load the additional standalone stylesheet only on standalone booking/management pages.
    • Fixed Fix time-slot centering, checkbox alignment, and secondary button styles while preserving theme font families.
  22. Stable

    0.4.1

    Added: Add selectable appointment filter chips and place CSV export below the list.

    Read full notes 6 changes
    • Added Add selectable appointment filter chips and place CSV export below the list.
    • Improved Keep backend corners square while preserving rounded status and version badges.
    • Improved Link service booking totals and upcoming counts to matching appointments, preserving service scope in popups and pagination.
    • Improved Put customer profiles first in the appointment list and open booking details from their names.
    • Improved Display appointment dates and times using WordPress timezone and format settings.
    • Improved Protect the local screenshot demo against destructive fixture tests.
  23. Stable

    0.4.0

    Added: Add editable copy, display toggles, colors, spacing, corner radius, column layout, alignment, and anchors.

    Read full notes 6 changes
    • Added Add editable copy, display toggles, colors, spacing, corner radius, column layout, alignment, and anchors.
    • Added Create reusable services inside the editor, including staff assignment, group sessions, payment settings, and scheduling rules.
    • Added Add permission-checked editor endpoints and preserve existing service-only blocks.
    • Added Add icons and selected states to workspace navigation, link metrics to matching filtered bookings, and show the dashboard date with its year.
    • Improved Replace the service-ID placeholder with a searchable service picker and three-stage editor preview.
    • Improved Keep metric filters through appointment popups and workspace refreshes.
  24. Stable

    0.3.0

    Added: Add service cards with booking totals and public standalone booking pages.

    Read full notes 6 changes
    • Added Add service cards with booking totals and public standalone booking pages.
    • Added Add staff/customer avatars, searchable timezone selection, and repeated time-off date ranges.
    • Added Add scoped appointment popups with previous/next navigation, inline updates, and activity timelines.
    • Added Add a custom logo, aligned button icon, version badge, and complete WordPress submenus.
    • Improved Keep Operations/Settings in the sidebar and inherit frontend theme font families.
    • Improved Document the per-user, multi-calendar Google integration plan.
  25. Stable

    0.2.0

    Added: Add a complete dashboard with real booking metrics, upcoming appointments, a weekly schedule, attention items, and setup status.

    Read full notes 5 changes
    • Added Add a complete dashboard with real booking metrics, upcoming appointments, a weekly schedule, attention items, and setup status.
    • Added Add staff-data isolation and dashboard asset checks.
    • Improved Adapt Core Forms navigation, color tokens, controls, status treatments, and grouped editors.
    • Improved Split customer booking into appointment and details stages with compact time selection and clear confirmation.
    • Improved Keep frontend/admin CSS on demand with explicit 4 KB / 8 KB budgets.
  26. Stable

    0.1.0

    No public release or production provider verification has occurred.

    Read full notes 7 changes
    • Added Add independent service, staff, availability, and group-session management.
    • Added Add timezone-aware booking block/shortcode and customer management links.
    • Added Add locked reservations, request idempotency, cancellation, and atomic rescheduling.
    • Added Add Stripe Checkout and Google Calendar adapters with explicit recovery states.
    • Added Add background jobs, CSV export, privacy tools, and safe uninstall behavior.
    • Added Add domain, database, concurrency, HTTP, admin, and package checks.
    • Improved Keep frontend styles below 2 KB, scoped and loaded only when booking UI is rendered; use native WordPress admin styling.