Docs Product page Dashboard
Docs Marketing Booking

Booking

v2.4.1

Take appointments, set your availability and send automatic reminders — all from the same WPStack panel, with no third-party booking service.

Included in every plan Updated May 2026

Overview

The Booking module turns any WordPress page into a self-serve appointment scheduler. Define your services, publish a booking page, and manage everything from one calendar.

Booking is built for service businesses — consultants, studios, clinics, salons and agencies — that want clients to book and pay online without bolting on a separate plugin or a paid scheduling service. Every appointment stays inside your own site.

The Booking admin — manage every appointment, service and provider in one place.
The Booking admin — manage every appointment, service and provider in one place.

What you can do

  • Create unlimited services, each with its own duration, price and description
  • Set working hours, days off and buffer time so you never double-book
  • Take deposits or full payment at booking with Stripe or PayPal
  • Send automatic email and SMS reminders to cut no-shows
  • Let clients reschedule or cancel from a secure self-service link
  • Assign appointments across a team of staff members
  • Let visitors book from a chat bubble with the Chat module
  • Sync two ways with Google Calendar and Outlook
Part of the stackBooking shares the same data model as the other modules. Pair it with Forms for custom intake questions, Chat to let visitors book from a chat bubble, Login for returning-client accounts, or Connect to sync every booking to the mobile app.

Requirements & compatibility

Booking runs on any modern WordPress host. Payments and SMS need their own free accounts.

RequirementMinimumRecommended
WordPress6.06.5 or newer
PHP7.48.1 or newer
WPStack core2.2Latest
HTTPSRequired for paymentsSite-wide

Optional integrations

IntegrationUsed forNeeded?
StripeCard payments & depositsOnly if you take payment
PayPalPayPal checkoutOptional alternative
TwilioSMS remindersOnly for SMS
Google / OutlookTwo-way calendar syncOptional
Works with any themeThe booking page inherits your theme’s fonts and colors automatically. No theme-specific setup is required.

Installation & activation

Booking ships inside WPStack — there’s nothing extra to download. Switch it on per site from the modules panel.

1

Open the WPStack modules panel

In your WordPress admin, go to WPStack → Modules. You’ll see all eleven modules with a toggle each.

2

Activate Booking

Flip the Booking toggle to on. The module loads instantly — no page rebuild and no front-end weight until it’s enabled.

3

Open Booking settings

A new Booking item appears in the WPStack menu. Open it to set your time zone, services and availability.

4

Publish your booking page

Add the [wpstack_booking] shortcode or the Booking block to any page, then publish.

Enable HTTPS firstIf you plan to take payments, make sure your site is served over HTTPS before going live. Stripe and PayPal will refuse to process cards on an insecure connection.

Settings reference

Every option in the Booking settings panel, grouped the way it appears in the admin.

General

SettingTypeDefaultWhat it does
time_zoneselectSite defaultThe time zone all availability and reminders are calculated in.
time_formatselect24-hourHow times appear to clients — 24-hour or 12-hour.
min_noticenumber (hrs)4How far in advance a client must book. Blocks last-minute slots.
booking_windownumber (days)60How far into the future clients can book.

Availability

SettingTypeDefaultWhat it does
working_hoursscheduleMon–Fri 9–17Your bookable hours per weekday.
buffer_beforenumber (min)0Padding added before each appointment.
buffer_afternumber (min)15Padding added after each appointment for cleanup or notes.
daily_limitnumber0 (∞)Maximum bookings per day. 0 means no limit.

Payments

SettingTypeDefaultWhat it does
payment_modeselectOffOne of off, deposit or full.
deposit_pctnumber (%)25Deposit size when payment_mode is deposit.
hold_minutesnumber15How long an unpaid slot is held before it’s released.

Notifications

SettingTypeDefaultWhat it does
email_remindertoggleOnSend an email reminder before the appointment.
sms_remindertoggleOffSend an SMS reminder (requires Twilio).
reminder_leadnumber (hrs)24How long before the appointment reminders go out.

Step-by-step guides

The four things most people set up first.

Create your first service

1

Go to Booking → Services

Click Add service.

2

Name it and set the basics

Give it a name (e.g. “30-min consultation”), a duration, and an optional price.

3

Choose availability

Use your default working hours, or give this service its own schedule.

4

Save

The service is now bookable and appears on your booking page.

Set your availability

Open Booking → Availability and set your working hours per weekday. Add buffers if you need breathing room between appointments, and block one-off days under Time off.

Embed the booking page

Add the [wpstack_booking] shortcode to any page, or use the Booking block in the editor. To show a single service only, pass its ID:

phppage content
[wpstack_booking service="30-min-consultation" theme="card"]

Turn on payments

1

Connect Stripe or PayPal

Under Booking → Payments, click Connect and follow the prompts.

2

Choose deposit or full

Set payment_mode to deposit or full and pick a deposit percentage.

3

Test a booking

Use Stripe test mode to confirm the flow before going live.

Unpaid slots are released automatically after hold_minutes, so a half-finished checkout never locks your calendar.

Shortcodes, blocks & widgets

Three ways to place Booking on the front end — pick whichever fits your build.

[wpstack_booking]

The full booking widget: service picker, calendar, time slots and checkout.

serviceShow one service only. Accepts a service slug or ID.
themeLayout style — card (default) or inline.
staffLimit to a specific staff member by ID.
[wpstack_booking_button]

A button that opens the booking widget in a modal — ideal for headers and hero sections.

labelButton text. Defaults to “Book now”.
servicePre-select a service when the modal opens.
[wpstack_booking_next]

Shows the next available slot for a service as plain text — useful in sidebars.

serviceWhich service to look up. Required.
Block, Elementor & widgetBeyond shortcodes, the same widget is available as a block (search “WPStack Booking” in the inserter), an Elementor widget (drag it in and pick a service right in the editor), and a classic widget for legacy sidebars — each with the same options.

Beyond the website

Booking doesn’t only live on your pages. Through the rest of WPStack, visitors can book from a chat bubble — and soon you’ll see every appointment in a mobile app.

Book from the chat bubble

Available nowRequires the Chat module to be active on the same site.

The Chat module floats a bubble on any page. Because it’s wired to Booking, a visitor can pick a service and grab a slot without leaving the conversation — ideal for the questions that turn into appointments.

  • The service picker opens right inside the chat window
  • Live availability is pulled from the same calendar as your booking page
  • Confirmation and reminders are handled exactly like a normal booking

Manage bookings from your phone

Coming soonA native iOS & Android app is in development — we’ll announce availability in the changelog.

The upcoming WPStack mobile app connects through the Connect module and brings every appointment booked on your site into one place you can check on the go.

  • All website bookings synced into the app
  • A push notification on each new booking
  • Powered by the Connect module — no extra setup per booking
Connect is the hubThe Connect module ties Booking to the chat bubble and the upcoming app, so a booking made anywhere shows up everywhere.

Frequently asked questions

No. Booking runs entirely inside your WordPress site — there’s no Calendly-style account and no external embed. Your data stays on your site.

Yes. Connect Stripe or PayPal to take a deposit or the full amount at booking. Unpaid holds expire automatically so slots don’t stay locked.

Email reminders work out of the box. SMS uses your own Twilio credentials. You choose how many hours before the appointment each reminder goes out.

Booking syncs two ways with Google Calendar and Outlook, so personal events block availability and new bookings appear on your calendar instantly.

Yes. Add staff under Booking → Staff, assign services to each, and clients can pick who they book with.

Yes. With the Chat module active, the booking flow opens right inside the chat bubble, using the same services and availability as your booking page.

A native iOS and Android app is in development. It connects through the Connect module and shows every booking made on your site — we’ll announce availability in the changelog.

Troubleshooting

The most common issues and how to clear them.

SymptomLikely causeFix
No time slots appearWorking hours not set, or min_notice too highCheck Availability and lower min_notice.
Payment step is skippedpayment_mode is offSet it to deposit or full and reconnect Stripe.
Reminders not arrivingSite cron not firing, or SMTP not configuredVerify WP-Cron runs and use an SMTP plugin for email.
Calendar not syncingToken expiredReconnect Google / Outlook under Integrations.
Still stuck?Turn on Booking → Advanced → Debug log and include the output when you contact support from your dashboard.

Changelog

2.4.1
May 2026
newBook directly from the Chat bubble.
newTwo-way Outlook calendar sync.
impFaster slot calculation on calendars with many events.
fixDaylight-saving edge case when crossing month boundaries.
2.3.0
Feb 2026
newPer-staff availability and assignment.
new[wpstack_booking_button] modal shortcode.
impRedesigned mobile time-slot picker.
2.2.0
Nov 2025
newDeposit payments via Stripe.
fixReminder lead time now respects site time zone.
Was this page helpful?