Plugin Wizards
Product pages

Booking Slots for WooCommerce

Sell appointments, classes and day bookings from normal products: schedules, time slots, capacity, people, a calendar, confirmations and reminders.

  • Block cart and checkout
  • Classic cart and checkout
  • High-performance order storage
  • WooCommerce 9 – 11
  • WordPress 6.6 – 7.1
  • PHP 7.4+
yourstore.com/product/pottery-workshop

What Booking Slots does

Turn any simple product into something customers book: a haircut every thirty minutes, a two-hour workshop for up to eight people, a cabin by the night. No separate booking system, no extra product type: the normal cart, checkout, orders and emails do the rest.

Booking Slots features

On the product

  • Tick "Bookable" and choose what a booking is: N minutes, hours or days
  • Weekly schedule with opening hours per weekday, blocked dates and ranges
  • Capacity per slot; optionally count people with a minimum and maximum and a per-person price
  • A gap between slots, notice needed before the start, how far ahead people may book
  • Day bookings can span several days with a maximum length and a per-day price

On the product page

  • A calendar showing which days have something free; pick a day, then a slot (spaces left are shown)
  • Day bookings pick one day or a range; the price updates as you choose
  • Works on block themes and classic themes, no page builder needed

Orders

  • The slot is checked when it is added, again at checkout, and taken from availability as soon as the order is placed
  • Paid orders confirm the booking; cancelled, failed or refunded orders free the slot
  • The order line shows the booking; the order screen has a Bookings box

Emails and calendar files

  • Confirmation email with an .ics calendar file attached, a reminder a set number of hours before, and a note to the shop when a booking is made or cancelled; all three editable under WooCommerce > Settings > Emails
  • My Account > Bookings lists upcoming and past bookings with "Add to calendar" and, within the window you allow, "Cancel"

Managing

  • WooCommerce > Bookings: list with status, product, date and text filters; a month calendar with counts per day; one booking's details, notes, status changes, resend; manual bookings (walk-ins, phone bookings) with an override for full or short-notice slots
  • Past bookings are marked complete automatically

For developers

Filters bslt_product_config, bslt_slots, bslt_booking_cost, bslt_email_rows, bslt_settings_fields; actions bslt_booking_created, bslt_booking_confirmed, bslt_booking_cancelled, bslt_booking_complete, bslt_booking_status, bslt_booking_reminder. Table wp_bslt_bookings.

    Three businesses, three bookable products

    There is no booking product type. A simple product gets a Booking tab, you tick Bookable, and the calendar appears inside the add-to-cart form. The cart, checkout, orders and emails are the normal WooCommerce ones. Here is how three different businesses set the same tab.

    How a salon, a studio and a cabin set up the Booking tab
    BusinessBooking tabWhat the customer books
    Hair salon30-minute slots, Tuesday to Saturday 9 to 6, capacity 1, 10-minute gap, 2 hours' noticeA day on the calendar, then a free slot; taken slots are gone
    Pottery studio2-hour slots on three evenings, capacity 8 people, $45 per person, minimum 1, maximum 4A slot showing "3 spaces left" and a people count that updates the price
    Lakeside cabinDay bookings, 2 to 7 nights, $140 per night, blocked over ChristmasA check-in and check-out day; the price updates as the range grows
    Walk-in or phone bookingWooCommerce > Bookings > Add booking, with an override for full or short-notice slotsNothing; staff record it and it comes off availability
    A customer who cannot make itA cancellation window of, say, 24 hours"Cancel" in My Account > Bookings while the window is open, then books again

    The slot is checked when it goes in the cart, again at checkout, and removed from availability the moment the order is placed. A paid order confirms the booking and sends a confirmation with an .ics calendar file; a reminder goes out a set number of hours before; cancelled, failed or refunded orders free the slot, and WooCommerce's unpaid-order timeout frees slots held by abandoned checkouts. Past bookings mark themselves complete.

    What it does well, and what it leaves to other tools

    The large booking extensions add a product type of their own, staff and resource management, and a calendar sync. This plugin keeps bookings inside products you already have, which is why a store that sells both goods and classes can run it without a second checkout. Capacity, people with a per-person price, gaps, notice periods and how far ahead people may book are all per product. Everything lands in WooCommerce > Bookings: a filterable list, a month calendar with counts per day, one booking's notes and status, resend, and manual bookings. Times are in the store timezone and the calendar file carries the right offset.

    What it does not do: staff or room resources with their own schedules, a two-way sync with Google or Outlook calendars (customers get an .ics file instead), online rescheduling (customers cancel inside the window and book again), and deposits or part payment. Bookable products must be simple products, not variable ones. For paid add-ons on a booking, such as a longer session or materials, Product Add-ons works on the same product.

    How to set up Booking Slots in WooCommerce

    1. 1

      Upload the plugin to /wp-content/plugins/ or install it from the Plugins screen.

    2. 2

      Activate it.

    3. 3

      Edit a simple product, open the Booking tab, tick "Bookable" and set the schedule.

    4. 4

      Review WooCommerce > Settings > Bookings and the three emails under Settings > Emails.

    Questions about Booking Slots

    Does it work with the block checkout?

    Yes. The calendar sits inside the add-to-cart form on both block and classic product pages, and bookings flow through the block and classic cart and checkout.

    Which timezone are slots in?

    The store timezone (Settings > General). Customers see times in that timezone; the calendar file carries the right UTC offset.

    Can two customers book the same slot?

    Only up to the capacity you set. Pending (unpaid) orders hold their slot; WooCommerce's unpaid-order timeout cancels abandoned ones and frees it.

    Can I take bookings over the phone?

    Yes: WooCommerce > Bookings > Add booking. It does not create an order; take payment however you like.

    Can customers reschedule?

    They can cancel within the window you allow and book again. Staff can change anything from the booking screen.

    Booking Slots changelog

    1.0.0
    • Initial release.
    Product pages

    Product Add-Ons

    Extra options on products: text, dropdowns, checkboxes, file uploads and more, each with its own price.

    View plugin

    Shipping

    Order Delivery Date

    Let customers choose a delivery date and time slot at checkout. Set delivery days, lead time, a daily cut-off and closed dates.

    View plugin

    Orders & notifications

    Custom Order Statuses

    Add your own order statuses such as Packed, Awaiting pickup or Ready to ship, with colours, bulk actions and safe deletion.

    View plugin