Pomodoro Total Break Time Calculator
A Pomodoro plan contains more than focus blocks. The pauses between them can add a substantial amount of time, especially when a long break replaces every fourth short break.
Run — free
This calculator totals those break minutes without requiring a start time or a focus duration. Enter the planned number of Pomodoros, the two break lengths, and the long-break interval to see the number of each break type and the complete amount of rest time in the plan.
Count only the breaks that belong inside the plan
Start with the number of Pomodoros you intend to complete. A break belongs to the calculation only when another focus session follows it, so a plan of one Pomodoro has no break time and a plan of eight Pomodoros has seven available break positions. The calculator deliberately excludes a break after the final session because that rest period does not delay completion of the planned work. This convention prevents a common overestimate in which the number of breaks is assumed to equal the number of focus sessions. It also makes the result useful when you are budgeting a fixed block of working time rather than tracking recovery after the work is finished. Set the short and long break durations in whole minutes. The default values represent a familiar pattern, but they are editable for teams that use longer recovery periods, compressed cycles, or study routines adapted to accessibility needs. The output reports the available break positions as well as each break count, making the total easy to audit before you rely on it for scheduling or capacity planning.
Understand how long breaks replace short breaks
The long-break interval describes how many completed Pomodoros trigger a longer pause. A long break replaces the short break at that position; it is not added on top of it. With eight planned Pomodoros and a long break every four sessions, the seven break positions contain one long break after session four and six short breaks. The potential long break after session eight is excluded because the plan ends there. This replacement rule is important when comparing routines: adding both break durations at an interval would inflate the answer and misrepresent how Pomodoro schedules normally work. The result separates short-break minutes from long-break minutes before combining them, so you can see exactly which assumption contributes most to the total. Zero-minute breaks are accepted for deliberate back-to-back sessions, while all counts, durations, and intervals must be bounded whole numbers. The calculation uses integer multiplication and division only, with no clock, calendar, time zone, network request, or random value. Identical inputs therefore produce identical results in the browser and through the API.
Use total break minutes in realistic planning
Total break time is useful when the question is not when a schedule ends, but how much non-focus time must be reserved. Add the result to your separate focus-time estimate when blocking a room, preparing a workshop, forecasting individual capacity, or deciding whether a study target fits before another commitment. The breakdown also helps compare two routines fairly. For example, a method with longer focus sessions may appear more demanding, yet its total scheduled rest can be similar if it uses fewer cycles. Enter the actual routine you expect to follow rather than an idealized one: shortening every pause on paper creates a compact plan that may not be sustainable in practice. This calculator does not recommend a medically appropriate rest pattern, measure interruptions, schedule notifications, or include meals and unscheduled delays. It answers one narrow planning question: how many minutes of configured short and long breaks occur between the requested Pomodoros. Treat that figure as a transparent component of a larger schedule, and add any setup, transition, meeting, or overrun allowance separately so those unrelated minutes do not become hidden inside the break estimate.
What you can do with it
Budget a deep-work block
Add the calculated rest minutes to focus time before reserving space on a calendar.
Compare Pomodoro routines
See how different short-break lengths and long-break intervals change total non-focus time.
Plan a study workshop
Estimate the minutes participants will spend on scheduled breaks across a shared set of sessions.
FAQ
Is a break counted after the final Pomodoro?
No. Only breaks followed by another planned Pomodoro are included.
Does a long break get added to a short break?
No. At each long-break interval, the long break replaces the short break.
What happens with only one Pomodoro?
There are no break positions, so all break counts and the total break minutes are zero.
Can either break duration be zero?
Yes. A zero-minute duration can represent consecutive sessions while preserving the selected break pattern.
What does an API request cost?
Each API request costs $0.002. The same deterministic calculation can also run in the browser.
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/biz/pomodoro-break-time \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pomodoros":8}'const res = await fetch("https://api.kit.forhosting.com/biz/pomodoro-break-time", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pomodoros": 8
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/biz/pomodoro-break-time",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pomodoros": 8
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/biz/pomodoro-break-time", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pomodoros":8}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pomodoros":8}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/biz/pomodoro-break-time", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"pomodoros": 8
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "biz.pomodoro_break_time",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |