Scheduling
Pomodoro block plan API
Generates a Pomodoro plan inside a window with alternating focus and break blocks (long break every N pomodoros), returning timed ISO blocks and focus/break totals. Answers 'How do I split this window into pomodoros?', 'How many focus blocks fit in 2 hours?'.
Price$0.02per request
MethodPOST
Route/v1/scheduling/pomodoro-plan
StatusLive
MIME typeapplication/json
Rate limit120/minute
Cache0s public
schedulingtime-blockingpomodorofocusbreaksproductivityblocksagents
API URL
Integration docshttps://x402.hexl.dev/v1/scheduling/pomodoro-planExample request
{
"windowStart": "2026-06-04T09:00:00Z",
"windowMinutes": 120
}Example response
{
"pomodorosCompleted": 4,
"focusMinutes": 100,
"breakMinutes": 15,
"blocks": [
{
"type": "focus",
"start": "2026-06-04T09:00:00.000Z",
"end": "2026-06-04T09:25:00.000Z",
"minutes": 25
},
{
"type": "short-break",
"start": "2026-06-04T09:25:00.000Z",
"end": "2026-06-04T09:30:00.000Z",
"minutes": 5
},
{
"type": "focus",
"start": "2026-06-04T09:30:00.000Z",
"end": "2026-06-04T09:55:00.000Z",
"minutes": 25
},
{
"type": "short-break",
"start": "2026-06-04T09:55:00.000Z",
"end": "2026-06-04T10:00:00.000Z",
"minutes": 5
},
{
"type": "focus",
"start": "2026-06-04T10:00:00.000Z",
"end": "2026-06-04T10:25:00.000Z",
"minutes": 25
},
{
"type": "short-break",
"start": "2026-06-04T10:25:00.000Z",
"end": "2026-06-04T10:30:00.000Z",
"minutes": 5
},
{
"type": "focus",
"start": "2026-06-04T10:30:00.000Z",
"end": "2026-06-04T10:55:00.000Z",
"minutes": 25
}
],
"interpretation": "4 pomodoro(s): 100 min focus + 15 min breaks in a 120-min window."
}Input schema
{
"type": "object",
"required": [
"windowStart",
"windowMinutes"
],
"properties": {
"windowStart": {
"type": "string",
"examples": [
"2026-06-04T09:00:00Z"
]
},
"windowMinutes": {
"type": "number",
"examples": [
120
]
},
"workMinutes": {
"type": "number",
"examples": [
25
]
},
"shortBreakMinutes": {
"type": "number",
"examples": [
5
]
},
"longBreakMinutes": {
"type": "number",
"examples": [
15
]
},
"pomodorosPerLongBreak": {
"type": "number",
"examples": [
4
]
}
}
}Output schema
{
"type": "object",
"additionalProperties": true
}