While WooCommerce supports selling tons of different products, from music files to lumber or other freight items, there are some niche products that require extensions to sell. For example, you can sell products with recurring payments, sell based on measurements, or sell access to content restriction by extending what WooCommerce offers. The extensibility of the platform makes it a good choice for many kinds of stores, but tracking down the right software to use can sometimes be tough for new users.
Table of Contents
- Overview & Costs
- Setup & Usage
- Ease of Use
- Manually Creating Bookings
- Managing Bookings
- Customer Experience
- Support & Documentation
- Other Comments
The WooCommerce Booking & Appointment plugin creates the ability for WooCommerce shops to sell products that require timed appointments or dates, such as tickets, concerts, appointments, rentals, and more. Without a plugin like this, scheduling with WooCommerce isn’t possible.
The plugin allows you to set options for bookable products as well, such as time slots, limited availability for slots or days, blackout dates, and support for variable WooCommerce products create a complete WooCommerce appointment scheduling solution.
Pricing is from $119 to $249 depending on the license type needed, and there are demos and documentation available to help out with pre-sales questions. The frontend demo is here along with a backend demo available for testing. Users will also get renewal discounts, as licenses expire after one year.
There are also several useful add-ons available, but this review will focus on the core plugin and it’s ability to create a WooCommerce booking & appointment scheduling system for your store.
Set up and installation is very simple, as you won’t have to hunt for settings pages or options. The plugin adds a Booking menu where you can set up the basic options, such as the theme for your calendars on the frontend:
You’ll also set up other global options (documentation here), such as store holidays or blackout dates. The blackout dates are very useful for scheduling WooCommerce appointments, as you won’t have to worry about customers choosing dates that you’re closed, unavailable, or on vacation.
You can set global time slots as well, which will be shared across all products in your store, and set one of 62 different languages available for your calendar.
The next tab in this menu will let you can set custom labels for the beginning and end dates of your appointments (i.e., “Check-in Date” and “Check-out Date”), which can change based on the page being viewed (i.e., product or cart pages).
The Booking menu also has space for you to view, manage, or export your booking, as well as space for you to enter license keys. Once you’ve set up these options in the main menu you can move right into creating your booking or appointment products.
The WooCommerce Booking & Appointment plugin adds a new meta box to product pages where you can enable bookings and create bookable product options. This box supports all booking or appointment settings, so you’ll only need to use it when creating a bookable product. I would have preferred to see this as a new product type, but enabling all options in the meta box is still easy to do.
When you create a simple or variable booking product, I’d recommend setting it up as a “virtual” product so that you don’t have to worry about shipping information for the product. You should also think about selling your product individually. For example, if you’re selling a single room at a bed-and-breakfast, you don’t want customers to increase the quantity above one. In this case, I’d make sure you enable “Sold Individually” to disable quantity as well.
Let’s run through some sample use cases to describe how to set up some bookable products so that you can create your own WooCommerce appointment scheduler.
Sell Hotel Bookings with WooCommerce
Multi-day bookings are possible with the WooCommerce Booking & Appointment plugin, and I was able to set one up in about 4 minutes. Enabling “Allow Multiple Day Booking” will create fields for start and end dates on the frontend.
You can also limit the number of bookings that can be made on a date, which can allow for a type of “stock” management for your bookings. For example, I would set this to the number of available rooms to limit reservations on those dates.
The “Number of Dates to choose” lets you determine how far in advance customers can book, which will affect how many dates are displayed on your calendar when customers select their date ranges. You can also set blackout or holiday dates so that customers cannot book on these dates.
Once my multi-day booking was set up, I added the rest of my product data (such as variations and pricing), and was ready to go. Be sure to enter your price as the “per night” or “per appointment” price, and the total for the reservation will automatically be calculated.
Sell Concert Tickets with WooCommerce
You can also allow customers to book a specific date or day with the WooCommerce Booking & Appointment plugin. This is really handy for tours, events, or other bookings that don’t require time slots, but only need a day or date. This product type took me about 4 minutes to set up as well.
If you don’t allow multi-day bookings, you’ll need to determine what format to use: specific dates or weekdays. Since we’re using a specific date here, I chose “Specific Dates” and enabled all dates for my bookable product (the dates of the concert).
The same rules apply here – you can set a maximum number of bookings for each time period (in this case, a date), the time in advance for bookings to be made, as well as the number of days bookings are available. This product type is also very easy to set up, as you can enable these basic settings and don’t have to worry about any other tabs in the bookings meta box.
Sell Appointments with WooCommerce
If you’d like to sell appointments on certain days, you can do that as well. They can be available for the entire day, or in time slots. Let’s set up the WooCommerce Booking & Appointment plugin to sell appointments on weekdays with certain time slots. This kind of product is more time-intensive and difficult to set up. To set up a full week schedule of hour-long appointments took me about 13 minutes.
You’ll enable booking, and select a “Recurring weekdays” type on the days for which appointments are offered. This naming was a bit odd to me at first, but basically it will recur each week to allow you to offer the same slots week after week.
Once you’ve set up your days, you’ll need to create the available time slots, then limit the slots if desired. Let’s start by adding a couple of time slots.
Once you create these time slots and update your product, they’ll be moved to the “View / Delete Booking Dates, Time Slots” tab in the bookings meta box. From this tab, you can view or remove (but not edit) any slots, as well as view the maximum number of slots available.
When customers visit a product for which they can make an appointment, they’ll need to select an available day, then a dropdown will be available for them to select an available time slot.
Sell Vacation Rentals with WooCommerce
Many beach homes are rented out to visitors on a weekly basis, which requires you to create a “block” for rentals. The WooCommerce Booking & Appointment Plugin will allow you to create blocks for multi-day rentals so that you can sell bookings that require a fixed number of days.
When you create a bookable product that allows multi-day bookings, you’ll be able to Enable a Fixed Block Booking. This will force blocks to be booked rather than allowing a user-defined number of days for the booking. This product took about 5 minutes to create.
You’ll go to the “Fixed Block Booking” tab to enable this and add any block ranges, including the number of days, as well as the starting and ending days, along with pricing. For my week-long vacation rental, I chose 7 days from Sunday to Sunday.
Once this has been enabled, customers will only be able to book the specified blocks on the starting and ending dates. In my case, customers could only choose Sunday for the start and end dates.
Sell Volume-discount rentals with WooCommerce
If you’ve ever rented a space on popular apartment rental sites like AirBnB, you’ll sometimes get discounted pricing for staying in a rental for longer periods of time. You can set up these rentals with the WooCommerce Booking & Appointment plugin by using the “Price by range of days” tab.
Again, a multi-day booking should be enabled to be able to price by range. Once you’ve set this up, you can begin to set up your price ranges, making sure not to overlap the number of days (for example, ending one range with 7 days and starting the next with 7 days – it should start at 8 days instead). Setup will take about 5-6 minutes.
You can also use a fixed price instead of a price per day/night for month-long rentals.
Once you’ve created your pricing ranges, I’d recommend adding these to the short description or somewhere else on the product page, as customers will not be aware of them unless you post this information somewhere. This will encourage your customers to purchase longer bookings for a discount.
While using the plugin as an appointment scheduler is great, you may also need to manually create reservations if you allow booking via phone or email. Fortunately, there’s a really helpful document for this, and it’s pretty easy to do.
When you create a manual booking, you’ll have to create a new WooCommerce order to do so. You’ll then want to add the appropriate bookable product to the order by clicking “Add Line Items” and “Add Product(s)”. Select your bookable product to add to the order, the click the pencil icon to edit it.
So far the product has been added, but none of the booking details. We’ll need to click the “Add meta” button to do so. This will automatically display any associated meta for us to add. In this case, it will be the “starting date”, which is the date of my event.
Once you add the booking information and click “save”, you’ll need to finish with the order details. If this bookable product is taxable, you’ll want to click “Calculate taxes”, and then calculate the order total. This way, customers will be able to log into their account and pay the order from your shop. If they’ve already paid via phone, you can also set the order as “processing” or “completed” to note this instead.
Once you’ve finished adding all booking details manually, you can save your shiny new booking order, which now has all relevant details for your customer and will also ensure that this is considered in the availability of this product (if you limit bookings for a date / time).
That’s it! It’s pretty simple to manually schedule appointments with WooCommerce if customers don’t complete your on-site checkout process. One thing I would do as an admin would be to add an order note that the booking was created manually with relevant information about the order. This way, you have a record of when and why the order was created.
Customers will be able to book an appointment or time block via the standard WooCommerce checkout flow when you use the WooCommerce Booking & Appointment plugin. Once the booking data has been selected, the customer can add the product to the cart. The booking data is saved as item meta, and displayed throughout the checkout.
Following checkout, customers can review booking data, as well as download booking information in an .ICS file to add these details to a calendar application (such as Google calendar). This information will also be included in the order confirmation email so that customers have all of the information they need and can save the email.
Customers can also easily find available bookings by using the WooCommerce Bookings Availability Search widget. You can enable this widget and set up labels under Appearance > Widgets. For example, you’ll probably want a title similar to “Search Available Reservations” or “View Available Appointments”.
Customers can then select date ranges to search, and any products that are available in this date range will be displayed to them in the search results.
Once an order is completed that contains a bookable product, this information will be displayed within the WooCommerce order page for easy reference.
If you want to free up this booking slot, you can delete the item from the order. You can also edit the order to adjust bookings as needed.
The plugin also provides a view for all bookings under Booking > View Bookings. This view will list all available bookings, including the dates and times for each appointment.
Shop admins can also view appointments or bookings for the current day, as well as export this information as needed. The ability to export booking data is a huge plus, as this will allow you to transfer your data to other systems or share it as needed.
The WooCommerce Booking & Appointment plugin has ample documentation available, which was very helpful while creating different kinds of bookable products. I referenced this for creating Price per Range and Fixed block products, which made setup easier. There are also “getting started” guides and video walkthroughs available.
Support is also included with the plugin purchase, and is available via forum. Users can log in and submit questions or issues, and are able to view other forum threads in case their question has already been answered. Email support tickets can also be submitted.
Support and update licenses are valid for one calendar year, and renewal discounts for existing customers are available. A 30-day refund policy is also in effect for new purchases in case you determine that the plugin isn’t the right fit for your store.
I would have liked to see bookings as a new product type, or a bit of a change in the product structure. Even if a booking is not enabled, the code for the booking product is run on the product page, which could potentially cause conflicts with other complex product types or affect site performance at scale.
There were also minimal issues while creating or saving booking options. For example, there’s no way to edit created time slots, and you can’t edit price ranges or fixed booking blocks unless the product has been updated after they were created.
However, the booking process and behavior on the frontend is reliable and really easy for customers to understand, which was a huge plus. I also really liked the ability to export booking data in a few different formats as needed.
The functionality that the WooCommerce Booking & Appointment plugin gives you is great, and it really opens up the opportunities for selling time slots, services, tours, or other bookable products with WooCommerce.
The ability to sell based on daily bookings or via time slots is awesome, and supports many sites that sell appointments or events. However, the ability to add per-range pricing and fixed-block bookings is my favorite part about the plugin. This really improves the flexibility of using the WooCommerce Booking & Appointment plugin to sell many types of appointment or bookable products, and gives you a complete solution as a WooCommerce booking & appointment scheduler.
You can give the plugin a try by purchasing here: