

Appointment booking wizard interface
Booking System – Booking for Appointments and Booking Calendar is a modern appointment booking plugin and scheduling system for WordPress.
It helps businesses accept online bookings, manage services, control schedules and availability, organize customers, handle appointments and reservations, and configure payments through a clean booking calendar workflow.
This plugin is fully functional without any license key and includes:
Need a setup walkthrough? Watch the step-by-step video tutorial: https://www.youtube.com/watch?v=rqMzZwy_64I
This WordPress.org package does not gate built-in functionality behind licenses, trials, quotas, or time limits. Any paid add-on functionality is distributed separately and is not included in this package.
Generated asset files shipped in this plugin are built from human-readable source files included in the plugin package.
Source directories:
src/admin/ – admin React sourcesrc/front/ – front-end React sourcesrc/shared/ – shared source used by compiled admin/front-end bundlesblocks/src/book-form/ – Gutenberg block sourceGenerated files:
build/admin.jsbuild/index.jsx.cssbuild/index.jsx-rtl.csspublic/build/front.jspublic/build/index.jsx.csspublic/build/index.jsx-rtl.csspublic/front.jspublic/index.jsx.csspublic/index.jsx-rtl.cssblocks/build/book-form/index.jsThe files in public/ listed above include legacy compatibility copies generated from the same src/front/ sources.
Generated files should not be edited manually. Edit the source files in src/ or blocks/src/ and rebuild.
Build commands:
npm installnpm run buildIndividual build commands:
npm run build:adminnpm run build:frontnpm run build:book-formBuild tooling is declared in package.json, and the build steps are documented in this readme.
Some optional features in this plugin connect to external services for payments and optional webhook delivery.
Stripe
What the service is: Stripe is a payment processing platform.
What it is used for: The plugin uses Stripe to create payment sessions, create payment intents, and confirm payment-related transactions when Stripe payments are enabled.
Service domain(s): api.stripe.com for Stripe API requests and js.stripe.com for the Stripe-hosted checkout JavaScript loaded in the browser during Stripe checkout.
What data is sent: This may include booking reference data, order amount, currency, return or cancel URLs, and payment metadata required to process the transaction.
When data is sent: Data is sent only when a customer starts a Stripe payment flow, when the Stripe checkout script is loaded in the browser for that payment flow, or when the site requests payment confirmation or related payment processing actions.
Terms of service URL: https://stripe.com/legal
Privacy policy URL: https://stripe.com/privacy
PayPal
What the service is: PayPal is a payment processing platform.
What it is used for: The plugin uses PayPal to obtain API access tokens, create checkout orders, and capture approved payments when PayPal payments are enabled.
Service domain(s): api-m.paypal.com for live transactions and api-m.sandbox.paypal.com for sandbox transactions.
What data is sent: This may include booking reference data, order amount, currency, return or cancel URLs, and PayPal order data required to process the payment.
When data is sent: Data is sent only when a customer starts a PayPal checkout flow and when an approved PayPal order is captured or verified.
Terms of service URL: https://www.paypal.com/webapps/mpp/ua/legalhub-full
Privacy policy URL: https://www.paypal.com/webapps/mpp/ua/privacy-full
Optional administrator-configured webhook destination
What the service is: This is an optional external webhook endpoint configured by the site administrator. The destination is not pre-defined by the plugin.
What it is used for: The plugin can send booking event notifications to an external automation, CRM, or integration endpoint chosen by the site administrator.
Service domain(s): Any external domain explicitly configured by the site administrator for webhook delivery.
What data is sent: This may include the event name, site URL, timestamp, and event payload such as booking ID, status, service ID, customer ID, agent ID, and related booking fields.
When data is sent: Data is sent only if the webhook feature is enabled and the site administrator has configured an external webhook URL for the relevant event.
Terms of service URL: The terms of service of the external provider chosen by the site administrator.
Privacy policy URL: The privacy policy of the external provider chosen by the site administrator.