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

June 24, 2021

Important notice! In response to the popularity of this article, we've created an online course to teach you how to use WooCommerce to take course and event bookings

Before we switched to selling plugins, clients often used to ask 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 nearly 2 million websites using WooCommerce according to the latest usage stats, plenty of websites fall into all these categories.

I'm going to tell you about two 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 2 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 2 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.

Both 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 add-ons 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 - WooCommerce with Events Calendar and WooCommerce Event Tickets Plus

The Events Calendar (free), Event Tickets (free) and Event Tickets Plus (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 Tri.be, 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 2 - 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 Posts Table Pro

WordPress password protected events table

If you're using The Events Calendar plugins, you can display your events using the views provided with the plugins. These include events list and calendar view. And if you're using the Pro version, there are others such as map view.

If you have large numbers of events and want to provide a more detailed database of upcoming events, you can use The Events Calendar with Posts Table Pro. This is one of our WordPress plugins and lets you create an interactive table displaying all your events. It's great for sites with lots of events. Check our my article on how to use Posts Table Pro to display your events in a table.

Posts Table Pro
Create your own Events Calendar with Posts Table Pro!

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.

Sign Up to the Course


  1. Ron Orme
    October 17, 2019 Reply

    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

    • EJ
      November 22, 2019 Reply

      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!

  2. Alex
    August 20, 2019 Reply

    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.

  3. Johan Larsson
    June 13, 2019 Reply

    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 :)

    • EJ
      July 15, 2019 Reply

      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.

  4. Lisa
    February 26, 2019 Reply

    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?

    • Katie Keith
      February 27, 2019 Reply

      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.

      • Lisa
        March 4, 2019 Reply

        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?

        • Lisa
          March 5, 2019

          Hi Katie,

          Thank you! One more question, Honest! My head is a bit messy with categories, tags etc. Ive set up the locations as products. How would i then list all the dates available on the product page? I would like the listing to look like this with roughly the same columns.


          Thank you

        • Katie Keith
          March 6, 2019

          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.

        • Katie Keith
          March 5, 2019

          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.

  5. Christophe
    February 4, 2019 Reply

    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...

  6. Grace
    October 12, 2018 Reply

    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

    • Katie Keith
      October 12, 2018 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.

  7. Patrick
    December 12, 2017 Reply

    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!


    • Katie Keith
      December 12, 2017 Reply

      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.

      • Patrick
        December 12, 2017 Reply

        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! :-)

  8. Rebecca
    November 6, 2017 Reply

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


  9. Rebecca
    November 6, 2017 Reply

    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

    • Katie Keith
      November 6, 2017 Reply

      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.

  10. Andreas M
    October 28, 2017 Reply

    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

    • Katie Keith
      October 28, 2017 Reply

      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.

      • Andreas M
        October 28, 2017 Reply

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

  11. Anu
    October 26, 2017 Reply

    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.


    • Katie Keith
      October 26, 2017 Reply

      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.

  12. David Villalpando
    September 12, 2017 Reply

    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?

    • Katie Keith
      September 13, 2017 Reply

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

  13. Fah
    September 7, 2017 Reply

    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.

    • Katie Keith
      September 7, 2017 Reply

      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/.

  14. Omkar Hatalkar
    July 24, 2017 Reply

    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.

    • Katie Keith
      July 24, 2017 Reply

      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!

  15. TJM
    April 18, 2017 Reply

    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,

    • Katie Keith
      April 18, 2017 Reply

      Hi Tim, yes the 'Managing your Bookings' section of the course includes a lecture on editing the confirmation emails that are sent after a booking.

  16. Brad
    June 23, 2016 Reply

    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.

  17. alex
    April 20, 2015 Reply

    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

    • Katie Keith
      April 21, 2015 Reply

      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.

      • Jade
        September 9, 2017 Reply

        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?

        • Katie Keith
          September 9, 2017

          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!

  18. kerala
    March 11, 2015 Reply

    thanks for your time

  19. atmajyoti
    December 27, 2014 Reply

    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'?

    • Katie Keith
      December 29, 2014 Reply

      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.

  20. Bryden Carter
    October 6, 2014 Reply

    Thanks for your post. Very interesting and useful information on shopping cart.

Please share your thoughts...

Your email address will not be published.