Cron Explainer
Turn any cron expression into plain language: a field-by-field breakdown, the next five run times in your timezone, and one-click presets.
Type or pick a cron expression to see it explained.
Supported: numbers, ranges (1-5), lists (1,15), steps (*/10, 1-30/5), month names (JAN) and weekday names (MON). Quartz extensions L, W, # aren’t covered.
This tool runs entirely in your browser. Your data never leaves your device — it is not uploaded to any server.
How to use
- 1Type a cron expression, or click a preset to start from a known-good one.
- 2Read the field-by-field breakdown in plain language.
- 3Check the next five run times, switching between local time and UTC.
- 4Fix anything surprising in your crontab, scheduler UI or CI config.
Cron Explainer
Cron expressions are five or six cryptic fields that decide when jobs run — and a single wrong character can silently schedule nothing, or fire at 3 a.m. every Sunday. Paste an expression and this tool explains each field in plain words (minute, hour, day of month, month, day of week, plus seconds when present), then shows the next five execution times so you can confirm the schedule does what you think it does.
Validation is honest and inline: out-of-range values, backwards ranges and unsupported Quartz extensions like L, W and # get a specific, friendly error instead of a shrug. Five common presets — every minute, hourly, daily at midnight, weekdays at 9:00 and quarterly — are one click away as starting points.
Frequently asked questions
What is the difference between standard cron and Quartz syntax?
Standard Unix cron (and this tool) uses 5 fields: minute, hour, day-of-month, month, day-of-week — optionally 6 when the first field is seconds. Quartz adds a seconds field by default plus a 7th year field, and extensions like L (last day), W (nearest weekday) and # (nth weekday, e.g. MON#2). Those Quartz-only extensions are not covered here; everything standard — numbers, names like JAN and MON, ranges, lists and steps — is.
Why do the next run times differ from what my server does?
Cron evaluates times in the server's own timezone, while the tool can show local time or UTC. If your machine runs UTC+8 and the server runs UTC, “0 3 * * *” fires eight hours apart between the two. Daylight-saving transitions can also shift or skip wall-clock hours; the underlying calculation is timezone-aware and handles those transitions.
My expression has both a day-of-month and a day-of-week — why does it run more often than I expected?
Classic cron ORs the two: when both fields are restricted (neither is *), a day matching either one triggers the job. “0 0 1 * MON” runs on the 1st and on every Monday. If you want both conditions at once, the expression needs a different structure — checking the next run times here makes the behavior visible immediately.
Related tools
HTTP Status Codes
A searchable reference of 56 HTTP status codes grouped by class, each explained in one plain sentence — click any row to copy the number.
All tools →
URL Parser
Paste any URL and see it decomposed live: protocol, host, port, each path segment, decoded query parameters and hash — with copy as JSON.
All tools →
Regex Tester
Test regular expressions live: highlight every match as you type, inspect capture groups and debug patterns for JavaScript, with common flags one click away.
All tools →
JWT Decoder
Decode JWT tokens online: inspect the header and payload claims with human-readable exp and iat timestamps. Decoding only — nothing is verified or uploaded.
All tools →
Embed this tool
Put this tool on your own site with one line — it runs entirely in the visitor's browser.
<iframe src="https://zoyku.com/en/tools/cron-explainer?embed=1" width="100%" height="640" style="border:0;border-radius:16px" title="Zoyku — cron-explainer" loading="lazy"></iframe>