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 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)
- A court keeps the number you give it: courts numbered 9 to 16 show as Court 9 to Court 16 everywhere, whatever order they were added in. A name is an optional nickname shown after the number (Court 2 — Centre 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
- Set booking slot length — 30 minutes (default) or 60 minutes. A 60-minute court's availability grid and duration picker only ever offer hour-aligned start times, so players can't book a half-hour on that court.
- 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 full hire price (credits don't reduce it, except credit from a cancelled booking, which already paid its fee), floored at 50¢ GST-inclusive. If the player's credit covers the whole hire, the player pays $0 and the fee is deducted from the club's payout. 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.
Paying with credits. A player's credits at the club (from a cancellation, a refund or a goodwill credit from the club) pay for court hire automatically, oldest-expiry first, and the checkout shows a "Credit applied" line. The booking fee is worked out only on the cash still to pay. If credits cover the whole booking, the player confirms and pays $0 with no card step. The booking confirmation shows the credit spent ("Paid with credits" and the amount), or the credit and card parts when both paid. On a split booking each player's credits pay only their own share, and the booker pays their own seat by card. Credits issued by another club never apply.
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
Rate per membership tier
- Under the member rate — on the court's standard rate and inside each pricing band — the pricing editor lists every membership tier the club offers for court hire, each with its own optional $/hr. Fill in a figure for a tier and holders of that tier pay it; leave a tier blank and its holders pay the ordinary member rate for that band.
- This is how a club prices more than two bands: full members at one rate, half members at another, everyone else at the standard rate. A player who holds two tiers with different rates on the same band pays the lower one.
- A member's price is shown to them in the booking flow before they book, and the same price is charged at checkout — the figure quoted on the court list is the figure the booking is priced at. Non-members always see the standard rate.
- Free for members still wins over any tier rate for that band. A tier scoped to a sport (see the club guide's Memberships section) only gets its rate on courts of that sport — a tennis tier's rate does not apply on a pickleball court.
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
- Any band (day, night, or a custom pricing band below) can be marked Free for members instead of a discounted rate — an active member then pays $0 for that time slot, and the booking confirms immediately with nothing to pay. A non-member booking the same slot always pays the standard rate; if a slot's only configured price is the member-free flag, a non-member is shown an error and cannot complete that booking — set a standard rate on the band as well if non-members should be able to book it.
Pricing bands
- Every band (Day/night rate or a custom band you add) can also be scoped to specific days of the week — a row of day toggles on the band defaults to every day selected; untick the weekdays to make that band weekend-only, for example.
- A band scoped to specific days always wins over a band left on "every day" for the same time slot, even if the every-day band was configured first. Two bands scoped to different days never conflict — configure a weekday "Day rate" and a separate weekend band covering the same hours, and each day gets its own price automatically.
- Example: a club with "Day rate" 6:00am-5:30pm ($20, applies every day) and "Evening / Peak" 5:30pm-11:00pm ($25, member $5, applies every day) can add a third band — "Weekend" 6:00am-11:00pm, scoped to Saturday and Sunday only — and every weekend booking prices off that band regardless of time, while weekdays keep the existing day/evening split.
Every open time needs a price
- A time on a court is priced when a pricing band covers it, or when the court's standard rate is above $0. A court's standard rate left at $0 does not make time free; it means there is no price.
- You can't save a court (or change its opening hours, bands or standard rate) while any open time has no price. The editor lists the missing times, for example "No price set for: Mon-Fri 5:00am-6:00am".
- To make a time free, add a band for it with a rate of $0. A $0 band counts as priced, so players can book that time at no charge.
- A court that already has an unpriced time is flagged on the Court Hire page with an "Add prices" button. Players can't book an unpriced time and staff can't book it for them; they see "This court has no price for ... yet".
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)
Step 4 — Set the booking window
Dashboard > Court Hire > Booking window sets how many days ahead a player can book a court, from 1 to 90 (default 14). Staff can always book any date from the calendar regardless of this setting — it only limits how far ahead players can book themselves.
Step 5 — Add your own confirmation message (Club Pro)
Dashboard > Court Hire > Confirmation message adds your own message, like gate, lights or lockbox details, to every court booking confirmation. It has two parts. The email and in-app message can be up to 500 characters and keeps your line breaks. It appears on the confirmation email under the booking details, as "A note from <your club>", and in the player's booking details. The text message line is optional and short: the player's confirmation text message must stay one message, so this line is limited to 100 characters, and the counter shows how many you have left. Leave it blank and the text message goes without it. Your longer message is never cut down to fit. Emoji are left off and curly quotes become straight ones on the text message, so they don't cost extra. You can preview the email note and the text before saving. Leaving both blank sends confirmations as before. If you set a message before the two parts existed, it is used as both until you save again. This is a Club Pro feature: on other plans the setting is locked and confirmations send as standard, with no text message. It is the same message for every booking of the same court type, so don't use it for codes that change per booking. Different text for each court type: below those two fields, the same screen has a block for each type of court your club has courts for (for example tennis and pickleball). Use it when each type needs its own message, like a different gate code. Each block has its own email and in-app message and its own text message line, with the same limits and a preview of what the player will get. A booking uses the text for the court type that was booked, in the confirmation email, the text message and the player's booking details. If a booking has several courts, the first court sets the type. Leave a block blank and that type uses your club-wide text above, field by field, so a type with only a message still sends your club-wide text message line. Players also see your message, and the access instructions of any paid hire items, in the booking details under My Bookings (web and the app), not only in the email and text. The text message carries your message only, never hire item instructions.
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. If a searched location has no courts listed yet, the search results offer a button to browse clubs and classes in that same area instead of a dead end.
Booking flow
- Player selects the club's court hire section
- Selects date, time, and one or more courts for that same time — the date picker only offers dates within the club's configured booking window (see Step 4 above; default 14 days ahead) — see "Booking more than one court" below
- Selects start time and duration — offered in the court's configured booking slot length (30 or 60 minutes; see Step 1). A booking that crosses a day/night or custom pricing-band boundary is priced as each 30-minute half at that band's own rate, summed.
- 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
Booking more than one court
A player can hold more than one court for the same date and time in a single booking. After a court is auto-assigned for the chosen slot, any other court free at that same time can be added — the total updates to the sum of each court's own price, and one payment covers every court. The confirmation email, the booking page, and cancellation all treat it as one booking with several courts attached; cancelling releases every court in it. Each court in a multi-court booking is removed from availability individually, so it can never be offered to someone else while the booking stands. A court is free for members only when every court in the booking is free for members — if even one selected court has a standard (non-free) rate, the whole booking is priced (the free court simply contributes nothing to the total). Splitting the cost with other players (below) still works on a multi-court booking — the shared total is whatever the combined court price comes to.
Dropping a court for one week (club or coach). On Schedule, open one week of a multi-court booking and choose Edit. Each of its courts has a tick box under Courts this week. Untick a court to free it for that date only: it becomes bookable for that slot straight away, and every other week of the booking keeps all its courts. At least one court must stay ticked. The price does not change by itself; edit the price on the same form if the week should cost less. Adding a court to an existing booking, or swapping one court for another, isn't possible here: cancel and book the courts you need.
Splitting the cost with other players
A one-off court booking can be split equally between up to 8 players. On the Confirm step, set Players splitting the cost to the party size — the court is confirmed straight away, and the booker pays only their own share plus their own booking fee (3% of that share, floored at 50¢).
- Inviting the others. The confirmation page shows one seat per player. Invite a seat by email or pick one of your saved contacts, or copy the share link and send it however you like. Someone without an AllSquads account gets a link that sets up their account first, then lets them pay. The same seat panel shows each seat as Paid, Pending, Declined, Charged to you or Couldn't charge. You can come back to it any time before the session starts: open the booking from My bookings (the row shows "2 of 4 paid" progress) and the same panel is there with Copy share link, invite by email or saved contact, and Resend on declined seats. Once the session starts the panel is read-only status, and only the person who made the booking can manage seats.
- Accepting or declining. An invitee opens their link, sees the court, date, time and their share plus fee, and either pays with their own card or declines. A declined seat can be re-invited (the Resend button keeps the email filled in).
- When the session starts. Any share still unpaid at the session's start time is charged to the card the booker saved when they paid their own share — seats never release and the booking is never cancelled for non-payment. All the unpaid shares of one booking are taken as a single charge, and the card statement and receipt name the club, the court, the date and time, and which seats it covers. If that charge fails, it is retried a few times and then dropped; the booking stays confirmed and the club is still paid in full.
- Cancelling a split booking. When the booker cancels under the club's policy, every player who paid a share is credited their own share automatically; shares that were charged to the booker's card are credited to the booker. Any seat still unpaid when the booking is cancelled is closed out — that invitee can no longer pay for it, and it's never charged to the booker's card.
- Not available for recurring bookings, free-for-members slots, or class bookings.
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
Only the FIRST occurrence's date has to fall inside the club's booking window (Step 4 above) — a player committing today to a 12-week recurring series can do so even though most of those occurrences are further out than the window on their own.
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 — including as one of several courts in a multi-court booking; each court a multi-court booking covers becomes unavailable on its own, the same as a single-court booking
- A class session has been assigned to that court for that time
- A manual availability block has been placed on the court (either a quick single-court block, or a Facility Blocks series covering one or many courts)
Adding a quick single-court 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
This is the fastest way to block one court for a single date or a plain contiguous range with no recurrence. For multiple courts at once, or a block that repeats on a schedule, use Facility Blocks below.
Facility Blocks — multiple courts and recurring blocks
For resurfacing, fixed coaching hours where a court isn't for hire, club nights, or any other reason to close off court time on a schedule:
- Dashboard > Court Hire > "Facility Blocks" (next to Add Court)
- Click "New block"
- Select one or more courts to block together in the same action
- Set the start date, and an optional end date for a range
- Choose how it repeats:
- One-off / every day in range — a single date, or every day between the start and end date with no gaps
- Weekly on chosen days — pick the days of the week (e.g. Mon–Fri) and it repeats every week until the end date
- Fortnightly on chosen days — the same day selection, but only every second week
- Choose full day, or a specific daily time window (e.g. 3:30pm–6:30pm)
- Enter a reason — this is shown to staff on the Schedule calendar and in the blocks list; players never see it, they just see the court as unavailable
- Click "Check & Save"
Conflict check before saving. If any of the requested slots overlap an existing court-hire booking, they're listed before anything is saved — the booking is never touched or cancelled automatically. You can change the request, or choose "Skip conflicting slots and block the rest" to block every slot that's free and leave the conflicting ones open (and the existing booking untouched).
Where blocks show up. A blocked slot is removed from court-hire availability, from private-lesson availability for that court, and from class court-assignment checks, the same way a quick single-court block is. Staff also see each blocked occurrence on the Schedule calendar (labelled "Blocked" with the reason) so it's clear why the court isn't bookable.
Editing and deleting. From the Facility Blocks list, deleting a block removes every remaining occurrence from today onward — anything already in the past stays as history. On the Schedule calendar, opening a single blocked occurrence lets you remove just that one date, leaving the rest of a recurring series in place. To change the courts, time, or extend the date range, create a new block — the existing one can be shortened or removed and a fresh one added with the new details.
Asking the assistant about your courts
The dashboard assistant can't see your courts or how they're set up, and it can't change their opening hours, prices, blocks or settings. Club admins do these on Facility Hire, where each court has its own card:
- Opening hours: the court card's ⋮ menu > Edit Availability
- Prices: ⋮ menu > Edit Pricing Bands
- Name and details: ⋮ menu > Edit Court
- Blocks: ⋮ menu > Manage Blocks, or Facility Blocks at the top of the page for several courts or a repeating block
- Stop a court being booked: ⋮ menu > Deactivate, or Delete Court. A court that has ever had a booking is archived instead of deleted, so its booking, payment and payout history is kept; it just stops being bookable.
- Cancellation policy, booking window and confirmation message: the buttons at the top of Facility Hire
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. For a multi-court booking, cancelling releases every court in it at once — there's nothing extra to do per court.
Once a booking has been paid out to your club in a weekly payout, it can no longer be cancelled for a credit, because the club already has the money. The Cancel button will explain this. If the player still needs something back, add a manual club credit. A rain-day cancel skips any booking that has already been paid out and still cancels the rest of that day, and cancelling a recurring series leaves any already-paid-out week as it is.
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 price it shows, and records, is worked out the same way as a player booking it themselves: the court's own rates, then the contact's membership court hire benefit, whichever is lower. Turning the member rate toggle off charges the standard price; turning it on for a walk-in with no account gives the court's member rate. A booking that comes to $0 is recorded as paid, and no payment link is sent. 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.
Private lessons are not court hire in your numbers. A private lesson booked from Schedule > Add booking (one-off or repeating) is kept out of the Facility Hire list, and out of the court-hire revenue on the Facility Hire tab (revenue, bookings, most popular court, peak time). Its money appears on its own Private lessons line in Reports and Analytics, so your totals do not change: Court hire + Private lessons equals everything the court bookings brought in. The court is still held for the lesson, so court utilisation and the availability checks still count it.
Freeing a class's courts for one session. A class that holds several courts can keep only some of them for a single session (Schedule > the session > Session Overrides > Court Override). The courts it lets go are bookable for court hire during that session; the class's other sessions keep every court.
Booking more than one court. Below the court dropdown, tick any other court free at the same date and time to add it to the same booking — one booking, one price (the sum of every selected court's own rate), covering a private lesson or an ad-hoc court booking. The per-court conflict check runs for every court selected before saving. The booking's block on the Schedule and its row in Facility Hire > Bookings name every court it holds (for example "Court 1 + Court 2"). Editing or moving it to a new date or time checks every one of its courts. To change which courts it uses, cancel it and book again; the court can't be switched from the edit form on a booking that holds more than one court.
Repeating bookings. Tick Repeat this booking in the quick-add modal to hold the same court(s) (and coach, for a private lesson) at the same time Weekly or Fortnightly, either For N weeks or Until a date — a multi-court selection repeats every week the same way a single court does. Every week is checked for clashes (other court bookings, class sessions on the court, the coach's other commitments, opening hours) before anything is saved; clashing weeks are listed and you can change the details or skip just those weeks. Each week is its own booking — cancel This session only to free a single week, This & all remaining to end the run from that week, or Edit booking > Apply to: This & all remaining to change the court, coach, time, price or notes from that week onward (a repeating booking that holds more than one court keeps its courts; change its time, coach, price or notes instead). Send link works on a repeating booking too: the client gets one payment link for all the weeks (every week's price plus a single booking fee), and every week is marked paid when they pay. If you cancel a week or change the price before it's paid, the link stops working.
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 — free, discounted, or the standard rate, depending on how the club priced that time slot. No discount code or manual intervention is required.
How a member's price is worked out
Every court's prices come from Dashboard > Court Hire: its standard rate, its member rate (or Free for members), any per-tier rates, and its peak / off-peak bands. Different courts can carry different rates. A member's price for a slot is:
- The court's own member price for that slot (free for members, the member's tier rate, the court's member rate, or the standard rate when none is set).
- Any court hire benefit on the member's tier (What's included: a percentage off, free, or a number of free bookings a week), worked out from that court's standard price. It applies on every court, including courts with no member rate.
- When a tier benefit applies, it replaces the court's member price. For example, on a $20 court with a $15 member price, a 10% off benefit costs $18 and a 50% off benefit costs $10. A member with no benefit pays the member price, and a court that is free for members stays free.
Changing a court's rates changes what members pay from their next booking. The price a member sees on each duration and on the confirm step is the price they are charged. Looking at prices never uses up a weekly free booking; only completing a booking does. Once a week's free bookings are used, the member pays the court's member price.
Member pricing eligibility
A player qualifies for member pricing when either:
- They purchased an active membership through the club's membership products, or
- Their AllSquads account is linked to a contact record in the club's contact list with an active membership assigned (with a valid expiry date) — a manually-assigned membership.
- A club staff member added them to one of the club's membership tiers by hand from Dashboard > Contacts (for memberships sold outside AllSquads). This counts exactly as a purchase of that tier: the tier's own court hire rate, its sport, and its included sessions all apply, until the expiry the club set.
A purchased membership only gives the member rate on the surfaces the club configured that membership product to cover — a membership sold as "classes only" quotes the standard court-hire rate for the same player who gets the member rate on classes. A manually-assigned membership always covers every surface.
Assigning memberships to contacts
Dashboard > Contacts > select contact > Membership > Add membership. Choose the membership tier (or the club-wide membership with no tier) and the expiry date. A tier added this way does not renew itself — extend it from the same drawer with Edit expiry, or End it. See the club guide's Memberships section for the full behaviour.
Court Hire and Class Integration
Assigning a court to a class
When creating or editing a class, one or more courts can be assigned in Step 4 — a class is not limited to a single court. Every assigned court is automatically blocked during each session of that class — none of them can be booked for court hire during those times. Re-opening a class you've already saved shows every court you assigned, not just one.
Classes that don't use a club court
A class run off-site (a school, a different venue the club doesn't run court hire from) doesn't need — and shouldn't hold — one of the club's own courts. Choose No court — off-site / other venue in the court step instead of Auto-assign or Choose specific courts. That class then never blocks a court, is never checked against court-hire availability, and shows no court on the schedule. It also stops the auto-assign behaviour for that class going forward — a later edit that changes only the schedule or price won't pick up a court either, unless the coach explicitly switches the court step back to Auto-assign or a specific court.
If the club has active courts but none are assigned to the venue a class is being created at, the wizard defaults the court step to No court for that class — a coach who does want a club court can still switch it. An existing class that was wrongly auto-assigned a court before this option existed isn't changed automatically; open it and set No court explicitly to clear the assignment, or use the same toggle from the Manage Class drawer's Court row.
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.
