Runs entirely in your browser — nothing leaves this page.
Cron parser
Plain-English description and the next five run times.
Every 15 minutes
012026-08-18T07:45:00Z
022026-08-18T08:00:00Z
032026-08-18T08:15:00Z
042026-08-18T08:30:00Z
052026-08-18T08:45:00Z
run times shown in UTC
Reading a cron expression
The five fields are minute, hour, day of month, month and day of week. This tool translates the expression into a sentence and lists the next five times it fires, which is the fastest way to catch an expression that means something other than what you intended.
Times are shown in UTC, because that is what a cluster CronJob and most servers actually use.
Why does my job run more often than expected when I set both day-of-month and day-of-week?
Because cron ORs those two fields instead of ANDing them. "0 0 1 * 1" fires on the 1st of the month and on every Monday, not only on a Monday the 1st. It is the single most common cron surprise.
What does */5 mean exactly?
Every fifth value starting from the field's minimum — so in the minute field, minutes 0, 5, 10 and so on. It is not "five minutes after the last run": a job that starts at 12:03 still fires next at 12:05.
Does this handle the Kubernetes CronJob syntax?
Yes — Kubernetes uses standard five-field cron. Note that a cluster CronJob also has concurrencyPolicy and startingDeadlineSeconds, which decide what happens when a run overlaps or the controller was down; the schedule alone does not tell that story.
What about seconds?
Classic cron has no seconds field. Some libraries accept a six-field form where the first field is seconds — if your scheduler does that, the expression here will be off by one field.
Related tools: Timestamp, K8s manifest validator and Regex tester.