Overview
Court hire allows players and members to book individual courts, lanes, or facilities directly without a coach. It is managed separately from classes under the Court Hire tab in the club dashboard.
Court hire is available as a club-tier feature. Individual coaches can view the court hire calendar and create bookings, but court management and pricing are handled by club admins.
Facility terminology
The Court Hire section uses terminology dynamically matched to the club's sport:
| Sport | Tab label |
|---|---|
| Tennis | Court Hire |
| Padel | Court Hire |
| Pickleball | Court Hire |
| Squash | Court Hire |
| Badminton | Court Hire |
| Golf | Tee Times |
| Swimming | Lane Booking |
| Other | Facility Booking |
All references in this document use "Court Hire" as the default label.
Setting Up Court Hire
Stripe Connect
Stripe Connect is required to receive payouts from court hire bookings, but is not blocking — clubs can configure courts, set pricing, and have bookings come in before completing Stripe Connect. Court hire payments are platform-held and accrue into the same weekly Monday payout as class bookings (net of the club's tier platform fee); the payout stays pending until onboarding is finished. See 05-payments-and-credits.md for the weekly payout flow.
Step 1 — Add courts
- Dashboard > Court Hire > Manage Courts > Add Court
- Enter court number and optional name (e.g., 1 / Centre Court, 2 / Back Court)
- Select facility type — sets the terminology used across the platform (surface type has been removed as it added complexity without value)
- Set availability hours: the days and times the court is available for booking
- Repeat for each court
Step 2 — Configure pricing
Dashboard > Court Hire > Pricing. The court-hire booking fee charged to the player at checkout is 3% of the cash portion, floored at 50¢ GST-inclusive. The club's tier-based platform fee is deducted from the cash portion on payout. See 05-payments-and-credits.md for the full fees model.
Standard rate
- Set price per 30-minute block or per hour for non-members
Member rate
- Set the reduced rate for club members
- Member pricing applies automatically to players with an active membership assigned to their contact record
Day and night rates
- Enable time-based pricing to charge different rates at different times
- Set the day/night threshold time (e.g., bookings before 5:00pm = day rate, bookings at or after 5:00pm = night rate)
- Set separate day and night rates for both standard and member pricing
Pricing bands
- Optionally configure different rates by day of week (e.g., weekends at a premium)
Step 3 — Set cancellation policy
Dashboard > Court Hire > Settings > Cancellation Policy:
- Set time threshold (hours before booking)
- Set refund type (full credit, partial credit, no refund)
- Set refund percentage (for partial credit option)
How Players Book Court Hire
Discovery
Court hire is visible on the club's public profile page under the Court Hire tab (or equivalent facility label). Players can also access court hire via the AllSquads explore page.
Booking flow
- Player selects the club's court hire section
- Selects date and court
- Selects start time and duration (in 30-minute increments)
- System confirms availability in real time
- Player proceeds to checkout — member pricing applied automatically if eligible
- Payment taken on confirmation
- Player receives a confirmation email with a payment link to manage or view the booking
Recurring bookings
Players can set a court hire booking to repeat weekly or fortnightly:
- At step 4, select recurrence (One-off / Weekly / Fortnightly)
- For recurring bookings, all future occurrences are generated (up to 12 weeks)
- Payment is taken per occurrence at time of booking
Cancelling a recurring booking
Players can cancel a single occurrence or the entire future series:
- Cancel this booking: cancels the selected date only
- Cancel all future bookings: cancels all future occurrences in the series (past occurrences are unaffected)
Court Availability Management
What affects court availability?
A court is unavailable for hire when:
- The requested time is outside the court's configured operating hours for that weekday (the per-court "weekly hours" you set in Add Court > Step 2). Outside-hours bookings are rejected with "Court closed Mon 06:00-22:00 (AEST)" or similar. Courts without configured hours are not gated — any time is allowed until you set them.
- Another court hire booking exists for that court at that time
- A class session has been assigned to that court for that time
- A manual availability block has been placed on the court
Adding a manual availability block
- Dashboard > Court Hire > select court card > kebab menu > Manage Blocks
- Click "Add Block" in the Manage Blocks modal
- Set date range (start and end dates), choose full day or specific time range
- Enter optional reason (e.g., Maintenance, Private Event, Resurfacing)
- Save — the blocked period is immediately removed from bookable slots
- Existing blocks can be viewed and deleted from the same modal
Managing Court Hire Bookings
Viewing bookings
Dashboard > Court Hire shows all upcoming and past bookings with:
- Player name and contact
- Court name and number
- Date, time, and duration
- Booking type (one-off / recurring)
- Payment status (online paid / cash / internal)
Filtering bookings
Filter by court, date range, member/non-member, or booking type.
Cancelling a booking
Club admins can cancel any court hire booking:
- Select the booking
- Select Cancel
- Choose whether to cancel this occurrence or the entire series (for recurring bookings)
- Player receives a full credit refund and notification
Court hire calendar view
The court hire calendar displays a day-view with one column per court, showing all bookings and blocks at a glance. Navigate by date to view any day's schedule. Court hire bookings also appear on the main club calendar.
Quick booking (admin)
Admins and coaches can create bookings directly from the calendar by clicking an empty slot. The quick-add modal supports contact search, member rate toggle (auto-set from contact membership), duration, recurrence, and payment method. The payment method options are Already paid (player paid via AllSquads — no Stripe charge from this screen), Cash (paid in person), and Internal (no charge / staff booking). The previous "Online" label was renamed to "Already paid" because the quick-add flow does not actually run a card charge; it records that the booking is paid.
Member Pricing
How member pricing works
When a player with an active club membership books court hire, the system automatically applies the member rate at checkout. No discount code or manual intervention is required.
Member pricing eligibility
A player qualifies for member pricing when:
- Their AllSquads account is linked to a contact record in the club's contact list
- That contact record has an active membership assigned (with a valid expiry date)
Assigning memberships to contacts
Dashboard > Contacts > select contact > Membership tab > Assign Membership. Set the membership product and expiry date.
Court Hire and Class Integration
Assigning a court to a class
When creating or editing a class, a court can be assigned in Step 4. The assigned court is automatically blocked during each session of that class — it cannot be booked for court hire during those times.
Scheduling conflict detection
If a coach's availability or a court's availability conflicts with a new booking, the system flags the conflict before confirmation. Partial conflicts (e.g., coach is available but court is not) are flagged with a warning.