Best WooCommerce bookings and appointments plugins (with tutorial)

January 4, 2022

As a business owner, you might sell products or services that customers need to book ahead of time or make an appointment for. Adding a booking system to your WordPress website can be difficult – especially if you need a way for customers to make payments. You can quickly get started by using a WooCommerce bookings and appointment plugin.

Displaying WooCommerce Bookings in a WooCommerce Product Table

However, finding the right bookings plugin can be a daunting task. The first step is to determine what you need it for. For example:

  • Are you looking for a way to increase your overall bookings or conversions?
  • Do you need a WooCommerce booking plugin that allows you to streamline the organization of your business?
  • Or do you need a simple solution to help decrease no-shows for upcoming events?

In this post, we’ll run the rule over some of the best WooCommerce bookings and appointment plugins and highlight their standout features to help you make an informed decision. We’ll also walk you through a quick tutorial explaining how you can get started with the WooCommerce Bookings plugin. Finally, we'll explain how to display bookings in a front-end table layout using WooCommerce Product Table.

But first, let’s quickly take a look at some of the different types of businesses that can benefit from a WooCommerce booking plugin.

Who needs a WooCommerce bookings plugin?

Any business that requires bookings, appointments, or reservations of any sort can use a WooCommerce bookings plugin to improve their service quality and deliver better customer experiences. Here’s a look at some of them:

Selling rental products

If you run a business that rents out products such as cars, boats, Christmas trees, or rooms and apartments then you’ll need a WordPress booking plugin to better manage booking products, customer bookings, and reservations.

This way, you won’t have to maintain a manual, paper-based booking system or collect payments in person. Instead, customers will be able to use an automated reservation platform to learn about your products, the available time slots, proceed to book their desired product, and make payments.

Selling appointments and booking slots

A WooCommerce bookings plugin can help doctors better manage their patients’ appointments, and track any cancellations in time to squeeze in more patients. In addition, customers will no longer have to respond to emails or phone calls to book appointments.

Similarly, personal service professionals such as wedding photographers, gardeners, and birthday decorators will also be able to fulfill client needs and requirements more efficiently.

Various types of product that may require a date picker

Online teaching businesses can also benefit from using an online booking system to complement their online learning website. You’ll be able to hire teachers who could each set up their available hours to teach students.

A WooCommerce bookings plugin lets you create all sorts of bookable products including university courses, cooking classes, guitar lessons, or even dance instructions. You can also set a price and charge your clients a flat rate or by the hour.

6 best WooCommerce bookings and appointments plugins

Here, we’ll step through five of the most popular WooCommerce bookings plugins and highlight their key features.

#1: WooCommerce Bookings

WooCommerce Bookings plugin

WooCommerce Bookings plugin enables your visitors to book appointments and reservations online – without making any phone calls. This way, you don’t have to mark dates on your calendar or maintain a paper-based booking system. Instead, your website will manage your bookings and payments automatically.

Key Features:

  • You can define set options like fixed time slots for a guided tour or an appointment or let your customers choose a time that suits them best.
  • It lets you set the minimum and the maximum number of participants allowed in a session. So, for example, you can choose to hold one-one-one appointments or allow multiple visitors to reserve a class.
  • You’ll be able to control how appointments are confirmed and cancelled on your WordPress website.
  • It allows you to send reminder emails to your customers when they make a reservation when it is confirmed, and the day before the booking date.
  • You can use a calendar to keep track of all your bookings and automatically sync all your booking dates with Google Calendar to view them on the go.
  • WooCommerce Bookings also integrates with WooCommerce Product Table - ideal for listing bookable products in a searchable, filterable table view. More on this later.

Skip ahead for our full tutorial on how to set up WooCommerce Bookings.

#2: YITH Booking and Appointment for WooCommerce

YITH Booking and Appointment for WooCommerce plugin

YITH Booking and Appointment for WooCommerce helps you create a simple and easy-to-use booking system for your WordPress business website. This WooCommerce booking plugin supports all sorts of e-commerce sites built on WooCommerce and lets you create various types of bookable products with different pricing options.

Key Features:

  • It enables you to easily manage bookings for apartments, rooms, and other living facilities by setting their daily or hourly booking rates.
  • You’ll be able to set the minimum and the maximum number of days available for booking by individual visitors.
  • You can set to approve reservations as soon as the customer confirms it or require approval from the admins.
  • You can set the maximum period until when customers will be allowed to cancel their bookings.
  • It enables you to manage appointments and bookings for services such as nail salon, physiotherapy sessions, or beauty parlors and sync your booking dates with Google Calendar.

#3: WooCommerce Bookings And Appointments

WooCommerce Bookings And AppointmentsWooCommerce Bookings And Appointments lets you convert any type of  WooCommerce product into a bookable product. It's great for taking bookings for time, accommodation, or events.

Key Features:

  • Sell bookings by the minute, hour, day or month.
  • Choose how many bookings to allow per time slot.
  • Set minimum and maximum booking durations.
  • Allow users to edit and cancel bookings, within a minimum period before the appointment.
  • Allow all bookings or enable admin approval.
  • Built-in email notifications and reminders.
  • Create more advanced booking forms with additional fields for customer information.
  • Syncs with Google Calendar.
  • Built-in staff management.
  • Advanced pricing rules and options.

#4: Bookly

Bookly plugin

Bookly is a useful WooCommerce booking plugin that offers seamless integration with WooCommerce. It lets your customers book appointments for all types of businesses including spas and massage, law consultancy, car repair, beauty, and private clinics.

Key Features:

  • It helps you save time by eliminating your manual scheduling system. It automates the entire process which enables your customers to quickly book their appointments even on weekends.
  • Bookly is easy to set up and lets you start receiving booking requests almost instantly.
  • You’ll be able to include several employees in the booking schedule, enabling them to charge different rates and show their available time slots.
  • You’ll be able to add an unlimited number of business services to your booking page and categorize them for easier management.
  • It offers integration with Google Calendar which lets you organize multiple calendars of all of your employees or staff members.

#5: WooCommerce Appointments

WooCommerce Appointments plugin

WooCommerce Appointments is a popular WooCommerce booking plugin that enables you to easily schedule and reserve bookings on your WordPress business site. It’s an ideal solution for companies that want to focus on their core business activities and leave the appointment scheduling tasks to the software.

Key Features:

  • It is easy-to-use, fast to install, and doesn’t require any coding skills or staff training.
  • Its two-way Google Calendar sync feature lets you automatically synchronize bookings from your website with the Google Calendar and vice versa.
  • You’ll be able to assign multiple employees to appointments, manage their calendars individually, and enable them to log in and display their available times.
  • You can schedule appointments for multiple days for your customers or offer extended durations using add-on fields. Similarly, you’ll be able to extend duration by minutes or hours.
  • WooCommerce Appointments lets you determine the number of times visitors can schedule an appointment in advance. This way they won’t be able to book an appointment a few months (or a year!) in advance.

#6: Booked

Booked plugin

Booked are an easy-to-use and flexible WooCommerce booking plugin that enables you to send booking registrations including registered bookings, paid bookings, and guest bookings. It lets you customize the settings to match your business needs.

Key Features:

  • You’ll be able to collect payments from your visitors for appointments and allow them to quickly checkout using WooCommerce.
  • It gives you access to multiple calendars, each with its own time slots and custom fields. This helps your employees easily manage their schedules and available times.
  • Booked enables your guest visitors to book registrations without requiring any registration. However, they’ll have to provide their name and email address.
  • Its built-in color pickers let you personalize your calendars based on your preferences or to match your business’ brand.
  • It lets you showcase your appointment booking calendar on your WordPress business site.

How to get started with the WooCommerce Bookings plugin

WooCommerce Bookings is a popular and versatile WooCommerce booking plugin for WordPress. Since it's the official bookings plugin by Woo, this is the one we're going to focus on in this tutorial. It's also fully compatible with the non-lazy load option in WooCommerce Product Table, which is fantastic if you want people to be able to make bookings from a neat table layout.

In this section, we'll walk through step-by-step instructions to help you get started. We'll cover:

  1. Installing WooCommerce Bookings
  2. Creating a bookable product
  3. Setting up the costs
  4. Configuring available booking slots
  5. Integrating with WooCommerce Product Table to showcase bookings in a table layout

Feel free to follow the entire tutorial or use the jump links above to skip to a particular step.

Installing WooCommerce Bookings

The WooCommerce Bookings plugin works seamlessly alongside WooCommerce allowing you to create bookable products. Assuming you already have WooCommerce installed on your WordPress website, here are the steps you need to follow to install WooCommerce Bookings:

Get the WooCommerce Bookings plugin's zip file. Next, log in to your WordPress website and head over to Plugins -> Add New and click the Upload Plugin button.

Install the WooCommerce Bookings plugin

Upload the plugin's zipped file and click Install Now to proceed. Activate the plugin to your website.

You'll notice that a new menu item in the side menu bar, Bookings. This is where you'll be able to create new bookable products and configure different settings related to accepting bookings. Next, we'll show you how you can begin creating a bookable product using WooCommerce Bookings.

Creating a bookable product

One of the reasons why WooCommerce Bookings is an incredibly popular booking solution in the WordPress space is because it's incredibly intuitive. The plugin lets you create bookable products in the same way you'd add new products in WooCommerce. The only difference is in the product's configuration settings. Here's what you need to do to get started:

Head over to Products -> Add New from the WordPress admin panel. Add in product details (such as the product name, description, and featured image) and set categories and tags as you normally would.

Add new product screen in WooCommerce

Next, scroll down to the Product data section. From here, use the dropdown menu next to where it says Product data to set the product as a Bookable product. If you're selling a virtual bookable product (such as an online course, training program, classes, or services), click the checkboxes next to the Virtual and Downloadable boxes, as necessary.

Virtual product checkbox in product data section

At this stage, you'll notice that the Product data section has been updated to reflect configuration settings for bookable products. Next, let's quickly step through these settings.

Booking duration

The Booking duration option lets you decide between a fixed block of or customer-defined blocks of:

  • Fixed block of. With this option, you'll be able to restrict customers and clients from booking outside of fixed slots. For instance, if you're setting up a website for a salon, you might need to set a fixed duration of 30 minutes to 2 hours, depending on the services you offer. You can set fixed blocks of minutes, hours, days, and months.
Fixed block of option
  • Customer defined blocks of. If you need to let customers set their own blocks, select this option. This way, you'll be able to set the duration and let customers select the number of blocks they'd like to book with you. With this option, you'll also be able to specify the minimum and maximum duration (in terms of days and hours) for bookings.
Customer defined blocks of option

Note: If you set the Booking duration in Day(s) for Customer defined blocks of, you'll also be able to enable calendar date range picker to make it easy for customers to select a start date and end date on the calendar.

Calendar display mode

You can use this option to set the calendar to always be visible or to be displayed when customers click.

Required confirmation

If you check this option, the booking request will be sent but the payment will not be processed until the admin confirms the appointment. Once the admin reviews and approves it, the booking request will be confirmed and the payment will be processed.

Can be cancelled

This option enables you to choose whether you’d want to enable customers to cancel their bookings after they are confirmed. Disabling this option will no longer let them cancel bookings after confirmation. If you select the option to allow booking cancellation, you can determine the period before it can be cancelled. For example, if you want to let customers cancel bookings up to two hours before their appointment, you'd configure the Booking can be cancelled until option as follows:

Option for cancelling booking

Setting up the costs

With WooCommerce Bookings, you can also set up pricing for each block you create by heading over to the Costs tab under the Product data section. You can choose to display prices on the sales page of your website or in a front-end table layout -- more on this later. Here's a look at the different options available to you for setting up costs for bookable products:

Base cost

This is a one-off cost for the booking as a whole. You can set this as the booking fee or the signup charges. This cost will be charged on every booking made regardless of the block cost. It's important to keep in mind that the base cost doesn’t depend on the block cost. In other words, even if a customer books more than one block, the base cost will remain the same for that booking.

Block cost

Here you’ll be able to set the price of a single block. The price per block multiplied by the number of blocks booked is the total cost of the booking.

Display cost

This is the price that’ll be shown to the users on the front-end regardless of the block cost and the base cost. This is great for when you'd like to display costs as, say, Starting from $9.95! Leave this option blank to have the cost automatically calculated for you.


These fields will enable you to add more customizations to your booking costs. This is especially useful for when you are looking to offer customers a special discount for a limited time. For instance, if you offer a discount from August 5th to August 7th, you might configure the range as follows:

Option for setting costs based on a range

This will set the block cost for services at $9.95 from August 5th to August 7th.

Configuring available booking slots

WooCommerce Bookings also lets you set up availability rules for each block you create by heading over to the Availability tab under the Product data section. Let's step through the different setting options available to you.

WooCommerce Bookings availability settings tab

Max bookings per block

Max booking per block denotes the maximum number of bookings that are available for the same block. Let’s look at an example to better understand this. Let’s say you employee three nail experts who can offer manicure services at the same time i.e. in a bookable block.  For this, you'd enter 3 as the Max bookings per block value.

Minimum block bookable

In this field, you can enter the minimum amount of time in the future for which the appointment can be booked. For example, if you set this to 2 weeks, customers will be able to book appointments with you up to 2 weeks before the day of the appointment.

Maximum block bookable

This option lets you specify the maximum period in the future for which customers will be allowed to make bookings. This is especially useful because you don’t want to let them book a few months or a few years in advance!

All dates are

This option lets you specify all the dates that are available by default. You can choose to set all the dates as not-available by default, as well.

Check rules against

You’ll be able to set the bookings system to check the rules for all the blocks that are booked or only the first block of the range of blocks being booked.

If you choose All the blocks being booked, the rule will be checked against every single block that the customer books. If a customer books 3 blocks simultaneously, all the blocks will be checked for availability individually and booking will be confirmed only if all three are available. However, if you specify the starting block only, the rule will check only for the availability of the first block.


You can use this option to specify the range for availability according to your requirements. Just click Add Range and set custom availability. For instance, if your salon will remain closed over the first week of September, then you can create a range for the unavailability of those days. This is also useful if you want to make weekends un-bookable.

Option for setting availability based on a range

Of course, there are many other settings you can configure with WooCommerce Bookings such as sending custom email notifications or SMS notifications. You can even use the Follow-Ups plugin to send custom emails for each bookable product. This is handy if you want to send directions or 'what to bring' instructions to people before their appointment.

Integrating with WooCommerce Product Table to showcase bookings in a table layout

With the default WooCommerce shop page layout, customers will have to click through to single product pages to be able to book products or appointments. This doesn't make for an intuitive shopping experience.

Instead, you can display all bookable products (along with booking availability, pricing, and other product information) in a table layout. The front-end table will also display a booking calendar against each product in a column. This is possible with the AJAX-based WooCommerce Product Table plugin integration with the WooCommerce booking plugin.

An easy-to-use plugin for listing WooCommerce bookings and appointments in a front-end table layout.

Here's what you need to do to get started:

Step #1: Install and activate WooCommerce Product Table

Get the WooCommerce Product Table plugin. You'll find your license key in the confirmation email.

Next, head over to Plugins → Add New from the WordPress dashboard and upload the plugin’s zipped file to your site. Click the Activate button.

Navigate to WooCommerce → Settings → Products → Product Table. Copy and paste the license key from the confirmation email into the License Key input field.

Activated license key

Step #2: Configure the Product Table settings

Once you've activated the plugin to your WordPress website, head over to its Settings page to configure various options. You can modify the bookings table to make it look the way you want it to appear on your site's front-end. At the bare minimum, you'll want to set Columns. This will let you decide which columns to display in the table layout. For example, you can set this to image,name,description,price,add-to-cart.

Here's a complete list of available columns for WooCommerce Product Table and a detailed explanation of the different options available in the Settings page.

Important! Make sure you do not tick the 'lazy load' option on the WooCommerce Product Table settings page. WooCommerce Bookings only works with non-lazy loaded tables.

Step #3: Create your bookings and appointments page

By now, you've installed and activated the WooCommerce Product Table plugin to your WordPress website and configured its settings. Next, we'll create a bookings and appointments page for customers to book products and appointments.

Navigate to PagesAdd New from the WordPress admin panel and create a new page for accepting bookings and appointments. Your customers and clients will be able to use this page to select view bookable products, see pricing, book slots, and add bookable products to the cart.

Once that's done, simply add the shortcode [product_table] to the text editor. This will create a single bookings table on your site's front-end. If you offer different types of services, you might consider creating a separate table for each type of service. You can do this by using the shortcode [product_table category="category-slug"]. (This also works for different product types.) This will display all bookable products from the relevant category.

Click the Publish button and preview the page on your site's front-end. It might look something like this:

Preview of WooCommerce Bookings integration with WooCommerce Product Table

Bonus tip - Sell extras with your bookable products

WooCommerce Bookings makes it easy to sell appointments or other bookable time slots in WordPress. You can increase your average income per booking by selling extras at the same time.

For example, if you're selling massage appointments then you may want to offer optional extras, such as skincare products or massage oils? You can do this with WooCommerce Product Add-Ons, which integrates seamlessly with both WooCommerce Bookings and WooCommerce Product Table.

For more information, be sure to check out Best WooCommerce Product Add-Ons (And How to Use Them).


Having a robust WooCommerce booking plugin allows you to easily accept, manage, and track customer and client bookings directly through your WordPress website. You can create bookable products the same way as you would in WooCommerce. Once you've created bookable products, you can set costs and availability and start accepting bookings right away!

The WooCommerce Bookings plugin also integrates with the WooCommerce Product Table plugin allowing you to create a searchable, sortable bookings table with filter options. This makes it easy for customers and clients to:

  • View all of the services (and corresponding booking period) you offer at a glance.
  • View bookable product information (image, description, pricing, and available date in a calendar view) without having to click through to the single product page.
  • Book multiple products (or services) and add them to cart in one go.
An easy-to-use plugin for listing WooCommerce bookings and appointments in a front-end table layout.

What are some of the features you look for in a WooCommerce booking plugin? We'd love to hear from you so let us know in the comments section below!


  1. Ben
    April 10, 2020 Reply

    Hi Maria,

    Thanks for your detailed article.
    Those are good plugins you've listed!
    I just wanted to extend that list with a new free booking plugin I've been working on: Wappointment

    The idea behind it is for it to work for 90% of the users out of the box with the most vital booking features. (Frontend Booking Form, Email reminders, Backend Calendar, Calendar Sync) And then extend away with addons based on needs. We're only at the start of our journey, but I hope you'll check it out!

    • EJ
      April 18, 2020 Reply

      Hi, Ben. Thanks for the info about Wappointment. Please may I know if you've tested it with WooCommerce? I checked out the site and fail to find any mention of it working with WooCommerce and so may have missed it somewhere. Thanks!

      • Ben
        May 23, 2020 Reply

        Hi EJ,
        Sure we actually have created an addon playing nice with WooCommerce.
        Don't mind the price of the addon, it is actually free at the moment, you just need to contact us if you want to try it. But don't wait too much, cause we won't give it away for much longer :)

        • EJ
          June 1, 2020

          Hi, Ben. Thanks for your reply and the link to your plugin's add-on for using it with WooCommerce. I appreciate it and users can try/test our WooCommerce Product Table plugin together with yours on their sites.

          If you guys would like to do the same yourselves, to test for compatibility, please let us know by getting in touch via our Support Center. I look forward to hearing from you.

Please share your thoughts...

Your email address will not be published.