WooCommerce Appointments: Set Up Online Booking
WooCommerce bookings appointment website interface displayed on a monitor with various appointment options. a blue ninja holding a schedule clipboard in the foreground.

WooCommerce Appointments: How to Set Up Online Booking for Any Service Business

Key Insights

  • WooCommerce appointments turn any time-based service into a bookable product. Clients book their own slot, payment processes at checkout, and confirmation goes out automatically. No front desk required.
  • The single biggest source of no-shows in appointment-based businesses is the absence of upfront payment. WooCommerce appointments with payment-at-booking close that gap at the point of confirmation, not after the fact.
  • Staff assignment in a WooCommerce appointment setup means each provider gets their own calendar, availability, and pricing. Clients choose who they want at booking, and the system manages the rest.
  • Appointment data and retail sales sitting in the same WooCommerce dashboard removes the reconciliation problem that standalone booking tools create. One record, one payment system, one customer history.

WooCommerce appointments are time-based services sold as bookable products inside a WooCommerce store. A customer picks a slot from a live calendar, pays at checkout, and receives confirmation automatically. The booking lands in WooCommerce as an order, alongside every other sale the store makes.

Most service businesses treat scheduling as an afterthought, a form bolted onto a website or a phone number someone is supposed to answer. The cost of that decision shows up later, as no-shows, double bookings, and a calendar nobody trusts. The booking system is not a convenience layer. It is the point where demand either converts into paid work or quietly disappears.

What follows is how the WooCommerce Bookings add-on handles it, where it breaks when configured badly, and why the WooNinjas WooCommerce Bookings Add-on covers the full workflow without a second subscription, for stores already running on WooCommerce.

The Problem with Manual Scheduling (and Why WooCommerce Fixes It)

Most service businesses start with a phone, an email address, and a notebook. That holds until volume outpaces the person answering. Then come the double-bookings, the missed reminders, the cancellations with no notice because no policy exists to prevent them. None of this is a discipline problem. It is what manual scheduling produces once demand crosses a threshold. The no-shows alone are not trivial: a 2023 review of 105 studies in the Israel Journal of Health Policy Research put the average healthcare no-show rate near 23 percent, and the same gap shows up wherever booking depends on memory and goodwill rather than a system.

Adding a WooCommerce Bookings plugin to the store changes the mechanism. Every service becomes a bookable product. Customers choose their date and time, see exactly what’s available, and confirm through your checkout. Payment happens at the point of booking. Confirmation emails go out without anyone sending them. The result is a proper order record in WooCommerce, the same as any other sale.

That last part matters more than people realise. When appointments run through WooCommerce, your booking data and your sales data live in the same place. One dashboard. One customer record. One payment system. No separate booking platform is eating into your margins.

What Does an Appointment System Actually Have to Do?

A working appointment system has to do seven things before it earns its place: show real availability, let customers choose a staff member, hold buffer time between sessions, block dates the business is closed, let customers cancel or reschedule within set rules, generate meeting links for virtual sessions, and report every booking in one view. Most tools handle three or four of these and leave the rest to manual work. The gap between “takes bookings” and “runs scheduling without supervision” is exactly those missing pieces.

  • Time-slot selection. Customers pick a specific date and time from your available slots. No guessing, no back-and-forth.
  • Staff assignment. If multiple people deliver your service, customers should be able to choose their preferred staff member, and the system manages their individual availability.
  • Buffer time. A gap between appointments to prep, reset, or travel. Automatic, not manual.
  • Blackout dates. Block off holidays, training days, or any period you’re unavailable, without touching every individual slot.
  • Cancellation and rescheduling. Customers handle their own changes from their account, within rules you define.
  • Zoom and Google Meet links. For virtual appointments, meeting links should generate and deliver automatically when a booking is confirmed.
  • Booking reports. A single view of every appointment across every service and staff member, filterable and searchable.

When all of those work together, your scheduling runs with very little manual oversight.

Why the WooNinjas Add-on Closes the Gaps Most Plugins Leave

The WooNinjas WooCommerce Bookings Add-on was built around that gap. It runs on WordPress, sits inside WooCommerce rather than beside it, and covers the full appointment workflow in one place. More than 5,000 businesses run it across healthcare, fitness, consulting, beauty, and professional services. Pricing starts at $79 per year for a single site, with no per-booking fee layered on top.

The plugin uses an Appointment booking type designed for time-slot scheduling. You set your working hours, define slot durations, add staff, configure buffer time, and set pricing. Customers see a live availability calendar on your product page, pick their slot, and check out. The whole flow works exactly like buying a product from your store.

For virtual services, the plugin connects directly with Zoom and Google Meet. When a customer books a virtual appointment, a meeting link is generated and delivered in the confirmation email, with no manual setup. You can read more about that in the WooNinjas Zoom and Google Calendar setup guide.

Some setups don’t fit the default path. A multi-location clinic, a salon with six stylists, a consulting firm where every advisor keeps a different schedule, these need configuration, the product editor alone won’t give you. The WooNinjas team builds those custom WooCommerce Bookings configurations to spec. Schedule a free call with a WooCommerce expert and describe what your scheduling has to handle.

How to Set Up WooCommerce Appointments Step by Step

A first WooCommerce appointment product is built entirely in the standard product editor. The steps below run in order, and the result is a live, bookable service on your store.

Step 1: Create the Bookable Product

Add a new WooCommerce product and set the product type to “Bookable Product.” In the Booking Options settings, set the Booking Type to Appointment. That switches on the time-slot interface and exposes the scheduling fields. Name the product after the service itself, something like “30-Minute Consultation” or “Haircut and Style,” since that name is what the customer sees at checkout.

Step 2: Configure the Booking Settings

Once the Appointment booking type is selected, fill in the following fields to configure the booking product:

  • Booking Title / Service Name (optional)
  • Start Date
  • End Date
  • Booking Duration
  • Buffer Time
  • Attendees Count (Min and Max fields; optional)
  • Assigned Resource / Staff (optional)
  • Auto-cancel pending/failed orders after 24 hours (optional)
  • Cancellation Threshold (hours)
  • Show Timezone on Booking Times (optional)

Location tab:

  • Location Type (physical or virtual)
  • Physical Location
  • Virtual Platform
  • Link Generation Type
  • Virtual Meeting Link

Availability tab:

  • Available Days
  • Available Time Range
  • Blackout Dates (optional)

Pricing tab:

  • Regular Price
  • Sale Price (optional)

Full configuration details are available in the WooNinjas Bookings documentation.

Where Every Booking Goes Once It’s Made

Once appointments start coming in, the Booking Reports section of your WordPress admin gives you a consolidated view of everything. Every WooCommerce appointment across every service and staff member sits in one place, filterable by customer, product, date, or order number. Each record shows the booking date and time, customer contact, product name, the platform (Zoom or Google for virtual appointments), status, and a direct link to the order.

That platform column is particularly useful for service businesses running a mix of in-person and virtual appointments. You can see at a glance which bookings have a Zoom or Google Meet link attached, and jump straight to that link if you need it.

For bookings taken over the phone or in person, the manual booking wizard lets staff create a proper WooCommerce order without the customer going through the front end. Staff select the customer, choose the product, pick the time slot and any add-ons, and set the payment status. The result is the same order record, the same confirmation email to the customer, and the same entry in your booking reports.

The Booking Reports dashboard shows appointment bookings with Zoom and Google Meet platforms, meeting times, status indicators, and order links.

Virtual Appointments: Zoom and Google Meet Built In

For virtual services, the Zoom and Google Meet connection does the part that people usually forget. When a customer books a virtual appointment, the plugin automatically creates the meeting and delivers the link in the confirmation email. There’s no manual step between “booking confirmed” and “customer has their meeting link.”

Setting up the Zoom connection involves creating an app in the Zoom App Marketplace and connecting it to your WooCommerce store. The interface is straightforward: you select which Zoom products your app should work in, then configure the API scopes that allow the plugin to create meetings on your behalf.

The Zoom App Marketplace Surface settings, where you select which Zoom products this app should connect to.

Google Meet works through a Google Calendar connection. When a customer books, a calendar event is created automatically, and the Google Meet link is attached. Two-way sync means any changes made in Google Calendar reflect in your WooCommerce appointment records. More details on this are available in the WooNinjas Google Calendar and Zoom setup article.

What Customers See: The My Bookings Dashboard

Every WooCommerce appointment a customer books shows up in their My Account area, under the Bookings tab. They see every session, past and upcoming, with the service name, date and time, order reference, current status, and the actions still open to them.

Upcoming appointments show options to view the full details, reschedule to a different slot, or cancel, all without contacting your team. Status labels like “Completed”, “Upcoming”, and “Cancelled” keep things clear. For customers who book frequently, this dashboard becomes a useful reference for their own scheduling.

The My Bookings page in the WooCommerce customer account, showing appointment entries with booking dates, status labels, and self-service action buttons.

What Happens When a Customer Cancels or Pays?

When a customer cancels, the policy is shown before they confirm. If the session is non-refundable past a certain point, that appears in the cancellation modal rather than in an email they never read. They can add an optional reason, which passes through to the notice your team receives. The terms are settled at the moment of cancellation, so there is nothing left to dispute afterward.

The Cancel Booking modal shows the cancellation policy and an optional reason field before the customer confirms.

Payments are processed through your standard WooCommerce checkout. Customers see a full price breakdown before confirming, and pay with whatever gateway you already have set up. For admin-created bookings, staff choose between “Pending Payment” (sends an invoice the customer can pay online) and “Paid” (closes the order and sends a confirmation immediately).

The Payment and Complete step shows the final price summary, applied discounts, and payment status options for admin-created bookings.

To Set Up WooCommerce Appointments: A Quick Summary

To set up WooCommerce appointments, install the WooNinjas WooCommerce Bookings Add-on, create a Bookable Product using the Appointment booking type, define your working hours and slot durations, assign staff if needed, and set cancellation and pricing rules. Customers pick their slot from a live availability calendar, pay through your WooCommerce checkout, and receive a confirmation email. Virtual appointments generate Zoom or Google Meet links automatically. All bookings appear as WooCommerce orders in your admin dashboard.

Starts at $79 per year. Full details on our WooCommerce bookings page.

The plugin handles the standard cases on its own. The non-standard ones are where the setup time goes. WooNinjas has configured booking systems for more than 5,000 businesses, from solo practitioners to multi-location providers. To hand that part off, get in touch with the WooNinjas team, with a short description of your services and schedule, and they will scope the setup for you.

Pro Tip:

Configure your most complex service type first, including staff assignments, buffer time, minimum lead time, and cancellation policy. Then duplicate that product for simpler services. Every product inherits the baseline settings and requires only minor adjustments. Setup time drops significantly after the first product is done properly.

Frequently Asked Questions

Can WooCommerce handle appointment scheduling?

Yes. With the right WooCommerce Bookings plugin, like the WooNinjas Bookings Add-on, you can add time-slot booking to any service product. Customers select their date and time from a live calendar, pay through checkout, and receive a confirmation. Every booking creates a WooCommerce order automatically. See the full details on the WooCommerce Bookings download page.

How do I add a booking calendar to my WooCommerce store?

Install the WooNinjas Bookings Add-on, create a new product, and set the product type to Bookable Product with the Appointment booking type. Your availability calendar appears automatically on the product page. Configure your working hours, slot durations, and any staff schedules in the product settings. The full setup guide walks through each step.

Does WooCommerce Bookings support Zoom and Google Meet?

Yes. The WooNinjas WooCommerce Bookings Add-on connects with both Zoom and Google Meet. When a customer books a virtual appointment, the plugin automatically generates a meeting link and includes it in the confirmation email. Google Calendar sync keeps your schedule updated across both platforms. More details in the Zoom and Google Calendar setup guide.

Can I assign multiple staff members to WooCommerce appointments?

The WooNinjas Bookings Add-on supports multiple staff or resources per service. Each one is created in the product settings with its own availability, and the customer chooses a provider at booking. The calendar shown reflects that person’s schedule, so two staff members can take appointments in the same slot without colliding.

Can customers cancel or reschedule their WooCommerce appointments?

Yes. You configure cancellation and rescheduling deadlines in the product settings. Customers then manage their own appointments from the My Bookings section of their account. The system enforces your policies automatically, and automated emails notify both the customer and your team when changes are made.

Share This Story, Choose Your Platform!

Our products are trusted by 3000+ happy customers!

Latest Posts

Leave a Comment

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

Need help with your wordpress site?

Scroll to Top