A browser-based auto-reloader script for precisely timed page reloads during CCC Congress ticket sales.
Original Creator: Lorenz Leutgeb (GitHub)
This script synchronizes your browser with the server's clock and automatically reloads the page at exactly the right moment when tickets go on sale. It helps compensate for any time drift between your local clock and the ticket server.
- Clock Synchronization: Continuously measures and adjusts for the offset between your local clock and the server's clock
- High Precision: Uses
performance.now()for microsecond-level timing accuracy - Smart Triggering: Automatically reloads the page at the configured sale time
- Testing Mode: Includes a safe testing mode that measures timing without actually reloading
- Time Offset Measurement: Every 5 seconds, the script sends a HEAD request to the server and compares the
Dateheader with your local time to calculate the clock offset - Averaging: Uses the average of the last 5 measurements for stability
- Precision Checking: Checks every 20ms whether it's time to reload
- Auto-Stop: Stops measuring shortly before the target time to avoid interference
- Reload: Triggers a page reload at the precise moment calculated from the server time
Navigate to the CCC ticket purchase page in your browser:
https://tickets.events.ccc.de/
Then select the specific event you want to buy tickets for until you see ticket prices.
- Chrome/Edge: Press
F12orCtrl+Shift+J(Windows/Linux) /Cmd+Option+J(Mac) - Firefox: Press
F12orCtrl+Shift+K(Windows/Linux) /Cmd+Option+K(Mac) - Safari: Enable Developer menu in Preferences, then press
Cmd+Option+C
Copy the entire contents of reloader.js and paste it into the console, then press Enter.
The script will log status information:
Now: [current date/time]
Target: [sale date/time]
Ready! Let's get that ticket!
You'll see periodic measurements of clock offset:
Ours: 1731859800000
Theirs: 1731859801234
Current Offset: 1234
Avg. Offset: 987
Leave the tab open and active. The script will automatically reload the page at the precise moment tickets go on sale.
Edit the sales array in reloader.js to add or modify ticket sale times:
const sales = [
new Date("2025-11-08T11:00+01:00"),
new Date("2025-11-17T15:10+01:00"),
new Date("2025-11-17T20:00+01:00"),
]Dates should be in ISO 8601 format with timezone offset.
The script automatically enters testing mode if the nearest sale is more than 3 minutes away. In this mode:
- The reload will trigger 45 seconds from now (instead of at a real sale time)
- The page will not actually reload
- You'll see a measurement of how accurate the timing would have been
To force testing mode, set all sale dates to be in the distant future.
You can adjust these constants in the script:
measure.interval: 5000 // How often to measure clock offset (ms)
// Checking interval: 20 // How often to check if it's time to reload (ms)fetch, performance.now(), etc.). Use a recent version of Chrome, Firefox, Edge, or Safari.
- Modify the
salesarray to set a date far in the future - Run the script in the console
- You should see "Testing is active. This mode will not help you buy a ticket!"
- Watch the console output to see timing measurements
- After the test trigger time, check the "Delta" value to see how accurate the timing was
"Testing is active" when it shouldn't be: Check that your sale dates are correct and within 3 minutes of the current time.
Script stops working: Browser console may have been cleared or the page may have been reloaded. Re-paste the script.
High offset variance: Your network connection may be unstable. Try a more stable connection.
No output: Make sure JavaScript is enabled and the console is open before running the script.
Please refer to the original creator's repository for license information.
Original script by Lorenz Leutgeb (GitHub)
Bug fixes and modifications by malteish.