← All projects

Padel Availability

A phone-first page that pulls live padel slots from three local venues, so the group can pick a court quicker.

Padel availability page on mobile showing live court slots grouped by venue and time
Which venue has a court, and when.

The short version

venues
3
booking systems stitched together
3
accounts or databases
0

What it is

We play at three local venues, each with its own booking system, and the WhatsApp group just wants to know where and when. Padel Availability pulls live padel slots from all three, hides the weekday times nobody can make and gets you to the right checkout in a tap or two. There are no accounts and no database.

What I had to steer

Mostly I steered away from features. There are no logins, and nothing is stored beyond a couple of filters on your own phone.

Correctness mattered more. Every slot must be padel, and anything with an unknown sport gets left out. Expired times disappear. Refresh always reads live from the venues, so the page matches the booking system at the moment you decide.

What I wired together

Three providers behind one Vercel function: PadelOS for Princes Risborough, Playtomic for Postcombe and Nettla for Bicester, where it creates a checkout for the exact court and duration. Times normalised to UK local, a 60-second cache with a bypass, and a smoke test that re-checks today and tomorrow against the raw provider data.

Where I pushed it

It deep-links into other people's booking systems. Bicester goes straight to the exact court, length and price, and falls back to the venue's own grid if checkout creation fails. The venues don't offer that themselves.

Live site

See it live.

padel-availability-rosy.vercel.app homepage
Live tool Real, live court times for the three venues. Tap a time to see the booking hand-off.

The build log

Finding a court

Booking padel meant checking one venue, then another, then a third, working out which times were useless because everyone’s at work, then pasting the least-bad options into WhatsApp. I wanted less faff: show the local courts, hide the noise and make the next playable slot obvious.

It’s a phone-first page for the three local venues: Princes Risborough, Postcombe and Bicester. It pulls live availability, groups slots by day and time of day, hides weekday working hours and lets the group filter by venue, duration and start time.

Bicester has different court types and prices, so the app sends you to the right checkout instead of a generic booking page. It refreshes on its own, and there’s a manual refresh for when you’re trying to grab a slot before someone else does.

It’s shipped, with no accounts and no database.

Compact days and the exact court

The first version answered “is anything free?” The group’s real question was “can I book that one, now?”, so most of the work since has been about trust.

Princes Risborough came from a stale listing that showed slots you couldn’t actually book, so it moved to the venue’s real booking system. Playtomic times showed wrong until they were read as UTC and converted to UK time. Some venues list other sports on the same system, so every slot now has to prove it’s padel or it doesn’t show. Expired start times drop off, a failed refresh clears old times instead of leaving them up, and Refresh skips the cache for a guaranteed live read.

The layout got tighter in October. Each day is one compact card per venue with every start time visible, three columns on a phone, court counts on each time and a tag on the next one you can play. Bicester has covered and outdoor courts at different prices, so it has a covered-only filter, and tapping a time opens a picker for duration and court that goes straight to that exact checkout.

I checked the handoff on the live site: Court 4, covered, 7am for 90 minutes landed on a checkout for exactly that court and time. No booking was made. A smoke test re-checks today and tomorrow against the venues’ raw data before each release.