A class spot when it opens
I built op-bot for One Playground classes in Sydney. It runs in Telegram as @oneplayground_bot. This is an independent project, with no affiliation with One Playground.
Browse, wait or book
Browse the next seven days of classes by morning or afternoon, with spots left. When a class is full, choose auto-booking for the first seat that frees, or notify-only mode with a one-tap Book button. A “book when it opens” rule fires 72 hours before class. Weekly standing rules ask first.
Keep track of the booking
My classes lists upcoming bookings; favourites keep regular choices close. Reminders arrive before class and before the free-cancel deadline. Every booking message includes a Cancel button.
Individual logins
Each person uses their own private login. The password message is deleted on arrival, and the password is used only to log in, as in the official app.
How it is built
Node.js and strict TypeScript, with no third-party dependencies: node:sqlite stores the data and the platform’s own fetch makes the requests. It runs around the clock in Docker on a home NAS.
The hard part is the scheduling, and 311 tests cover it: timing that survives daylight-saving changes, retries with backoff, guards against double booking, and outage alerts that always send the all-clear and never repeat. Part-way through, the venue moved to a new booking platform, so I rebuilt the integration behind a single seam and the rest of the bot did not change. The code stays private because it talks to a third-party service.
Stack
- Node.js
- TypeScript
- Telegram Bot API
- SQLite
- Docker