Skip to main content

Meditation Timer

Meditation timer with optional interval bells and a pause/resume control.

Written by Golam Rabbani, Founder & Lead Engineer

Runs entirely in your browser — bell uses Web Audio (no downloads). Local time is not used.

Use 0 to skip interval bells.

How to use this meditation timer

  1. Enter the total session duration in minutes (1–180).
  2. Optionally set an interval in minutes for interim bells (use 0 to skip).
  3. Tick "Play soft bell" if you want a bell sound at each interval and at the end.
  4. Press "Start session".
  5. Use Pause and Resume during the session, or Reset to start over.

About this meditation timer

A minimalist meditation timer that runs entirely in your browser, with no app to install and no account to create. It counts down from your chosen duration with a large monospaced clock and, optionally, rings a soft 528 Hz sine-wave bell at each interval and again when the session ends. The bell is generated on the fly with the Web Audio API — there is no audio file to download.

Timing uses <code>performance.now()</code>, so the countdown does not drift if your system clock changes, and Pause/Resume preserve the accumulated elapsed time. The timer is timezone-independent: it works entirely in elapsed seconds.

Worked example: set duration to 10 minutes, interval to 2 minutes, and leave the bell ticked. The display starts at 10:00 and counts down. At 8:00, 6:00, 4:00, and 2:00 the bell rings softly to mark the interval boundary, and a final bell plays when the display reaches 00:00. The bottom of the panel shows which interval you are on (for example, "Interval 3 / 5"). Press Pause to freeze; the next session minute does not start until you press Resume.

If your browser blocks autoplay or you have audio disabled, the timer still works — it simply does not ring. Useful for daily practice, breathing exercises, focus blocks, or yoga rest periods.

FAQ

Will the timer keep running if I switch tabs?
Yes. It is based on absolute elapsed time, so background tabs do not desync. The bell, however, may be muted while the tab is backgrounded depending on your browser.
Is there a way to skip the bell?
Yes — untick the "Play soft bell" checkbox, or set the interval to 0 to skip interval bells while keeping the final completion bell.
What is the maximum duration?
180 minutes. If you need longer, run another session.
Why a sine-wave bell instead of an audio file?
It loads instantly, plays at any volume without distortion, and avoids the need to ship and license a real audio file.