Skip to main content

Overview

Kordless uses a sophisticated 3-tier hierarchical availability system that gives you precise control over when bookings can be scheduled. This system ensures that bookings only occur during valid time windows while maintaining flexibility for different teams and individuals.

The 3-Tier Hierarchy

1

Business Hours (Tier 1)

Organization-wide operating hoursSets the broadest availability window for your entire business. These are your general business hours that define when any booking could potentially occur.Example: Monday-Friday 9am-5pm, Saturday 10am-3pm
2

Team Availability (Tier 2)

Team-specific schedulesDefines when particular teams are available. Team hours must fall within business hours and cannot extend beyond them.Example: “Massage Therapy Team” available Monday-Friday 10am-4pm (within business hours)
3

Individual Availability (Tier 3)

Person-level schedulesSets hours for specific team members. Individual hours must fall within their team’s hours (or business hours if no team assignment).Example: Sarah available Monday-Wednesday 10am-3pm (within her team’s hours)
The system automatically validates that each tier respects its parent’s constraints. You’ll see warnings if you try to set availability outside allowed hours.

How Availability is Calculated

When a customer requests available time slots, Kordless calculates availability based on the most specific rules:

Business Hours (Tier 1)

Setting Business Hours

1

Navigate to Business Settings

Go to BusinessSettingsHours
2

Define Weekly Schedule

For each day of the week:
  • Enable/disable the day
  • Set open and close times
  • Add split shifts if needed (e.g., 9am-12pm, 1pm-5pm)
3

Set Timezone

Choose your business’s timezone. All times are displayed and stored in this timezone.
4

Save

Save your business hours. These become the foundation for all other availability.

Best Practices for Business Hours

Make business hours slightly broader than your typical schedule to allow flexibility:Instead of: 9am-5pm (exact team hours) Use: 8am-6pm (allows early/late exceptions)This gives you room to accommodate special requests without modifying business hours constantly.
If you serve customers across time zones:
  • Choose your primary business location’s timezone
  • Consider opening early/closing late to cover more zones
  • Individual availability can handle specific timezone requirements
Business hours represent your normal weekly schedule. Use Availability Overrides (see below) for:
  • Holidays and closures
  • Special event hours
  • Temporary schedule changes

Availability Rules

Availability rules provide granular control over bookable time slots. They can be set at the organization, team, or individual level.

Creating Availability Rules

1

Access Availability Manager

Navigate to CalendarAvailability tab
2

Choose Rule Level

Select who the rule applies to:
  • Business-wide: Affects all bookings
  • Team: Specific team only
  • Individual: Single person
3

Configure Rule

Set rule parameters (see configuration options below)
4

Save & Prioritize

Save the rule and set its priority if multiple rules might conflict

Rule Configuration Options

Days of Week
array
required
Select which days this rule applies to:
  • Monday through Sunday
  • Multiple days can be selected
  • Each day uses the same time windows
Time Ranges
array
required
Define one or more time windows:
  • Start time
  • End time
  • Can add multiple ranges per day (e.g., morning and afternoon)
Example: 9:00 AM - 12:00 PM, 1:00 PM - 5:00 PM
Effective Date Range
daterange
Optional start and end dates for temporary rules:
  • Leave blank for ongoing/permanent rules
  • Use for seasonal schedules
  • Perfect for temporary team member availability
Example: Summer hours from June 1 - August 31
Service
select
Optionally limit this rule to a specific service:
  • Leave blank for all services
  • Select a service to create service-specific availability
Example: “Consultations” only available Monday-Wednesday
Slot Interval
number
default:"from service"
Override default slot intervals:
  • Service duration is used by default
  • Set custom intervals (15, 30, 60 minutes)
  • Useful for services that can start at specific times only
Example: 60-minute service with 30-minute intervals allows 9:00, 9:30, 10:00 start times
Capacity Override
number
Override default capacity for this time window:
  • Increase capacity for high-demand times
  • Decrease capacity for training or reduced staffing
Example: Reduce capacity to 1 on Friday afternoons when staff leaves early
Priority
number
default:"0"
When multiple rules could apply, higher priority wins:
  • Use for exception handling
  • Negative numbers allowed
Example: Priority 10 “Closed for lunch” rule overrides priority 0 “Available all day”

Rule Examples

Use case: Regular Monday-Friday availabilityConfiguration:
  • Days: Monday, Tuesday, Wednesday, Thursday, Friday
  • Time: 9:00 AM - 5:00 PM
  • Service: All
  • Team/Individual: As appropriate

Availability Overrides

Overrides are one-time adjustments that supersede all regular availability rules. Use them for:
  • Holidays and closures
  • Special events or extended hours
  • Emergency unavailability
  • One-off capacity changes
Overrides always take precedence over regular availability rules, regardless of priority settings.

Creating Overrides

1

Navigate to Overrides

Go to CalendarAvailabilityOverrides tab
2

Add Override

Click Add Override and specify:
  • Date and time range
  • Override type (closure or capacity change)
  • Who it affects
  • Reason (optional but recommended)
3

Save

Save the override. It takes effect immediately.

Override Configuration

Date/Time Range
datetime
required
Specific date and time window:
  • Single date or date range
  • Start and end times
  • Can span multiple days
Example: December 25, 2024 (all day) - Christmas closure
Override Type
select
required
Closure: Block all bookings during this time Capacity Change: Modify available capacity (increase or decrease)
Applies To
select
required
Who this override affects:
  • All: Entire business closed/modified
  • Team: Specific team only
  • Individual: Single person
New Capacity
number
For capacity changes, specify the new capacity:
  • 0 = effectively a closure
  • Higher than normal = extra capacity
  • Lower than normal = reduced capacity
Reason
string
Optional internal note:
  • “Holiday: Christmas”
  • “Team offsite training”
  • “Doctor out sick”
Helpful for future reference and reporting.

Override Examples

  • Date: December 25, 2024
  • Time: All day
  • Type: Closure
  • Applies to: All
  • Reason: “Christmas Day”

Dynamic Availability & Holds

Real-Time Calculation

Kordless calculates availability dynamically when requested, considering:
  1. Base availability (hierarchy: individual → team → business)
  2. Availability rules (with priority)
  3. Overrides (always applied)
  4. Existing bookings (blocked time)
  5. Active holds (temporarily reserved slots)
  6. Buffer times (before/after bookings)
  7. Service duration (must fit in available window)
This ensures customers always see accurate, real-time availability.

Booking Holds

When a customer begins the booking process:
1

Slot Selection

Customer chooses an available time slot
2

Hold Created

System creates a 15-minute hold on that slot
3

Customer Completes Booking

If completed within 15 minutes, hold converts to confirmed booking
4

Hold Expires

If not completed, hold automatically releases after 15 minutes
Holds prevent double-booking while customers complete the booking form. Other customers see held slots as unavailable.

Viewing Availability

Real-Time Availability Viewer

Test your availability configuration:
1

Open Availability Tab

Navigate to CalendarAvailability
2

Select Parameters

Choose:
  • Service
  • Date range
  • Host or team (if applicable)
3

View Available Slots

See exactly what customers would see:
  • Available time slots
  • Capacity per slot
  • Booked vs. available
This tool is invaluable for:
  • Testing new availability rules
  • Troubleshooting “no availability” issues
  • Verifying configurations before publishing

Troubleshooting

Possible causes:
  1. No availability rules defined for this service/host/team
  2. Business hours too restrictive
  3. All slots booked or held
  4. Override blocking the time period
  5. Host/team not assigned to the service
Solution: Use the Availability Viewer to diagnose which layer is causing the issue.
Cause: Availability rules extending beyond business hoursSolution: Edit the availability rule to fit within business hours, or expand business hours if intentional.
Possible causes:
  1. Individual availability rule too restrictive
  2. Team availability doesn’t cover the time
  3. Active override blocking their time
  4. Existing bookings filling their capacity
Solution: Check individual → team → business hierarchy for restrictions.
Possible causes:
  1. Timezone differences (customer vs. business)
  2. Booking window restrictions (can’t book too far ahead or too soon)
  3. Minimum notice requirements
  4. Service-specific rules customer is requesting
Solution: Verify booking window and minimum notice settings in service configuration.

Best Practices

Begin with:
  1. Business hours only
  2. One or two basic availability rules
  3. Test thoroughly
Then add:
  • Team-specific rules
  • Individual overrides
  • Service-specific availability
Use the “reason” field in overrides and notes for rules:
  • Why the rule exists
  • When it should be reviewed
  • Who requested it
This helps when troubleshooting months later.
Quarterly review:
  • Remove expired overrides
  • Update temporary rules that became permanent
  • Archive rules for departed team members
  • Validate business hours still match operations
Keep priorities simple:
  • 0: Standard rules (default)
  • 10: Important exceptions
  • -10: Fallback rules
Avoid complex priority schemes that become hard to reason about.
Before enabling a new service or major availability change:
  1. Use the Availability Viewer to verify slots appear correctly
  2. Test the booking flow end-to-end
  3. Check different dates and times
  4. Verify holds work properly

Next Steps