Skip to content
Zoyku

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

  1. 1Type a cron expression, or click a preset to start from a known-good one.
  2. 2Read the field-by-field breakdown in plain language.
  3. 3Check the next five run times, switching between local time and UTC.
  4. 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.

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>
100% local processing