Tee Time Sniper

Personal Project

Tee Time Sniper

Overview

Tee Time Sniper is an automated reservation tool that submits requests to a reservation portal at precise release times. After setting the preferred options the night before and keeping the device running, the system sends the necessary HTTP requests at the exact moment new times become available.


Why I Built It

Many tee-time reservation systems open new times early in the morning and fill up nearly instantaneously. I wanted a reliable and accurate way to submit a request at the correct moment without having to be awake and manually refreshing the page.


How It Works

Timed Execution

A scheduler triggers the program at 6am. The program runs on a device that remains powered and connected overnight. The timing logic ensures the request is sent at the exact second needed.


Configuration

The night before, I choose the date, time range, number of players, and other options. These preferences are stored and used when the scheduler activates the system.


HTTP Request Automation

The system interacts with the reservation portal by constructing and sending custom HTTP requests. It handles authentication, session information, and the specific request formats required by the portal.


Monitoring and Reliability

The program includes logging, timeout handling, and basic retry logic. This allows it to operate consistently even if network conditions fluctuate or device time desyncs. E-mail notifications report whether the request succeeded.


Snipe When Available

Tee Time Sniper can also run in an active mode that monitors availability and submits a request if someone cancels their tee time and a new opening appears.


Architecture


What I Learned

Building Tee Time Sniper gave me experience with precise timing behavior, session and token handling, request construction, and systems that run unattended for extended periods. It also required making the program resilient to modest changes in the portal’s structure and response patterns.


Code

The codebase is not public because this type of automation only works well when very few people use it, and making it widely available would reduce its effectiveness.