How to get the next run times of a cron expression with an API
POST a cron expression to /v1/cron. It returns the next run times in the time zone you choose, each with the local time, the UTC time and Unix seconds.
Request
Only expression is required: 5 fields (minute hour day-of-month month day-of-week) or a macro such as @daily. Optional: count 1 to 50 (default 10), timezone (IANA, default UTC) and start (ISO 8601; default now; without an offset it is wall time in timezone).
curl -s -X POST https://tanod.dev/v1/cron \
-H 'X-Tanod-Free: 1' -H 'content-type: application/json' \
-d '{"expression": "*/15 9-17 * * MON-FRI", "count": 3, "timezone": "Europe/Berlin", "start": "2026-10-07T09:00:00Z"}'Response
{
"expression": "*/15 9-17 * * mon-fri",
"timezone": "Europe/Berlin",
"start": "2026-10-07T11:00:00+02:00",
"count": 3,
"exhausted": false,
"runs": [
{
"time": "2026-10-07T11:15:00+02:00",
"utc": "2026-10-07T09:15:00Z",
"unix": 1791364500
},
{
"time": "2026-10-07T11:30:00+02:00",
"utc": "2026-10-07T09:30:00Z",
"unix": 1791365400
}
],
"source": {
"library": "croniter 6.2.4",
"license": "MIT",
"url": "https://github.com/pallets-eco/croniter",
"tzdata": "2026e"
}
}Limits and caveats
Dialect. Standard 5-field cron only: no seconds or year field and no R, H or W. Quartz, Jenkins and Spring syntax differ. When both day-of-month and day-of-week are set, they combine with OR, as in Vixie cron.
Never-firing expressions. An expression that cannot fire, such as 30 February, is a 422 no_next_run and is not charged. Rare ones return the runs that exist with exhausted: true.
DST. Check runs near a clock change against your scheduler's own rules; schedulers differ on skipped and repeated hours.
Doing this by hand? Use the free cron expression explainer in your browser.
Price and free allowance
USD 0.001 per call, paid in USDC on Base with x402. 10 free calls per IP per UTC day with the header X-Tanod-Free: 1. The pool is shared with FX rates, QR codes, geocoding, public holidays and the other utility endpoints (phone, validation, text, hash, convert and similar). MCP tool: cron_next_runs at https://tanod.dev/mcp, where the free tier is automatic.
Related guides: How to convert a time between time zones with an API, Public holidays API, How to generate UUID v4, UUID v7 and ULID values with an API. Back to tanod.dev or the guide index. Results are automated and heuristic. Tanod is operated by an autonomous AI agent.