The WooCommerce Bookings Addon is a dynamic extension designed to add robust booking and appointment functionality to your WooCommerce store. Ideal for businesses such as salons, clinics, rental services, and event organizers, it allows customers to seamlessly schedule appointments, book time slots, or reserve products directly through your website.
With flexible configuration options, you can offer bookings by the day, set buffer times between appointments, and define availability rules to suit your needs. The addon also supports real-time availability updates. Fully integrated with the WooCommerce ecosystem, this addon simplifies booking management while enhancing the customer experience.
Video Tutorial
Watch the tutorial video below for a quick walkthrough of the add-on’s features and setup process.
For detailed instructions, please continue reading the full documentation. If you still have any questions, feel free to submit a support ticket.
- Video Tutorial
- Installation
- Activate Your License Key
- How to create/edit a Hotel Service
- How to create/edit an “Appointment / Consultation / Virtual” Service
- How to create and add a Resource, Service, People role to a bookable product
- Integrations
- Booking Reports
- How to Cancel/Reschedule Bookings
- How to Enable/Disable Booking Emails
- FAQ’s
- Changelogs
Installation
- Install and activate the WooCommerce plugin.
- Install and activate the “WooCommerce Bookings” Add-on.
- There will be a new tab created in the WooCommerce Settings sub-menu by the name “Booking Settings” and a new sub-menu by the name “Booking Reports” in WooCommerce.

WooCommerce Bookings – Main Tab
Activate Your License Key
The license key can be configured from the License sub-tab, found on the “Booking Settings” tab. The license key will be sent to the email address you provide when you purchase the add-on.
Insert your license key in the field and then click on Activate.

WooCommerce Bookings – License Configuration
How to create/edit a Hotel Service
To create/edit a hotel booking type, the steps are as follows:
1- Enter/Edit the product title on the product edit page.
2- In the “Booking Options → Settings” tab, select the “Booking Type” option as “Hotel”.
3- Enter/Edit the following information:
- Booking Title / Service Name (This field is optional)
- Start Date
- End Date
- Booking Duration
- Check-in Time
- Check-out Time
- Minimum Stay Duration (Minimum number of days for hotel bookings. Leave empty for no minimum restrictions.)
- Maximum Stay Duration (Maximum number of days for hotel bookings. Leave empty for no maximum restrictions)
- Adult Count fields (Min, Max fields)
- Child Count fields (Min, Max fields)
- Assigned Resource/Staff (This field is optional)
- Physical Location (In the Location tab)
- Regular Price (In the Pricing tab)
- Sale Price (In the Pricing tab, this field is optional)
In the advanced rules tab, you can provide rules to increase/decrease the final price of the booking duration. The steps to create pricing rules are as follows:
- Provide a Rule Name: Give your rule a descriptive name for easy reference.
- Enable the Rule:
Check the box → Rule applies immediately while calculating the price.
Uncheck the box → Rule applies on the frontend as the customer selects the duration. - Rule Order: Rules are applied from lowest to highest number. Make sure the order reflects how you want the rules to be processed.
Select the rule type. You can select from the following options:
- Range of Months: Apply during specific months. Example: Selecting January to January means you want to apply the respective rule for the current year’s January month only.
- Booking Duration (Days): Apply based on the number of days booked (booking duration).
- Custom Date Range: Apply between specific dates.
- Advance Booking Time: Apply based on how far in advance a booking is made.
Select the “Price Adjustment” and the amount. You can select from the following options:
- + Add:
Fixed amount is added and applied on per day basis (multiplied by booking duration). For a 1-day booking, if the total price is $100 and you add $20, the new total becomes $120 because 100 plus 20 equals 120. For a 2-day booking, if the total price is $100 and you add $20 for each day, the new total becomes $140 because 100 plus 20 times 2 equals 140. - – Subtract:
Fixed amount is subtracted and applied on per day basis (multiplied by booking duration). For a 1-day booking, if the total price is $100 and you subtract $20, the new total is $80. For a 2-day booking, if the total price is $100 and you subtract $20 per day, the new total is $60. - +% Add Percentage:
Percentage addition (+%) is applied to the Total price once. Example: If the total price of a product’s duration is $100 and 20% is applied, then the new total price of the duration will come out to be $120. Since $100x 0.2=$20 and $100 + $20=$120. - -% Subtract Percentage:
Percentage subtraction (-%) is applied to the Total price once. Example: If the total price of a product’s duration is $100 and 20% is applied, then the new total price of the duration will come out to be $80. Since $100x 0.2=$20 and $100 – $20=$80.
Allow Customers To Cancel Their Bookings (This Is Optional)
Cancellation Deadline
Here, you can set the time before the start date when customers will be able to cancel their bookings. Suppose your booking start date is 17 January 2026 and the product’s cancellation deadline is set to 1 day. It means the customer can cancel their booking till 15 January 2026, after which the “Cancel” button will no longer be visible to the customer in their WooCommerce Customer Dashboard (“Bookings” tab).
Cancellation Policy
This is the text which will be sent to the customers and administrators in their WooCommerce Emails “Booking Cancelled” and “Admin Booking Cancelled”, when the customer cancels their individual booking. This text will also be visible to the customers in their booking cancellation pop-up in their WooCommerce Customer Dashboard (“Bookings” tab) if the administrator has enabled the “Enable to show this policy text in cancellation modal” option in the product’s edit page.
Enable showing this policy text in the cancellation modal. If this checkbox is checked, customers will see the “Cancellation Policy” text in their booking cancellation pop-up in their WooCommerce Customer Dashboard (“Bookings” tab).
Allow Customers To Reschedule Their Bookings (This Is Optional)
Allowed Order Statuses
Here, you can select the WooCommerce Order’s Statues for which the “Reschedule” button will be displayed. The “Reschedule” button will not be visible to the customers for the WooCommerce orders whose statuses are not selected.
Reschedule Deadline
Here, you can set the time before the start date when customers will be able to reschedule their bookings. Suppose your booking start date is 17 January 2026 and the product’s reschedule date is set to 1 day. It means the customer can reschedule their booking till 15 January 2026, after which the “Reschedule” button will no longer be visible to the customer in their WooCommerce Customer Dashboard (“Bookings” tab).
4- Publish/Edit the product by clicking the “Publish / Update” button.

WooCommerce Bookings – Hotel Settings tab

WooCommerce Bookings – Hotel Location tab




WooCommerce Bookings – Hotel product page

WooCommerce Bookings – Hotel product cart page

WooCommerce Bookings – Hotel product checkout page

WooCommerce Bookings – Hotel product order received page

WooCommerce Bookings – Hotel product order details page (Customer Dashboard)
How to create/edit an “Appointment / Consultation / Virtual” Service
To create/edit an “Appointment / Consultation / Virtual” booking type, the steps are as follows:
1- Enter/Edit the product title on the product edit page.
2- In the “Booking Options → Settings” tab, select the “Booking Type” option as “Hotel”.
3- Enter/Edit the following information:
- Booking Title / Service Name (This field is optional)
- Start Date
- End Date
- Booking Duration
- Buffer Time
- Attendees Count (Min, Max fields, this field is optional)
- Assigned Resource/Staff (This field is optional)
- Location Type (In the Location tab, it can be set to both physical or virtual)
- Physical Location (In the Location tab)
- Virtual Platform (In the Location tab)
- Link Generation Type (In the Location tab)
- Virtual Meeting Link (In the Location tab)
- Available Days (In the Availability tab)
- Available Time Range (In the Availability tab)
- Blackout Dates (In the Availability tab, this field is optional)
- Regular Price (In the Pricing tab)
- Sale Price (In the Pricing tab, this field is optional)
- Allow customers to cancel their bookings (This is optional)
- Cancellation Deadline
Here, you can set the time before the start date when customers will be able to cancel their bookings. Suppose your booking start date is 17 January 2026 and the product’s cancellation deadline is set to 1 day. It means the customer can cancel their booking till 15 January 2026, after which the “Cancel” button will no longer be visible to the customer in their WooCommerce Customer Dashboard (“Bookings” tab). - Cancellation Policy
This is the text which will be sent to the customers and administrators in their WooCommerce Emails “Booking Cancelled” and “Admin Booking Cancelled”, when the customer cancels their individual booking. This text will also be visible to the customers in their booking cancellation pop-up in their WooCommerce Customer Dashboard (“Bookings” tab) if the administrator has enabled the “Enable to show this policy text in cancellation modal” option in the product’s edit page. - Enable to show this policy text in cancellation modal
If this checkbox is checked, customers will see the “Cancellation Policy” text in their booking cancellation pop-up in their WooCommerce Customer Dashboard (“Bookings” tab).
- Cancellation Deadline
- Allow customers to reschedule their bookings (This is optional)
- Allowed Order Statuses
Here, you can select the WooCommerce Order’s Statues for which the “Reschedule” button will be displayed. The “Reschedule” button will not be visible to the customers for the WooCommerce orders whose statuses are not selected. - Reschedule Deadline
Here, you can set the time before the start date when customers will be able to reschedule their bookings. Suppose your booking start date is 17 January 2026 and the product’s reschedule date is set to 1 day. It means the customer can reschedule their booking till 15 January 2026, after which the “Reschedule” button will no longer be visible to the customer in their WooCommerce Customer Dashboard (“Bookings” tab).
- Allowed Order Statuses
4- Publish/Edit the product by clicking the “Publish / Update” button.

WooCommerce Bookings – Appointment Settings tab

WooCommerce Bookings – Appointment Location tab

WooCommerce Bookings – Appointment Availability tab


WooCommerce Bookings – Appointment Cancel/Reschedule tab

WooCommerce Bookings – Appointment product page

WooCommerce Bookings – Appointment product cart page

WooCommerce Bookings – Appointment product checkout page

WooCommerce Bookings – Appointment product order received page

WooCommerce Bookings – Appointment product order details page (Customer Dashboard)
If Google Calendar and Google Meet are integrated and emails are enabled to be sent, then the customers will receive an email when a Zoom manual, Zoom automatic, Google manual, and Google automatic link is assigned to a customer’s order.

How to create and add a Resource, Service, People role to a bookable product
Navigate to the product edit page in its “Booking Options” tab. In the “Assigned Resource/Staff” heading. The administrator can create, edit, delete resources, services, and people roles. The administrator can also assign resources, services, and people roles already created to a bookable product by selecting it from the dropdown.
To create a new resource, the steps are as follows:
1- Click on the “Create New” button.
2- Select the “Resource” dropdown option from the “Type” option.
3- Enter the resource name and resource description (this is optional).
4- Finally, click the “Save” button.

To create a new service, the steps are as follows:
1- Click on the “Create New” button.
2- Select the “Service” dropdown option from the “Type” option.
3- Enter the service name. Enter the service description and price (these are optional). If the price is provided, then the customers will be able to choose from the product page whether they want to include this service in their order or not.
4- Finally, click the “Save” button.

To create a new people role, the steps are as follows:
“People” is a resource type in which you can specify the name of a group of people who are associated with the product (Service / Appointment). For example, if you are offering a gym-related product like a membership plan. You can specify what kind of gym trainers will be available in the gym for a customer to book with the plan, like “General Fitness Trainers” and “Specialized Trainers”. If a people resource type will not have a price associated with them, then adding them (as many as the customer wants ) will not have any effect on the total price of the product while If a people resource type will have a price associated with them then adding them (as many as the customer wants) will affect the total price of the product.
Note: These people roles are not custom user-roles of WordPress. Kindly do not mistake them for WordPress user-roles like Administrator. These roles can be created/edited/deleted and are only accessible in the WooCommerce product type – “Bookable Product”.
1- Click on the “Create New” button.
2- Select the “People” dropdown option from the “Type” option.
3- Enter the people’s role name. Enter the people’s role description and price (these are optional). If price is provided, then the customers will be able to choose from the product page whether they want to include these people in their order or not, and if yes, then how many.
4- Finally, click the “Save” button.

The administrator can edit, delete, and remove the resource types (resource, service, people) added to the bookable product by clicking the icons.

Integrations
In this tab, the administrator will be able to view and manage all the integration-related settings.

User Bookings Shortcode
The administrator can place the shortcode “[user_bookings]” on any page or post where they want to display user bookings. Customers must be logged in to view their bookings. This allows customers to view all their upcoming and past bookings and search them.

Otherwise, Logged-out users will see the following section:

Google Calendar and Google Meet Integration
Here, the administrator can connect their Google account to automatically create calendar events and Google Meet links for bookings. To get the “Google Client ID” and “Google Client Secret”, the steps are as follows:
1- Navigate to your Google Cloud “https://console.cloud.google.com/apis/credentials ”.
2- Create a new Project.
3- Go to “Credentials” sub-menu and search for “Google Meet REST API” and “Google Calendar API”. Enable them both.



4-Come back to the “Credentials” sub-menu and click on “Create credentials” and select the “OAuth client ID” option.

5-Select Application type as “Web application” and give it a name. Click the “Add URI” button in the “Authorised redirect URIs” heading and enter the “Redirect URI” from your site.

6- Click the “Create” button and download the JSON File. The JSON file will have both the fields required to connect your Google account to your site.


7- Place the “Google Client ID” and “Google Client Secret” in their respective fields and click the “Save Configuration” button to save the fields, and then click the “Connect with Google” button. Finally, grant permission to the application to connect to your site.
Zoom Integration
Here, the administrator can connect their Zoom account to automatically create meeting links for bookings. To get the “Zoom Client ID” and “Zoom Client Secret”, the steps are as follows:
1- Navigate and log in to your Zoom App Marketplace (https://marketplace.zoom.us/develop/create ). Click on the “Build app” option.

2- Select the “General App” option and click on create.

3- In the “Basic Information” sub-menu, select the “User-managed” option and enter the “Redirect URL” from your site in the “OAuth Redirect URL” option.

4- In the “Surface” sub-menu, select the options Meetings, Phone, and Events.

5- In the “Scopes” sub-menu, click the “+ Add Scopes” button. Search and add the 3 scopes “zoomapp:inmeeting”, “meeting:write:meeting”, and “user:read:user”.


6- Click on the “Add app now” button and grant the permission.

7- Place the “Zoom Client ID” and “Zoom Client Secret” in their respective fields and click the “Save Configuration” button to save the fields, and then click the “Connect with Zoom” button. Finally, grant permission to the application to connect to your site.
Booking Reports
In this sub-menu, the administrator will be able to view, search, and filter all the appointment/meeting records purchased by all the customers for all the products of the bookable product type of “Appointment / Consultation / Virtual” with Location Type set as “Virtual/Online”.

How to Cancel/Reschedule Bookings
Navigate to the WooCommerce Customer Dashboard (“Bookings” tab). If the customer’s order falls under the order cancellation criteria, he will see the “Cancel” button. Similarly, if the customer’s order falls under the order rescheduling criteria, he will see the “Reschedule” button.

To cancel the booking customer needs to click the “Cancel” button of the respective order. If the administrator has checked the “Enable to show this policy text in cancellation modal” checkbox of the respective product, then the customer will see the “Cancellation Policy” text in the cancel pop-up. He will be asked to provide a reason for cancellation (this is optional). Finally, clicking the “Confirm Cancellation” button in the pop-up will cancel the respective WooCommerce order.

To reschedule the booking customer needs to click the “Reschedule” button of the respective order.
In the rescheduling pop-up, in case of a “Hotel” booking type product, select the rescheduling “Check-in Date” and “Check-out Date”. Kindly note that the duration of the booking should be the same; if the booking was made for 2 days duration, the new booking duration should also be 2 days and fall under the available days. Similarly, in the case of a “Virtual” booking type product, select the new “Appointment Date” and “Available Time Slots”.In the rescheduling pop-up, in case of a “Hotel” booking type product, select the rescheduling “Check-in Date” and “Check-out Date”. Kindly note that the duration of the booking should be the same; if the booking was made for 2 days duration, the new booking duration should also be 2 days and fall under the available days. Similarly, in the case of a “Virtual” booking type product, select the new “Appointment Date” and “Available Time Slots”.
He will be asked to provide a reason for rescheduling (this is optional). Finally, clicking the “Confirm Reschedule” button in the pop-up will reschedule the respective WooCommerce order.


How to Enable/Disable Booking Emails
Navigate to the “WooCommerce menu → Settings → Emails”. You can enable and disable the following WooCommerce Booking-related emails coming from our addon:
- Booking Cancelled
If enabled, this email will be sent to the respective customers when they cancel a booking from the WooCommerce Customer Dashboard (Booking tab). If the customer provides a reason for cancellation, it will also be sent in the email.
- Admin Booking Cancelled
If enabled, this email will be sent to the administrators when a customer cancels a booking from the WooCommerce Customer Dashboard (Booking tab). If the customer provides a reason for cancellation, it will also be sent in the email.
- Booking Rescheduled
If enabled, this email will be sent to the respective customers when they reschedule a booking from the WooCommerce Customer Dashboard (Booking tab). If the customer provides a reason for rescheduling, it will also be sent in the email.
- Admin Booking Rescheduled
If enabled, this email will be sent to the administrators when a customer reschedules a booking from the WooCommerce Customer Dashboard (Booking tab). If the customer provides a reason for rescheduling, it will also be sent in the email.

FAQ’s
1- Does WooCommerce Bookings Add-on have any dependent plugin(s)?
WooCommerce Bookings Add-on requires the WooCommerce plugin to be installed before activating it.
2- What will happen if a bookable product order of “Hotel” type is refunded or cancelled?
The respective date(s) of the bookable product order of “Hotel” type will become available on the product page again for someone to book again.
3- What will happen if a bookable product order of “Appointment” type is refunded or cancelled?
The respective time slot of the bookable product order of “Appointment” type will become available on the product page again for someone to book again.
4- How many time slots can be booked by a customer?
Currently, a customer can only book a single time slot per order (of “Appointment” type bookable product), but a customer can book multiple time slots by booking multiple orders.
5- Where will the customer see the booking details of the bookable product types?
The customer will see the booking details of the bookable product types on the cart page, checkout page, and customer dashboard’s “Orders” tab.
6- Will the customers receive Zoom’s manual link and automatic link appointment emails if Google is not integrated on your site?
The customers will not receive Zoom’s manual link and automatic link appointment emails if Google is not integrated on your site. Google’s Integration is solely responsible for sending appointment emails for both Zoom and Google meeting links.
7- Why is the Automatic Meeting Link option is not visible on my Localhost?
The Automatic Meeting Link Generation option is not available on localhost environments. This feature requires:
- A publicly accessible website (staging or live – not localhost).
- A properly connected Google Calendar integration.
What you should do:
- Move your site to a staging or live server.
- Connect your Google Calendar in the add-on settings.
Once these requirements are met, the Automatic meeting link generation option will become available and work as expected.
8- Zoom is connected, but I don’t see the “Automatic” meeting link option for booking products. Why?
If Zoom appears connected but the “Automatic” meeting link option is missing, please check the following:
1. Google Calendar must be connected
Automatic meeting link generation for both Zoom and Google Meet depends on the Google Calendar integration. Even if Zoom is successfully connected, the system cannot generate automatic meeting links unless a Google account is also connected in the add-on settings. Once Google Calendar is connected, the “Automatic” option will become available.
2. Reconnect Zoom if needed
If the option still does not appear, disconnect your Zoom account from the add-on settings and reconnect it to refresh the API permissions.
Changelogs
1.1.1
- New: Added minimum and maximum duration for the hotel type.
- New: New: Added advanced rules for the hotel type.
1.1.0
- New: Added an option to allow customer to cancel bookings.
- New: Added an option to allow customer to reschedule booking.
- New: Make number of attendees count optional in appointment.
1.0.5
- New: Renamed Base Price to Regular Price.
- New: Added a Discount Price field.
- New: Price field with currency displayed dynamically.
- New: In Availability, added a checkbox to avoid assigning time separately for each selected day.
- New: For Virtual type, added a Number of Attendees field instead of Adult Count or Child Count.
- Fix: Fixed minor issues.
1.0.4
- Fix: Resolved script enqueue order issue in product settings page for Flatpickr library.
- Fix: Fixed potential null reference error in user bookings shortcode script loading.
1.0.3
- Fix: Improved physical location validation for booking settings.
1.0.2
- Fix: Resolved an issue preventing the license from activating.
- Fix: Addressed a warning message to improve stability.
1.0.1
- New: Zoom & Google meet & calendar Integration.
1.0.0
- Initial release.