Pomodoro Timer
Run online Pomodoro focus cycles with custom work and break lengths, goal ETA, alerts, schedule previews, and exports for planned work sessions.Pomodoro Session
| Metric | Value | Copy |
|---|---|---|
| Phase | {{ phase }} | |
| Round | {{ roundIndex }} | |
| Completed focus | {{ completed_pomos }} | |
| Elapsed (phase) | {{ elapsedDisplay }} | |
| Remaining (phase) | {{ remainingDisplay }} | |
| Ends (local) | {{ current_finish_time_local || '—' }} | |
| Next phase | {{ nextPhaseLabel }} | |
| Goal progress | {{ completed_pomos }} / {{ goal_pomos }} | |
| Goal ETA | {{ goal_eta_local }} |
| # | Phase | Start | Duration (min) | Copy |
|---|---|---|---|---|
| {{ r.idx }} | {{ r.phase }} | {{ r.startLocal }} | {{ r.durationMin }} | |
| No upcoming phases. | ||||
Pomodoro timing turns open-ended work into a repeated rhythm of focused effort and deliberate recovery. The familiar pattern is 25 minutes of work, a short break, and a longer pause after several rounds, but the useful idea is broader than one fixed number. A timed round gives attention a clear container, and a planned break prevents the session from becoming an unmeasured stretch of willpower.
The method is most helpful when a task has enough shape to start but not enough momentum to finish in one sitting. Writing a report, reviewing code, studying a chapter, clearing a backlog, or doing routine admin can all benefit from a visible work-break cadence. The timer answers practical questions that ordinary clocks do not answer well: how much time is left in the present round, when the next pause starts, and whether a target number of focus rounds can fit before another commitment.
A Pomodoro count should not be treated as proof that important work happened. It shows that time was protected for a task, not that the task was chosen well, split cleanly, or finished to the needed standard. The most useful session plans leave room for review after the timer stops: note what moved forward, what blocked progress, and whether the next focus round should continue the same task or switch to a better-defined next action.
Custom timing matters because different work has different friction. A 25-minute focus round is a good baseline for many desk tasks, while a deep debugging session, exam review block, or household cleanup may work better with longer or shorter intervals. The rhythm is valuable when it protects attention without hiding recovery time.
Technical Details:
A Pomodoro session can be modeled as a small state machine. The active state is either a focus round, a short break, a long break, a short startup countdown, or idle. Each active state has a duration measured in seconds. Elapsed time increases while the timer is running, pauses when the session is paused, and resets when the session is stopped.
The long-break rule depends on completed focus rounds. After a focus round ends, the next break is long when the completed focus count is a positive multiple of the configured long-break interval. If the interval is 4, rounds 1, 2, and 3 lead to short breaks, while round 4 leads to a long break. Break phases then return to focus.
The first equation gives phase progress as a percentage, clamped between 0 and 100. The second gives the length of one complete long cycle, where N is the number of focus rounds before a long break, sfocus is one focus duration, sshort is one short break, and slong is one long break.
| Current phase | Condition | Next phase | Count effect |
|---|---|---|---|
| Idle | Session starts and countdown is 0 seconds | Focus | No focus round is counted yet |
| Countdown | Countdown reaches 0 seconds | Focus | No focus round is counted yet |
| Focus | Completed count is not divisible by long-break frequency | Short break | Completed focus increases by 1 |
| Focus | Completed count is divisible by long-break frequency | Long break | Completed focus increases by 1 |
| Short break or Long break | Break reaches 0 seconds | Focus | Completed focus does not change |
Schedule projection starts from the current session state. If a focus or break phase is running, the first row uses the remaining time in that phase. If the session is paused, the active phase is projected from its full phase duration. If the session is idle, the projection starts with a new focus round. Goal ETA repeats the same phase rules until the requested number of focus rounds has been counted.
| Setting | Accepted value | Effect on results |
|---|---|---|
| Focus length | Whole minutes, 1 or more | Sets each focus phase and controls whether Start can run |
| Short break | Whole minutes, 1 or more | Sets ordinary recovery time between non-cycle-ending focus rounds |
| Long break | Whole minutes, 1 or more | Sets the larger reset after the configured focus count is reached |
| Long break every | Whole focus-round count, 2 or more | Changes the break decision after each completed focus round |
| Goal rounds | 0 for open ended, or a whole focus-round target | Enables Goal progress and Goal ETA when greater than 0 |
| Countdown before start | Whole seconds, 0 or more | Adds a preparation phase before the first focus round |
Browser cues are best read as requests, not guarantees. A beep is synthesized from the chosen frequency, duration, and volume. A per-second tick plays only when ticking is enabled and volume is above 0 percent. Vibration runs only when the browser and device expose vibration. Notifications need permission. Wake lock can keep the screen visible while the page is active, but the browser or operating system may release it after tab changes, power-saving events, or policy restrictions.
Everyday Use & Decision Guide:
Set the work rhythm before tuning alerts. Focus length, Short break, Long break, and Long break every define the actual session pattern. The classic 25, 5, 15, and 4 setup is a practical first pass for reading, writing, coding, study, and routine desk work. Change the focus length when the task has a different restart cost: short blocks help with avoidance or low-energy work, while longer blocks can suit tasks that take time to load into memory.
Use Goal rounds when the question is about fit. A goal of 0 keeps the timer open ended. A goal of 3, 4, or 6 turns the same rhythm into a plan with Goal progress and Goal ETA. Before relying on the ETA, check whether breaks are part of the promise you are making to yourself. Three 25-minute focus rounds with two 5-minute short breaks is not a 75-minute commitment; it is an 85-minute plan before any countdown, pauses, or long break rules are added.
The Advanced controls should match the room and device. Countdown before start is useful when you need a few seconds to put away distractions. Auto-start next phase suits repetitive production work, but leaving it off creates a deliberate decision point at every boundary. Tick sound each second and Beep volume are poor choices in shared rooms unless headphones are involved. Desktop notification, Vibrate on phase change, and Prevent screen sleep help when you may not watch the page continuously.
- For quiet work, keep Tick sound each second off and set Beep volume to 0 percent, then use visual changes or Desktop notification if permission is allowed.
- For hands-off pacing, turn on Auto-start next phase and confirm that the Next phase value matches the rhythm you expect.
- For planning a work block, open Pomodoro Schedule before starting and compare the projected local start times with meetings, calls, or end-of-day limits.
- For explaining a routine to someone else, use Pomodoro Time Mix to show how one long cycle divides focus time, short breaks, and the long break.
The main misread is treating the countdown as a productivity score. Session Summary tells you the current Phase, Round, Completed focus, Remaining (phase), Ends (local), Next phase, and Goal ETA. Those fields describe timing and pacing. They do not confirm task quality, priority, or depth of attention, so pair the final round count with a short note about what was actually finished.
Step-by-Step Guide:
Build the session from the timing fields first, then start the countdown and use the result tabs to check the plan.
- Enter Focus length, Short break, Long break, and Long break every. If Start stays disabled, check that Focus length is a whole number of at least 1 minute.
- Set Goal rounds to 0 for open-ended pacing, or enter a target such as 3 or 4 when you want Goal progress and Goal ETA to appear in Session Summary.
- Open Advanced if you need Countdown before start, Auto-start next phase, Tick sound each second, Beep volume, Beep frequency, Beep duration, Vibrate on phase change, Prevent screen sleep, or Desktop notification.
- Check Pomodoro Schedule before pressing Start when the session needs to fit around a meeting or fixed stop time. The first row should match the phase you expect to run next.
- Press Start. The large countdown, Phase, Round, Remaining (phase), Ends (local), and progress bar should move together while the session is running.
- Use Pause when a real interruption should stop the active phase. Use Stop only when you want to return to Idle and clear completed focus count for a fresh session.
- Use Next to skip to the next phase when a round or break should be advanced manually. Confirm Next phase afterward so an early skip does not hide an unexpected long break.
- Copy or download Session Summary, Pomodoro Schedule, Pomodoro Time Mix, or JSON only after the displayed Phase, Completed focus, and Goal ETA match the session state you intend to record.
Interpreting Results:
The large remaining-time value is the safest first check. Phase names and Round count depend on the active state, so read them with the countdown rather than in isolation. A paused focus round is still the same round; it is holding elapsed time until you resume, advance, or stop.
Goal ETA is an estimate under the current settings. It assumes future focus and break phases keep the displayed durations, the long-break rule stays unchanged, and manual skips do not change the path. If you alter Long break every from 4 to 3, a long break may arrive earlier, and Goal ETA can move even when Focus length stays at 25 minutes.
Pomodoro Schedule is a projection, not a history log. It lists upcoming phase order, local start times, and duration in minutes. If the first schedule row looks wrong, check the current Phase and whether the session is idle, running, paused, or in Countdown before trusting later rows.
Pomodoro Time Mix shows the composition of one long cycle. A high Focus share means the chosen cycle allocates more minutes to work than breaks; it does not prove that the session was uninterrupted or effective. Use Completed focus and your own task notes to judge what happened after the timer ran.
Worked Examples:
Four classic focus rounds before lunch
A writer sets Focus length to 25 minutes, Short break to 5 minutes, Long break to 15 minutes, Long break every to 4, and Goal rounds to 4. Session Summary starts at Phase Focus once the countdown finishes, Round reads 1, and Goal ETA includes four focus rounds plus the short breaks needed before the fourth focus round completes. After the fourth focus round, Next phase becomes Long break because the completed focus count is divisible by 4.
Longer focus for a coding pass
A developer changes Focus length to 45 minutes, Short break to 10 minutes, Long break to 20 minutes, and Long break every to 3. Pomodoro Schedule now shows longer focus rows and a long break after the third completed focus round. Pomodoro Time Mix allocates 135 minutes to focus in one long cycle, 20 minutes to short breaks, and 20 minutes to the long break, so the cycle is 175 minutes before any startup countdown or pauses.
Quiet session in a shared office
A team member leaves Tick sound each second off, keeps Beep volume at 0 percent, turns Desktop notification on, and skips Vibrate on phase change. Session Summary still shows Phase, Remaining (phase), and Ends (local), while any notification depends on browser permission. If permission is denied, the page still updates visually, but no system notification should be expected.
Start button will not run
Someone accidentally clears Focus length or enters 0. Start stays unavailable because the timer requires a focus phase longer than 0 minutes. Entering 1 or more in Focus length restores the normal start path. If schedule values still seem odd afterward, check Short break, Long break, and Long break every before relying on Goal ETA.
FAQ:
Does a Pomodoro round always have to be 25 minutes?
No. The 25-minute focus round is the familiar baseline, and Focus length starts there, but the field accepts whole minutes of 1 or more so the timing can match the task.
Why does Goal ETA disappear when Goal rounds is 0?
A goal of 0 means the session is open ended. Goal progress and Goal ETA appear only when Goal rounds is greater than 0 because the timer needs a target focus count to estimate a finish time.
Why did my long break appear after this focus round?
After each completed focus round, the timer checks Long break every. If the completed focus count is a multiple of that value, Next phase becomes Long break instead of Short break.
Can background tabs affect the timer cues?
Yes. Browsers can throttle inactive tabs, and requestAnimationFrame updates are not the same as a dedicated alarm service. Keep the tab visible for the most predictable countdown display, and use Desktop notification or Prevent screen sleep when those browser features are available.
Why do vibration, notification, or wake lock settings sometimes do nothing?
Those settings depend on browser support, device hardware, permissions, visibility, and system power policy. The timer can request the cue, but the browser or operating system decides whether it runs.
Is the session sent to a server for calculation?
No server calculation is needed for the timer state, schedule projection, time-mix chart, CSV, DOCX, or JSON output. They are generated from the values shown in the browser.
Glossary:
- Focus round
- A timed work interval that can count toward Goal rounds when it completes.
- Short break
- The ordinary recovery phase after a focus round that does not end the long cycle.
- Long break
- The longer recovery phase after the completed focus count reaches the Long break every rule.
- Goal ETA
- The estimated local finish time for the chosen number of Goal rounds under the current timing settings.
- Pomodoro Schedule
- The projected list of upcoming phases with local start times and duration in minutes.
- Wake lock
- A browser request that asks the device to keep the screen from dimming or locking while the timer runs.
References:
- Get Started with The Pomodoro Technique, Francesco Cirillo - FZCO.
- Window: setTimeout() method, MDN Web Docs, March 30, 2026.
- Screen Wake Lock API, MDN Web Docs, July 3, 2025.
- Notifications API, MDN Web Docs, March 16, 2026.
- Vibration API, MDN Web Docs, April 11, 2024.
- OscillatorNode, MDN Web Docs, August 27, 2025.