Countdown Timer
Countdown timer with presets, pause, audio alert, shareable URL. Free, client-side, instant, secure.
- Runs in your browser
- Nothing uploaded
- Free, no sign-up
Set a target time. Watch the seconds tick down. Audio beep when it hits zero. Switch to elapsed mode to keep counting up after expiry. Share URL preserves your target.
How to Use Countdown Timer
- Pick a target date/time, or click a preset (+5 min, +1 hour, +1 week, etc.).
- The countdown ticks down once per second. When zero hits: audio beep, browser tab title changes to ⏰ Expired, and the expired banner appears.
- Optionally set an "expired message" that shows in the banner.
- Switch After expiry to "Count up" if you want the timer to keep tracking elapsed time past zero.
- Click Share URL to copy a link that restores your target (and message) when reopened.
Frequently Asked Questions
What timezone does the target use?
Your local timezone. The datetime-local input doesn’t carry timezone info, so when you type 2026-12-31T23:59, that’s interpreted as 11:59 PM in your local time. The Share URL converts to UTC ISO format so it travels correctly across timezones – when the recipient opens the link, their browser converts back to their local time, preserving the same absolute moment.
Does the timer drift in background tabs?
Modern browsers throttle setInterval in background tabs (to ~1 Hz minimum, but the actual fire rate can be slower). The display might briefly show a “stale” value, but it self-corrects on next tick because compute() uses Date.now() directly – not an accumulated counter. So the displayed time stays accurate even after the tab regains focus.
Why doesn’t the audio play sometimes?
Browsers block AudioContext from playing until the user has interacted with the page (a security feature against autoplay). If you start the timer immediately on load, the first beep may be silent. Click somewhere first, or just trust the visual + tab-title alert.
Does the tab title flash work?
Yes – when the timer expires, the document title becomes ⏰ Expired - Free Countdown Timer.... This is visible in the tab strip even when you’re on a different tab.
What’s “elapsed” mode?
After the timer hits zero, instead of stopping, it counts upward to show how much time has passed since the deadline. Useful for tracking overruns (“how late am I?”).
How accurate is this?
Sub-second accurate. The display ticks every 1000ms but the calculation uses Date.now(), so even if a tick is delayed (background tab, system lag), the next visible update shows the correct value. For sub-second precision, this isn’t the right tool – use a stopwatch.
What if I close the tab?
The timer stops. Re-open with a Share URL to resume from the same target – the displayed countdown will reflect “time remaining from now,” not “time remaining from when you set it.” For a persistent timer that runs even when the tab is closed, you’d need a service worker (out of scope).
Can I pause and resume?
Pause freezes the display but doesn’t change the target – when you resume, the count jumps to “actual current remaining time,” not “remaining time when you paused.” If you want pause to add to the target instead, you’d need a stopwatch (which adds elapsed time) or a different timer model.
Is anything uploaded?
No. Everything runs locally in your browser – nothing is sent to a server, logged, or stored, and the tool keeps working offline once the page has loaded.
Why am I getting an “invalid target” message?
Either the input is empty or the date you typed is unparseable. Use the date picker or the preset buttons to be sure.
Related Tools
Android AssetLinks JSON Generator - App Links →
Android AssetLinks JSON Generator files for Android App Links. Configure package names and SHA-256…
Convert ASCII to Binary →
Convert ASCII to Binary tool. Convert text to binary and binary to text. 100%…
Base32 Encoder/Decoder →
Free Base32 encoder and decoder tool. Encode or decode Base32 strings online. 100% client-side,…
Base58 Encoder/Decoder →
Free Base58 encoder and decoder tool. Encode or decode Base58 strings like Bitcoin addresses.…
Base64 Encoder and Decoder →
Base64 Encoder and Decoder - Convert text strings into Base64 format or decode Base64…
BBCode to HTML Converter →
Generate standard semantic HTML arrays translating classic forum BBCode syntax cleanly explicitly mappings independently…
Convert Binary to Hex →
Convert Binary to Hex tool. Convert binary numbers to hex instantly. 100% client-side, instant,…
Convert BSON to JSON →
Convert MongoDB BSON hex dumps to readable JSON in your browser. Free, offline, client-side…
Chmod Calculator →
Chmod Calculator - Build Linux chmod permissions visually - read/write/execute for owner, group, public,…
Coin Flip →
Free Coin Flip Online streaks, batch 10 000 flips, and optional crypto-grade RNG. Full…
Convert Base64 String Encoder and Decoder →
Encode text to Base64 or decode Base64 back to readable text, with full UTF-8…
Cron Parser Next Runs →
Calculate next cron job runs. POSIX dom/dow semantics, @yearly/@monthly/@weekly macros, timezones, human-readable description. JSON/CSV/ICS…