Golf tee-time auto-booking bot¶
Parked: 2026-06-04 (updated same day with run-spec) Status: PARKED-AWAITING-WALKTHROUGH (Devin has the club + creds; needs to record a manual booking with chrome-devtools MCP watching before script can be built) Cost-to-build: ~2–3 hr one-time (record + script + scheduler wiring); $0/mo recurring (Windows Task Scheduler is free, chrome-devtools MCP already installed)
Run spec (locked 2026-06-04)¶
- Trigger 1: Wednesday 7:00:00 AM CST → books Saturday tee time (3 days out)
- Trigger 2: Thursday 7:00:00 AM CST → books Sunday tee time (3 days out)
- Players per tee time: 5
- Preferred time: earliest available
- Latest acceptable: 12:00 noon (script aborts + alerts if nothing earlier exists)
- Notification on confirm: screenshot of confirmation page sent to recipient(s) TBD via:
- Preferred: SMS (email-to-MMS gateway through gmail-personal MCP — free, e.g.
<number>@vtext.comVerizon /@txt.att.netAT&T /@tmomail.netT-Mobile) - Fallback: email with screenshot attachment via gmail-personal MCP
⚠️ Open question — 5 players¶
Most golf booking engines cap at 4 per tee time (industry-standard foursome). Need to confirm with Devin's club before scripting: - (a) Does the engine actually allow 5? (some private clubs do) - (b) If not: book 4 + 1 in adjacent slot, OR book two adjacent slots and split? Resolve at walkthrough — Devin manually books the "5-some" once and we observe how the engine handles it.
The idea¶
Auto-reserve tee times the instant the booking window opens at Devin's country club. Most private clubs open booking 7 days out at a fixed time (commonly 7:00:00 AM) and good slots disappear in seconds. A scripted Playwright login + click flow, fired at exact-second precision via Windows Task Scheduler, books the slot before humans can refresh.
Architecture¶
Windows Task Scheduler (fires at e.g. 06:59:55 AM, 7 days out)
→ Playwright script (via chrome-devtools MCP infrastructure)
→ Login (creds from ~/.claude/.env)
→ Navigate to booking page for target date
→ Click preferred time slot (with fallback ranking)
→ Confirm booking
→ gmail-personal MCP → email Devin success/fail + screenshot
Build steps (when revived)¶
- Walkthrough capture: Devin books one tee time manually while chrome-devtools MCP records the flow — URL transitions, form selectors, date picker behavior, time-slot click target, confirm-button selector.
- Identify booking engine: ForeUP / Chronogolf / GolfNow / Lightspeed / Club Caddie / custom. Each has known quirks (e.g., ForeUP uses iframes; Chronogolf has anti-bot timing checks).
- Build Playwright script parameterized by date offset, preferred times list, # players.
- Credentials in
~/.claude/.env:GOLF_CLUB_USER,GOLF_CLUB_PASS,GOLF_CLUB_URL. Never in repo. - Schedule: Windows Task Scheduler (more reliable than cron on Windows for exact-second timing). Trigger at booking-window-open minus ~5 seconds.
- Notification: Success → email with confirmation screenshot. Failure → email with error + screenshot for debugging.
- Idempotency: Check before booking — if Devin already has a tee time on target date, skip (don't double-book).
Info needed from Devin at revival¶
- Club name + booking URL
- Booking engine (ask club pro shop if unclear, or visible in URL/page source)
- Booking window rule (e.g., "members book 7 days out at 7:00 AM")
- Preferred time slots ranked (e.g., 8:00 > 8:08 > 7:52 > 8:16)
-
players (always 4? variable?)¶
- Same tee time weekly (cron-style) or ad-hoc (manual trigger)?
- Any club-specific gotchas (e.g., guest-fee field, cart vs walking)
Risk callouts¶
- Anti-bot detection: Some booking engines fingerprint headless browsers. May need stealth plugins or human-like delays.
- 2FA / SMS verification: If club requires this on every login, scripting breaks. Mitigation: persist session cookies between runs.
- CAPTCHA at booking confirm: Rare but possible. Would require human-in-the-loop fallback (notify Devin to finish manually).
- TOS: Most club booking systems don't explicitly prohibit automation, but scraping aggressively could trigger account suspension. Keep it to one booking per legitimate booking window.
- Clock drift: Windows system clock vs club server clock can differ by seconds. Worth syncing via
w32tm /resyncbefore run.
Revival trigger¶
- Devin loses a desired tee time to a faster booker (the original pain point)
- OR Devin asks to schedule the walkthrough session
Related¶
~/.claude/.env— global secrets file (reference_global_env_location.md)- chrome-devtools MCP — already installed (used for KP QA, SR landing audits)
- gmail-personal MCP — for success/fail notifications