How to use it
- Pick a time, add a label if you like, and choose days to repeat (leave them all off for a one-time alarm). Choose a sound and press Test sound to hear it, then Set alarm.
- Keep this tab open and the computer awake, with the volume up. You can switch to other tabs or apps.
- When it rings, press Stop or Snooze for 5 or 10 minutes. A one-time alarm turns itself off after you stop it; repeating alarms wait for their next day. Your alarms are saved in this browser, so they are still there tomorrow; after reopening the page, click once to let it play sound.
Why a background tab is a problem, and how this alarm avoids it
Browsers slow down a page’s timers when its tab is hidden, to save battery. Chrome checks the timers of a page hidden for more than five minutes only once a minute, so an alarm that waits on a page timer can ring up to a minute late. This alarm books its sound on the browser’s audio clock as soon as you set it (and again every minute and whenever you come back to the tab), so the audio system starts the sound at the right moment by itself. The ringing panel on screen still uses a timer, so in a background tab you may hear the alarm before the panel appears. Nothing in a web page can wake a sleeping computer or ring after the tab is closed; for that, use your phone’s or computer’s built-in alarm.
Daylight saving time
The next ring is worked out in your device’s time zone, day by day. On the night the clocks go forward, a time that does not exist rings the same number of minutes after the jump: in New York on March 8, 2026, an alarm for 2:30 AM rings at 3:30 AM daylight time. On the night the clocks go back, a time that happens twice rings the first time: an alarm for 1:30 AM on November 1, 2026 rings at the first 1:30, still on daylight time. This is the rule JavaScript dates follow, and the page shows the time until the next alarm so you can check it.
What we tested
On October 15, 2026: the page’s next-ring calculation, run in four time zones (New York, London, Lord Howe Island with its half-hour daylight saving shift, and Kolkata with none), agreed with Python’s time-zone library on all 3,000 random cases, most of them on clock-change days and at times inside the skipped or repeated hour. In Chromium we recorded every sound the page booked: the first click of a new alarm was booked for exactly the alarm time (0.0 ms off). An alarm set for the next whole minute showed its ringing panel 492 ms after the minute, Snooze moved it five minutes, alarms were still there after reloading, and the page asked for one click to re-enable sound, on a 390 px screen.
Sources
- Chrome for Developers, Heavy throttling of chained JS timers beginning in Chrome 88.
- W3C, Web Audio API (scheduling sounds on the audio clock).
Frequently Asked Questions
Built by Derek Giordano · Part of Ultimate Design Tools