Skip to main content

Availability Rules

Availability rules control when customers can schedule appointments. Rules can be defined at three levels and are merged together to determine the final availability for any given time slot.

How Availability Works

By default, appointable products are not available — you must create rules that open up time slots. Think of it as a whitelist: nothing is bookable until you say it is.

Each rule answers a simple question: Is this time range appointable (Yes) or not (No)?

Where to Set Rules

Three Scopes

ScopeWhere to ConfigureApplies To
GlobalWooCommerce → Settings → Appointments → Global AvailabilityAll appointable products
ProductEdit Product → Availability tabThat specific product only
StaffUsers → Edit Staff → Availability sectionAppointments with that staff member

Availability settings

Scope Layering

Rules from all three scopes are combined when checking availability for a specific product + staff combination:

  1. Global rules are applied first as the base layer.
  2. Product rules are applied on top, overriding global rules where they overlap.
  3. Staff rules are applied last, overriding both global and product rules.

This means a staff member can have different hours than the product default, and a product can override the global schedule.

Rule Fields

Each rule has the following fields:

Availability rules

  • Range Type — What kind of time range this rule covers (see Range Types below).
  • From / To — The start and end of the range. The format changes based on the range type.
  • AppointableYes to allow scheduling in this range, No to block it.
  • Priority — A number that controls which rule wins when rules overlap. Lower numbers take priority (e.g., priority 5 overrides priority 10). Default is 10 for manually created rules and 5 for Google Calendar synced events.
  • Qty — Optional capacity override. Overrides the product inventory for slots matching this rule.
  • Title — An admin-only label to help you identify the rule.
tip

When two rules overlap and have the same priority, the rule that appears lower in the list wins. You can drag rules to reorder them.

Range Types

Date-Based Rules

  • Date range — Affects all slots between two specific dates. Use the date pickers to select start and end dates.
  • Date range with time — Affects slots between a start time on the from-date and an end time on the to-date. Useful for multi-day events or specific windows.
  • Range of months — Affects all slots within a range of calendar months (e.g., January through March).
  • Range of weeks — Affects all slots within a range of week numbers (1–52).
  • Range of days — Affects all slots within a range of weekdays (e.g., Monday through Friday).

Time-Based Rules

  • Recurring Time (all week) — Affects slots between two times, every day of the week.
  • Recurring Time (date range) — Affects slots between two times, but only within a specific date range.
  • Monday through Sunday — Affects slots between two times on a specific day of the week.
info

Time rules and date rules interact with each other. A time rule restricts hours within the days that date rules make available. If you set Monday–Friday as appointable and add a time rule for 09:00–17:00, only those hours on weekdays will be bookable.

Priority & Ordering

How Priority Works

When multiple rules apply to the same time slot, the system resolves conflicts using:

  1. Priority number — Lower numbers win. A rule with priority 5 overrides a rule with priority 10.
  2. List position — When priorities are equal, the rule lower in the list wins.
  3. Scope order — Assuming default priorities, the evaluation order is:
    1. Global rules (priority 10 by default)
    2. Product rules (priority 10 by default)
    3. Staff rules (priority 10 by default)
    4. Global Google Calendar events (priority 5 by default)
    5. Staff Google Calendar events (priority 5 by default)

Since Google Calendar events default to priority 5 (lower = wins), they override manually created rules at priority 10 unless you adjust priorities.

Capacity Merging

Capacity (Qty) follows a specificity hierarchy: Staff Qty > Product Qty > Global Qty. The most specific non-empty value applies.

Common Examples

Business Hours: Monday–Friday, 9 AM to 5 PM

Create two rules on the product (or globally):

#Range TypeFromToAppointable
1Range of daysMondayFridayYes
2Recurring Time (all week)09:0017:00Yes

Block a Lunch Break

Add a third rule with a lower priority number so it overrides the business hours:

#Range TypeFromToAppointablePriority
3Recurring Time (all week)12:0013:00No9

Block a Specific Holiday

#Range TypeFromToAppointablePriority
4Date range2026-12-252026-12-25No1

Using priority 1 ensures the holiday block overrides everything else.

Staff-Specific Hours

On the staff member's profile, add rules that differ from the product default. For example, if a staff member only works mornings:

#Range TypeFromToAppointable
1Recurring Time (all week)09:0013:00Yes

This overrides the product's 09:00–17:00 rule for that staff member.

Global Availability

Set via WooCommerce → Settings → Appointments → Global Availability to establish defaults that products or staff can override.

Global availability has two types of rules:

  • Site Rules — Manually created rules you manage in the admin. These apply to all products unless overridden.
  • Synced Rules — Read-only rules imported from Google Calendar (when two-way sync is enabled). Edit these in Google Calendar, then sync.

Tips

  • Start with global rules for your standard business hours, then use product and staff rules for exceptions.
  • Use the Title field to label rules clearly (e.g., "Summer Hours", "Holiday Block").
  • Test your rules by viewing the product on the frontend to confirm the correct slots appear.
  • Remember: products are not appointable by default — you must add at least one "Appointable = Yes" rule.