Support Resources

SERVICES & BOOKINGS

Creating an Appointable Product

In order for users to schedule appointments, you will need to create an appointable product. To do this, go to Products > Add Product.  Give your product a title and description before moving on to product data. In the product type dropdown you need to select ‘Appointable Product‘:

wc-appointments-select

By default ‘Virtual’ should be selected if this isn’t a physical product, so no shipping costs are applied. After making these selections, the fields will change to reflect appointable products options.

 

General settings

The first settings you’ll see include most of the configuration you will need to make your appointable product ready to work as planned: the price, duration, padding time, lead time, scheduling window and confirmation / cancellation requirement. Interval needs to be smaller or equal to duration.

Price

Regular Price applies at all times, whereas Sale Price applies at a time when customer is scheduling an appointment and not at a time when appointment is taking place.

You can also choose to hide the price and show custom text label instead by choosing Label instead of price?. This way, your customers will not be required to make any payments online.

wc-appointments-price-label

If you feel really adventurous and want to set price based on date/time or any other availability rule, you can do that as well. Custom pricing rules are very straightforward and you set them up the same way as your availability rules. Base cost is applied to the appointment as a whole, whereas Slot cost is applied to each appointment slot separately. When appointment lasts for 2 days or more, this cost applies to each day in range separately.

When using + in custom pricing rules, the add-ons are added to the price. But when using = in the custom pricing rules, the add-on costs are not being applied to the price → the custom pricing rule overrides the add-on costs and the product price.

WooCommerce Appointments custom pricing

Duration

This determines how long an appointment lasts. The actual duration units can be Months, Days, Hours or Minutes. You can delegate exactly what time the appointments can start inside Availability product options.

Interval

Select intervals when each appointment slot is available for scheduling. If your appointment last for 2 hours, you can set the interval of available slots on 15 minutes. This way, your customers will have option to schedule appointment every 15 minutes. When they do schedule it, 2 hours will be booked out and slot intervals of 15 minutes will start after that.

Padding Time

If you need time to prepare for your appointment before / after the appointment, you should use padding time. This time is not calculated into duration and visible to customer and only applies before / after scheduled appointments.

Lead Time

Choose how much in advance do you need, before customer schedules an appointment. For instance, if you choose 1 day, customers will not be able to schedule an appointment within 24 hours before it takes place.

Scheduling Window

Choose how far in advance are customers allowed to schedule an appointment. For instance, if you choose 1 month, customers will not be able to schedule an appointment more than 1 month before it takes place.

Requires confirmation?

Check this option if the appointment requires to be approved by an admin / staff before being confirmed. Rather than take payment at checkout, the user will input their details and submit it for your approval. After you approve it, customer will receive an email with an optional payment link inside.

 

Can be cancelled?

Check this option if you want the user to have the ability to cancel their appointment. After selecting the option, you will see two fields that allow you to choose how many Minutes/Hours/Days/Months before the start date your customers are allowed to cancel their appointment.

Can be rescheduled?

Check this option if you want the user to have the ability to reschedule their appointment. After selecting the option, you will see two fields that allow you to choose how many Minutes/Hours/Days/Months before the start date your customers are allowed to reschedule their appointment.

Once the option is enabled, customers will be able to reschedule their appointments inside their account on your site.

Staff

You can assign staff to each appointable product. Staff availability is global, which means scheduling appointment with staff for one appointable product will make same staff unavailable for all appointable products for the scheduled date/time.

There are two types of staff selection:

  1. Customer defined – This is where the booking form will show a dropdown list of staff which the customer can choose.
  2. Automatically defined – This is where a staff will be automatically assigned to a customer appointment if available.

After linking staff to your appointable product, you can also give your staff a custom ‘label’. This will be shown on the frontend booking form. Staff is added via default Users > Add New screen. Make sure to assign Shop Staff role for newly added staff.

Additional Cost
You can define additional cost for each staff at product level, which will be calculated into overall product cost.

Inventory
You can set staff Inventory at product level. If Inventory is not set, it will take product inventory by default.

Staff Edit Screen

WooCommerce Appointments staff edit screen

Staff can also edit their options under their dedicated edit screen inside Users > Your Profile menu. They can:

  • Sync their profile with their own Google Calendar.
  • Set their own availability rules. View synced rules from Google Calendar.
  • Assign/remove themselves from the appointable products.

Availability

Availability (what slots can be scheduled) can be controlled via the Availability tab.

 

Availability Check

If you choose to check availability per starting slot only, you can set any date/time rules you want and your customer will be shown available slots no matter which slot they schedule, as long as starting date/time is available at the time of booking. Otherwise, availability is checked against all slots in booked range.

Auto-select?

Check this option if you want the plugin to automatically select first available slot for the customer. This way customer doesn’t need to first pick the date/time as it is auto-selected for them.

Restrict start days?

If you check this option you can select the days of the week when appointments can start. This does not affect availability and appointments will still be available on week days that are not checked, but they will start only on days checked.

Custom Availability

You can setup specific availability rules, such as availability for:

  • months
  • day of the week
  • recurring time
  • specific date

To add a rule, click the Add Rule button:

A new row will be created in which you can choose a Range type, Range (from/to), Inventory, Priority and Appointable (yes or no) options. Inventory allows you to override product inventory for scheduling on specific date/time.

WooCommerce Appointments availability rules

The from/to values differ based on the range type:

  • Date range – [from / to] will show a datepicker fields. All available slots between selected dates are affected.
  • Date range with time – [from / to] times will affect all available slots between the start time on [from] date and end time on the [end] date.
  • Range of months – [from / to] will show a dropdown of months (January to December). All available slots between selected months are affected.
  • Range of weeks – [from / to] will show a dropdown of weeks (1 to 52). All available slots between selected weeks are affected.
  • Range of days – [from / to] will show a dropdown of weekdays (Monday to Sunday). All available slots between selected weekdays are affected.
  • Time Ranges – [from / to] will show an input of times (00:00 to 24:00). All available slots between selected times are affected.
    • Recurring Time (all week): all available slots between selected times for each day are affected.
    • Recurring Time (date range): all available slots between selected times for each date in date range are affected.
    • Monday through Sunday: all available slots between selected times for each day rule selected are affected.

Range Type
Select which rule type you would like to use. Take into account that time rules will also affect date range, unless defined otherwise. Same goes for date rules, they will affect time rules as well.

Range
Select the range for your rule type. Ranges are defined from certain point to another, where starting range is included (<=), whereas ending range is not included (>).

Inventory
Optionally override product inventory for selected rule.Inventory defines the maximum number of appointments per slot.

Priority
Optionally define priority number. Rules with lower priority number will override rules with a higher priority (e.g. 9 overrides 10 ). By using priority numbers you can execute rules in different orders for all three levels: Global, Product and Staff rules. This means your can override rules set on Global level or rules set on Staff level. You can do the same on all levels.

The rule hierarchy goes like this (assuming you are not changing the Priority number and leaving it at default. Default is 10 for all rules created in WP and 5 for events created via gCal) for a specific product:

  1. Global rules (if any) are applied.
  2. Product rules (if any) are applied on top of that.
  3. Staff rules (if any) are applied on top of that.
  4. Global gCal rules (if any) are applied on top of that.
  5. Staff gCal rules (if any) are applied on top of that.

Appointable
Select if rule adds to availability or not. If not appointable, users won’t be able to choose slots in this range for their appointment. Take into account that products are not appointable by default and you have to define the appointable rules, when products are available for scheduling.

Delete/Move
Rows can be removed by clicking the X on the far right, or dragged and dropped to sort using the handle on the far left. If multiple rows match the product being scheduled, the furthest down the list will take priority.

Example
If you want the product to be available from Monday to Friday from 08:00 am to 01:00 pm, set 2 rules in this order:

Availability rules for working days