3 ways to use WooCommerce to take bookings for courses & events

Before we switched to selling plugins, clients often asked us to build a WordPress e-commerce website with a WooCommerce online shop AND bookings for courses or other events.

There are lots of reasons for wanting this sort of WooCommerce events website. Your company may organise events and also sell products or equipment relating to these events. You may be a training company who sells courses directly as well as gift vouchers which can be redeemed against your courses. You may be a membership website for a specific industry, selling WooCommerce products and events to support your members.

With millions of websites using WooCommerce according to the latest usage stats, plenty of websites fall into all these categories.

I'm going to tell you about three of the best WooCommerce event and booking products, with advice on how to choose the best one for your specific requirements.

How to use WooCommerce for course & event bookings

A lot of WordPress web designers meet the above requirements by installing two standalone plugins - WooCommerce for selling products, and an events management or booking plugin for selling courses/events. We've had lots of clients whose WordPress events websites work in this way.

The downside is that your users have to buy products and pay for them in a completely separate process from booking events. For example, we saw one website used WooCommerce to sell products and Events Manager Pro to sell events. Customers would use the WooCommerce shopping cart and checkout to buy products. They would then have to book each event individually by completing a booking form and clicking a PayPal button. This created a disjointed experience for customers. It also missed out on opportunities for increasing sales by cross-promoting products and events.

I will show you three ways to design a WordPress e-commerce website that sells products and courses/events using WooCommerce. Both methods use the standard WooCommerce cart and checkout, allowing customers to add products AND book a course/event at the same time. Your customers can pay for products and events in a single transaction. This creates a seamless experience that maximizes your sales.

Each of these methods use WooCommerce, as this is the best WordPress e-commerce plugin and has all the features that most websites need. It also has plenty of extensions and other plugins to meet more unusual requirements. And surprisingly it's free, too!

WooCommerce is clearly the best option for the e-commerce side of your website. This means that your main decision is how to extend WooCommerce to take bookings for courses or events in a single checkout process. Which option to choose depends on how you organize your events.

Method 1 - A WooCommerce product with a date picker (the easy option)

Add date picker to WooCommerce product for training course product

Let's start with the simplest option which will only take you a minute to set up.

The plugins that I'm going to feature in Methods 2 and 3 are designed specifically for selling events in WooCommerce. In contrast the plugin in Method 1 is something different - a product add-ons plugin!

The WooCommerce Product Options plugin lets you add a wide range of extra options to any product. You can add a date picker field to any product, and optionally enable a time picker. It also lets you add a range of additional options to your WooCommerce events, such as choosing a ticket type or lunch options.

If you have simple requirements (and limited time) then WooCommerce Product Options is an excellent way to set up WooCommerce events. That's because purpose-built events plugins tend to be very complex. They can be difficult to set up and customize. With WooCommerce Product Options, you simply add a date picker field to your existing products.

Your customers can easily choose a date and time slot for the event they want to book. You can even disable past dates in the calendar, specific dates or days of the week, and block dates when the event isn't running. That way, you can ensure that customers only book for available dates and times.

If you're looking for a simple and easy way to take event bookings in WooCommerce, then the Product Options plugin with a date picker field is the perfect solution.

Method 2 - WooCommerce with Events Calendar and WooCommerce Event Tickets Plus

The Events Calendar (free), Event Tickets (free) and Event Tickets (paid-for) are designed to work together alongside WooCommerce. The Events Calendar allows you to add events to your website. Event Tickets lets people register for your free events. By combining them with Event Tickets Plus and WooCommerce, you can sell places on your events using the WooCommerce shopping cart. This lets you create a fully functional WooCommerce online store with event bookings.

If you need a more fully-featured events management system then upgrade to Events Calendar Pro, the paid version. This has various extra features, for example calendars that you can display in the sidebar throughout the website to promote your events.

Pros - The Events Calendar/Event Tickets/Event Tickets Plus are created by StellarWP, a reputable WordPress company. The events plugins provide a wide range of features. It lists upcoming events (which can be filtered by category etc.). There are calendars showing the dates of your upcoming events. It really is a complete event management system. They are designed to work with WooCommerce and are fully tested with it.

Cons - To create a course or event using this method, you have to add each date as a separate event. This creates some extra work for you. For example, if you run the same event on multiple dates then you have to add it separately for each date. If you take our online course on how to create a website using these plugins then I'll provide some tips on how to create your events more quickly.

Method 3 - WooCommerce with WooCommerce Bookings

WooCommerce Bookings is a paid plugin that works alongside WooCommerce. It lets you add each event as a bookable WooCommerce product. You can add multiple dates for each event. Customers can add products or events (i.e. bookable products) to their cart and pay for everything in a single transaction.

Pros - This method makes it easier  to create and maintain events because you only have to create each course once, and can assign multiple dates to each event. Both plugins are owned by Automattic, the company behind WordPress.com. This means that the plugins are fully tested together and you're not taking on the risks that come from combining plugins by third parties.

Cons - There's no built-in option to display all your upcoming events on a single calendar. Each individual event has a calendar showing the available dates, but there is no overarching calendar showing all your events together. Instead, you can list the course names and customers have to click on a course to view the available dates.

Can I create a calendar of all my events with WooCommerce Bookings?

As I said, the plugin doesn't have a built-in option for this. If you need a central calendar then there are options for you:

  • Use method 1 instead (i.e. WooCommerce with Events Calendar plugin), or;
  • Use Google Calendar integration to show all your bookable events on a Google Calendar, embedded on your website. This won't look as integrated/professional as the Events Calendar plugin's central calendar, but it is a way to show all events with WooCommerce Bookings.

The exact features of your event bookings will depend on whether you use method 1 or 2. Both can be implemented in a way that allows your customers to choose a date, book a course and pay via PayPal or another payment method such as Stripe. (Or you can continue taking manual payments, if you prefer). Customers will be able to purchase gift vouchers and courses in a single checkout process, creating a seamless user experience.

Expert tip #1 - Sell membership at the same time!

A lot of WordPress membership websites sell products and/or events. If you want your customers to be able to purchase membership at the same time as products and events then this is possible too!

To achieve this, there are 2 great options:

  1. Combine the free Groups plugin with Groups for WooCommerce. This allows you to create a 'Membership' product (or more than one, if you want different membership levels). Customers can buy membership in the same way as other products and events.
  2. Use the WooCommerce Memberships plugin. This is very similar to Groups with some subtle differences. Check out this comparison table from WooCommerce to decide which is best for your WooCommerce membership site.

Once a customer has purchased your 'membership' product, you can create members-only pages on your site. You can restrict these to the relevant membership group or membership level.

And if you're being really clever, you can use the Dynamic Pricing plugin to give discounts to your members! Create different discounts for products in each category, discounts for individual products - the sky's the limit!

Note: These membership plugins are compatible with either of the above methods for creating a WooCommerce event bookings site.

Expert tip #2 - Create a table of events with WooCommerce Product Table


WordPress password protected events table

Whichever WooCommerce events plugin you use, you can improve how your events are displayed by listing them in a product table. To do this, just install the WooCommerce Product Table plugin and use it to list your event products.

This is particularly useful if you have large numbers of events and want to provide a more detailed database of upcoming events. It's great for sites with lots of events as customers can use the search box, sortable columns and filtering options to find events by category, tag, etc.

Choosing the right theme for your WooCommerce events website

For a professional website, it's important to make sure WooCommerce and the event plugins match the rest of your website.

You can achieve this by choosing a WooCommerce-ready WordPress theme. Its shop pages will be pre-styled to match the theme, helping to reduce your costs.

It's harder to find a theme that contains styling for events plugins. These tips will help you find a theme that looks great with The Events Calendar plugins:

  • Storefront is the official WooCommerce theme. It's lightweight, easy to set up and will work with events and booking plugins. The main Storefront theme is free and if you don't like the design, you can use it with a free or paid child theme.
  • Avada and Enfold are popular themes designed to work with WooCommerce and The Events Calendar plugins. They're hugely flexible and can adapt to work with most brands and colour schemes, without needing to write any code - so check these out first.
  • To find other themes designed to work with WooCommerce and The Events Calendar plugins, go to the WordPress section of ThemeForest. Scroll down and find the 'Compatible with' section in the left column. Select 'WooCommerce' and 'Events Calendar' to find themes that work with your plugins.

If your theme hasn't been tested with these plugins, you might need to do some custom styling to make the WooCommerce and event pages look good.

Take our online course on WooCommerce Course & Event Booking Plugins!

WooCommerce Event Booking Online Course

This article is one of the most popular on our site. It has helped many people to create a course or event booking website with WooCommerce.

We have now created an online course to take you through the whole process of building an events site with WooCommerce.

The course focusses on using The Events Calendar suite of plugins with WooCommerce. You'll learn how to create a fully functional events site.

In the course, I'll talk you through the different plugins to help you choose the right combination for your site. I'll teach you how to set up each plugin and get the most from them. Along the way, I'll provide lots of advice and tips on how to maximise the income from your WooCommerce events site. And finally, I'll show you how to test your website, fix any problems and where to get support. I'll even share the famous Barn2 Media go-live checklist with you.

What is the best WooCommerce events plugin?

In conclusion, WooCommerce provides several options for taking bookings for events, each with its own strengths and weaknesses.

If you want a simple and easy-to-use solution, the WooCommerce Product Options plugin with a date picker field is an excellent choice. This plugin allows you to add a date picker field to any WooCommerce product, and you can customize the field with various options to suit your needs. It's an ideal solution for businesses that want to take bookings for events without the need for advanced features.

On the other hand, if you need a dedicated event calendar with advanced features, the Events Calendar plugin is a great option. It provides a complete calendar system for your website, allowing you to create and manage events with ease. This plugin is perfect for businesses that want to create a comprehensive event calendar with ticketing and registration features.

Finally, if you need a powerful booking system with advanced features like resource management, scheduling, and appointment reminders, the WooCommerce Bookings plugin is the way to go. It provides a robust and reliable solution for businesses that need a complete booking system.

In summary, here are the three plugins discussed in this article and when to use them:


  1. We have a requirement for a tours booking system.

    The tours will occur on fixed dates throughout the year. For example, 1st August 2023, 15 Septemeber 2023.

    The tours must be dispalyed in a format similar to https://panamarelocationtours.com/book-tour

    If the tour is more than 30 days away then it will be possible to pay 25% of the cost of the tour in advance. If the tour date is less than 30 days away then payment must be made in full.

    For bookings where a deposit was possible, a reminder must be sent out shortly before the 30 day date with a link to pay the remaining 75%.

    The tour detail (product) page must have a flexible layout not the fixed Woocommerce product page.

    Can your plugin handle these requirements?


    • Hi, Mike. Thanks for your interest! The plugins featured in our article allow you to take bookings for tours. The requirement that you describe needs a function that's no longer a function of a booking plugin, and instead has to do with a conditional payment option in WooCommerce itself that's based on the time remaining before the event/tour/product date. This would need either a conditional payment options plugin or a customization. I suggest you contact official WooCommerce Support for the best advice about this. I hope this makes sense and helps point you in the right direction.

  2. Hi,
    I have just skimmed through your Udemy course (recommend to others) as I wanted to check out whether this approach would work for our site. I have several questions remaining:
    a) many of our clients are businesses who want an invoice rather than being forced to pay with a Credit card. Is this possible?
    b) you offered to show some shortcuts on Option 1 where there are multiple events per course but I did not see how to do this on the course
    c) if I have to use Option 2 for multiple dates on 1 course is there a way to get the delegate details as well as the booker details as these are often different (I can see that you can do this with Option 1)
    d) we want our bookings to be integrated with Xero - our accounts system. I see there is a plugin for WooCommerce that does this. Do you have any experience with this plugin?
    e) In your course (Option 1) people buy 'tickets' onto the course. In the training industry these are normally referred to as 'delegates' or 'places' - can this be changed easily
    Finally do you offer consultancy in this area as this looks a very exciting option for us compared to our current booking system which is expensive and quite inflexible

    • Hi, Ron. I'm sorry for the late reply and thanks for reaching out to us via your comment. As I see that you have a number of questions and a few might require lengthy replies, please could you submit these via our dedicated Support Center so that we may best address your concerns. Thanks in advance!

  3. Hi Katie

    As per Lisa's question above, can you please explain how I would show upcoming available dates in WC Products Table for bookable products (courses)? What do you mean by adding each one as a variation? I'm using WC Bookings extension.

    Does the WC Products Table plugin also allow for showing a list of 'pre-filtered' products? I basically need the ability to select any course category via main menu and then go to a list of all upcoming courses just for that category. The user would then have further filtering options such as venue, course category, month.

  4. Hi, I'm running an after school activity center in which the kids are divided into classes or groups on a term or semester basis. Each class can only have a certain number of kids and the kids usually stay with us for many years in the same class/group.

    I'd like to create a booking system where a parent or guardian can sign up a child and pay for the course (upfront or on a monthly basis) and to have a new bill sent out a few weeks before a new term begins. It would also be great if I could get an overview of the students in each class and their parents/guardians.

    Can I accomplish this using the plug-ins in the post or are there other solutions more suitable for off-line schools/courses?

    Thanks for any help and advice you can offer.

    / Johan :)

    • Hi, Johan. Sorry for the late reply!

      As far as using WooCommerce to handle the e-commerce functions (selling online) AND bookings for your courses (via the plugins we mention), the above methods are our best suggestions/solutions for you. I hope the pros and cons discussed will help you with insight to decide which way is best for you.

  5. Hi Katie,

    Im looking to upgrade a website so training courses can be booked and paid for. Each course can be one day at a time, some in blocks. Each course has multiple different locations. All have a max compacity. Is this something woocommerce booking can handle? Can a search facility be included on the home page? Can wordpay be intergrated for payment?

    • Hi Lisa, yes you can do this with WooCommerce Bookings and you can list the bookable products in a table with WooCommerce Product Table. Customers can click through to the single product page to view the calendar and book each course.

      You can set up each course to be 1 day long and add blocks and the number of available places. I recommend creating a separate bookable product for each location because you can then filter by location when you list the courses using WooCommerce Product Table, so that students can easily find courses at the location most convenient to them.

      If you list the bookable products using WooCommerce Product Table then a search box will appear above the table so that people can easily find courses. You can include the list of courses and the search box together on the homepage.

      There's an official WooCommerce Worldpay extension that you can use with this setup.

      • Hi Katie,

        Great thanks for the info. Ive created a search on the homepage for users to quickly find a course. I need to add a postcode search too so courses nearby are shown in results based on the course they have selected.

        Can this be achieved?

        • Which plugin are you using for your events? If you want to list the available dates as a table then you could add each one as a variation, and list them using our WooCommerce Product Table plugin in the product description or short description.

        • Hi Lisa, you would need to research WooCommerce postcode search plugins and hopefully something would come up - this isn't a feature of any of the plugins in this article. Alternatively, you might need to add it as a bespoke feature.

  6. Hi
    Do you know witch plugin allow me To sell Event with seat map sélection and is compatible with WC booking?

    I use a marketplace plugin (dokan or wc marketplace) so i think it s better To use WC booking for compatibility...

  7. Hi Katie,

    Thanks for your great article.
    I'm wondering if I could use one of these methods for my event website.

    1. we are organising a Rugby tournament and need a plugin that will allow the Captain/Manager of each team to fill up detailed info for each team players (first and last name, email, date of birth, phone). So if he is registering 1 team with 15 or 20 players, he will have a form with 15 or 20 people to complete. As for himself, he will have a couple more info to complete such as his home adress for exemple.

    2. will the Captain be able to come back later on, and log in to his account to fill up some missing info about his team?

    Thanks in advance for your reply

    • Hi Grace

      If you use The Events Calendar plugin then you can use the extra registration fields that come with the Event Tickets Plus add-on to add those extra fields. I'm not sure how the page would look if you add that many fields, so you might need to add some custom styling! I don't think it's possible for the customer to login again later to change the attendee details, you would need to develop that as a bespoke feature.

      If you use WooCommerce Bookings then you could use the Product Add-Ons plugin to add the extra fields. The styling issues I mentioned for the other plugin, and the inability for customers to edit thier information later, would equally apply if you used WooCommerce Bookings.

  8. Hi Katie,

    Thank your for this post and the detailed explanations!

    Do you know, if it is also possible to sell something like passes? So the client can buy a 10 time pass and can then attend to 10 events/courses/classes? Let's take the following scenario:

    A yoga studio offers different classes every week (=events) and the clients could buy a drop in ticket for only one class or they could buy a "10 class pass" and can book 10 classes over the next couple weeks.

    If it is possible which of the described methods would fit better and if not possible do you have any hint how to solve this case?

    Thank you very much for your help!


    • Hmm, that's a tricky one because it's not at all how WooCommerce works. I haven't seen anything off-the-shelf that can do this. You could create a '10 time pass' product in WooCommerce. Once people buy it, you can manually send them a 100% off coupon codes which they can use to book 10 courses (there's an option that you can use to restrict the number of uses for each code). This would work with either of the events systems described in this tutorial, because the events are just WooCommerce products.

      • Thanks for the fast reply!
        The coupon was a good hint! I found the "Smart Coupons" Plugin. It allows you to link a coupon with a product and to give a coupon to customers who purchase a specific product. So it is completely automated! :-)

  9. Thank you so much for your reply. You've been very helpful.


  10. Hi Katie,

    Thank you for your very useful article.

    I'm setting up an online Sports Camp booking system with an online shop (a limited number of camps are available each summer - all are individual events and the shop has a small number of products available to purchase). It looks to me as if Method 1 (Events Calendar/Tickets Plus) would be suitable.

    I need a user to be able to add products and bookings to the shopping basket BUT also the user needs to be able to book potentially more than 1 place and complete a detailed booking form for each person attending the camp before completing the payment process.

    2 questions:

    Will Method 1 will allow me to do this?
    If so do you cover setting this up in your online course?

    Thanks, Rebecca

    • Hi Rebecca, yes I can confirm that Method 1 lets users book multiple places on each event. If you upgrade to Events Calendar Pro then you can add 'Additional Fields' to the event booking form, which lets you collect the extra information you need. My online course covers setting up Events Calendar and Tickets Plus, but doesn't specifically go into Events Calendar Pro. If you're using Pro then everything in the course is still relevant, but you will see some extra options on the 'Add Event' page where you can add these extra fields. They're pretty self-explanatory so you will be fine.

  11. Hi Kathi,
    I’ m wondering if the following scenario is possible to set up with one or the other plugin/extension you mentioned in your perfect article above.
    I would like to sell my Watersport -and Fitness classes/lessons/courses using a booking-tool or something else together with WooCommerce.

    1) Individually bookable per hour on specified dates. Predefined on Backend. e.g. SUP-Basic-Course

    2) Ongoing classes, each once a week. SUP-FIT or SUP-YOGA

    3) Courses which takes place on two consecutive weekends. Every third Weekend a new Course starts.

    4) Courses available as a package. For example, 1, 3, 10 hours.

    5) Once or twice a week with 8 or 16 appointments, 2 months.

    Not beging sure if it’ s here the right Place for this special Questions I’ m hoping to get some advices from you.
    Thank you in advance, Andreas

    • Hi Andreas, WooCommerce Bookings is definitely the most suitable out of the 2 plugins featured in this article, as it's about booking individual appointments rather than selling places on events. I recommend that you send that list to WooCommerce Support so they can advise on whether it has all the
      exact features you need.

      • Hi Katie, thank you for your extremely fast reply.
        So I'll contact them to find out.

  12. Thanks for the post. I want to create an online course booking system in my WordPress website. Will you course cover this? I need it to have the ability to add multiple student details at the time of the booking and also to show the number of seats left.


    • Hi Anu, yes the course covers the full process of creating an online course booking system with the Events Calendar plugins. With these plugins, students can book as many places as they like. There's a setting to show the number of available places on the single event page.

  13. Thank you so much for this post! I was really confused between those 2 plugins...

    I believe though, there's a a way to show a centralized calendar of all events with WooCommerce Bookings. I still have not tried it yet, but I'd love your opinion.

    There's a Google Calendar integration for WooCommerce Bookings, so I imagine you can sync all your events to a Google Calendar and then Embed the calendar in a public page. Do you think that's feaseable?

    • Hi David, wow, I hadn't seen this Google Calendar integration - thanks for letting me know! I will update the article to include this.

  14. Thank you for sharing this. I am trying to find the best way to present our upcoming training courses / seminars and events and I am still confused on which of the 2 options is the best. We offer live seminars in several cities/countries and soon plan to add online courses. we need to have a way to present those centrally in page where users can then filter by country / city / region or by topic / subject and then click or select the ones that they want to go to the seminar/product dedicated page. it would help a lot if you can share a demo of both solutions so that to be able to decide.

    • Hi Fah, if you want to list your upcoming courses/events centrally then you need The Events Calendar and not WooCommerce Bookings. WooCommerce Bookings doesn't provide a central list in this way. The Events Calendar comes with several views for listing events. If this isn't enough, then check out our tutorial on how to list events in a table with extra filter options etc. - barn2.com/events-calendar-table-list/.

  15. how on earth doesn this line applies to the methods you provided above - "And surprisingly it’s free, too!"

    I just want to create 1 event which will be happening in october and there is no free or affordable solution for me to work with.

    • Hi, the Events Calendar and Event Tickets plugins are free and you can use them to create an event that is happening in October. There's no free version if you want to take payment for bookings, though. If you're taking payment for events, then I would say that paying for Events Tickets Plus is perfectly reasonable and affordable!

  16. Hi,
    I decided to follow your advice for option 1. Does your class mention how to customize emails by WooCommerce? I am receiving confirmations that are misleading for digital tickets.
    Let me know,

  17. You have shared really useful Plugins for Booking. I also would like to share one booking related plugin- All in One Reservation. which is powerful plugin for reservation management system. It has all the necessary features and functions needed for a reservation management plugin.

  18. Hi, thanks for the review
    I'm a tourist guide and i'm going crazy to find something working with woocommerce
    I just need a calendar in which i can display my bookable activities (guided tours-events) and people can choose and book the activity they want until there are free places (i need a maximum bookable number).
    This calendar has to be syncronized with my woocommerce shop where i sell my guided tours The customer must be able to see if there are upcoming tours and clearly , being the only guide in my company, if someone books for a tour on a X date, that date must turn into unavailable to others.
    After 3 days searching for something i still can't find a solution. Main problem is that most plugins has calendars which are not integrated with woocommerce and on the other side (as woocommerce booking and appointment plugin by tychesoftware) every event has his own calendars that cannot be syncronized with the others...
    Any suggestion?
    thanks in advance

    • Hi Alex, I understand your problem. As far as I'm aware, all of the off-the-shelf plugins that synchronise with WooCommerce have a separate calendar for each event rather than over-arching calendars for the whole site. You would need a bespoke booking plugin integrated with WooCommerce which will allow you to achieve your exact requirements, but would obviously cost more than using an off-the-shelf plugin. We have designed bespoke booking systems which are built on top of WooCommerce - please get in touch with us if you'd like to discuss the options in more detail.

      • Hi Katie,
        Thank you so much for this post - I wished I had found it before I hired a web developer.
        What are your thoughts on WooEvents - a premium plugin that looks as good (or even better due to its affordable pricing) as compared to Events Calendar Pro and Events Ticket Plus?

        • An events system is such a big part of your website, I would personally go with a solution that is used on half a million websites (i.e. The Events Calendar) rather than a CodeCanyon plugin with under 1,000 sales, as it's likely to be better tested and is around for the long haul. However, that's just my opinion!

  19. Great review - Making both appointment 'products' and event 'products' is exactly what I'm trying to do. I'm leaning towards method 2, but I don't think it is compatible with the dominant payment gateway in my country.

    Do you have any experience with the recently launched Woocommerce Booking & Appointment plugin to tell whether it is also a solution to integrate events as Woocommerce 'products'?

    • WooCommerce is compatible with a wide range of payment gateways depending on your country. PayPal is the easiest option but there are plenty of other good options such as Stripe. If no plugin is available for the payment gateway you wish to use then you can ask a WordPress developer to integrate your chosen payment method with WooCommerce manually. (Note: The payments for your appointments and events will go through WooCommerce, not the events/bookings plugin).

      I haven't used the WooCommerce Booking and Appointment Plugin although we have bookmarked it to consider for our next project. It is very well reviewed by Chris Lema who is a well-respected WordPress expert, so it sounds like it's worth trying. Bear in mind that this plugin is designed more for appointments than events (as with WooCommerce Bookings, as described in Option 2 of the above article). It might work for your events, but you may have to make a few compromises regarding how the events work. This is probably inevitable as all the WooCommerce events/bookings plugins I have come across focus on one or the other, but not both.

      Let me know if you need any help with all this.

Please share your thoughts...

Your email address will not be published. Required fields are marked *