For indoor soccer and futsal facilities

Turf time and league nights on the same grid.

Training blocks, drop-in sessions, and league fixtures all have to sit on the same turf without colliding. One grid, one member record, one revenue number — with pricing and session length configured per pitch rather than fixed to somebody else’s idea of an hour.

Sound familiar?

One system, six modules, one ledger.

Booking

Pitch time on a grid that can’t double-book

Pricing rules and session length are set per pitch, with peak and off-peak windows and maintenance holds — and a Postgres constraint that makes two overlapping bookings on the same pitch structurally impossible.

Memberships

Dues and session packs on one ledger

Recurring plans and prepaid packs live on one member record with a card on file. Renewals run through Stripe and failed payments get chased by dunning rather than by a captain in a group chat.

Programs

Leagues, camps, and academy blocks with real rosters

Leagues, holiday camps, and academy sessions run as programs with capacity limits, levels, and waitlists that promote automatically when a spot frees up.

Point of sale

Concessions and rentals on the same tab

Drinks, gear, and equipment rental charge to the same account as pitch time — one revenue number, broken out by space or category on demand.

Campaigns

Fill the midweek hours

Describe the send, the AI drafts it in your facility’s voice and segments by who books and how often — you approve before it ships.

AI advisor

Which hours sell, and which don’t

Three ranked moves every morning with dollar estimates attached — the dead midweek slots, the teams that stopped rebooking, the program worth running next.

Questions worth asking

Can league fixtures and open rentals share the same pitches?+

Yes — leagues, camps, and one-off rentals all draw from the same pitch inventory, so there is one grid rather than a fixture list taped next to a booking app.

Can each pitch have its own pricing and session length?+

Yes. Session length and pricing rules are configured per space, so a full-size pitch on 60-minute training blocks and a smaller space on shorter sessions run from the same account.

How do teams pay?+

Team dues and bookings both settle against a member record with a card on file, and failed payments are chased automatically by dunning instead of by hand.

Can you import our existing customer list?+

Yes — a CSV import wizard maps your export’s columns to member records and validates every row before anything commits.

See it on your indoor soccer & futsal' own schedule.

A 20-minute walkthrough, tailored to your facility’s size and how you actually run it.

Indoor soccer and futsal booking software — Courtlines