* CronBuilder

Cron Expression Generator & Explainer

Build a schedule field by field, or paste any 5-field cron expression to see what it means in plain English — plus the next 5 times it would run in your timezone. Everything runs in your browser.

Presets

Every 5 minutes.

Build field by field

0-59
every
0-23
1-31
1-12 / JAN-DEC
0-7 / SUN-SAT

Next 5 run times

Computing in your browser…

Next-run times are computed in your browser’s local timezone; daylight-saving shifts follow your OS clock. A server in another timezone (or UTC) will fire at different wall-clock times.

What is a cron expression?

A cron expression is a compact, five-field schedule format used by the Unix crontab, Kubernetes CronJobs, GitHub Actions schedule: triggers, node-cron, and countless other schedulers. Read left to right, the fields are:

FieldAllowed valuesSpecial characters
Minute0–59* , - /
Hour0–23* , - /
Day of month1–31* , - /
Month1–12 or JAN–DEC* , - /
Day of week0–7 or SUN–SAT (0 and 7 = Sunday)* , - /

An asterisk means “every value”. A comma builds a list (1,15), a hyphen a range (MON-FRI), and a slash a step (*/10 = every 10th value). The expression matches when the minute, hour and month fields all match and the day condition matches — with one famous quirk covered below.

Worked examples

ExpressionMeaning
* * * * *Every minute
*/5 * * * *Every 5 minutes (minutes 0, 5, 10 … 55)
0 * * * *Every hour, on the hour
0 0 * * *Every day at midnight (00:00)
30 9 * * 1-509:30 on weekdays (Monday–Friday)
0 0 1 * *Midnight on the 1st of every month
0 9-17 * * MON-FRIOn the hour, 09:00–17:00, weekdays
0 0 * * 0Midnight every Sunday
15 2 * * 602:15 every Saturday
0 12 1 1,7 *Noon on 1 January and 1 July

Paste any of these into the tool above to see the English explanation and the exact next run times. For deeper dives, see our pages on running every 5 minutes, every hour and every day at midnight.

How this generator works

The builder edits each of the five fields with dropdowns — every value, every N, a list of specific values, or a range — and assembles the expression as you click. The free-text box works the other way round: it parses what you paste (including names like JAN and MON, steps, lists, ranges and macros such as @daily) and renders a plain-English sentence. The “next 5 runs” list is computed by stepping through the calendar from the current minute and testing each candidate against the parsed fields — the same logic a real cron daemon applies, following Vixie cron semantics. All of it is client-side JavaScript: nothing you type leaves your machine.

The day-of-month vs day-of-week gotcha

The most misunderstood rule in cron: if both the day-of-month and day-of-week fields are restricted (neither starts with *), standard cron runs the job when either one matches. So 0 0 13 * 5 fires on the 13th of every month and on every Friday — not only on Friday the 13th. This tool words its explanation with “or” in that case, and the next-run preview reflects the real OR behaviour so you can see the extra firings before they surprise you in production.

Common use cases

  • Backups and dumps — nightly database dumps at a quiet hour, e.g. 15 3 * * *.
  • Log rotation and cleanup — weekly sweeps like 0 4 * * 0.
  • Reports and emails — a Monday-morning summary with 0 8 * * 1.
  • Health checks and pollers*/5 * * * * to ping an endpoint every 5 minutes.
  • CI pipelines — GitHub Actions and GitLab CI both accept 5-field cron for scheduled workflows.
  • Cache warmers and sync jobs — hourly refreshes with 0 * * * *.

Timezones and daylight saving

Cron has no timezone syntax of its own — the daemon fires according to the clock of the machine it runs on. The previews on this page use your browser’s local timezone, including whatever daylight-saving rules your operating system applies, so treat them as “what this schedule means where I am sitting”. On DST transition nights, jobs scheduled inside the skipped or repeated hour (often 02:00–03:00) may not behave the way a naive reading suggests; if a job is critical, schedule it outside those hours or run your scheduler in UTC.

Frequently asked questions

What is a cron expression?

A cron expression is a five-field text string — minute, hour, day of month, month, day of week — that tells a scheduler like the Unix crontab when to run a job. For example, "0 0 * * *" means "at minute 0 of hour 0, every day", i.e. daily at midnight. Each field accepts numbers, ranges (1-5), lists (1,15), steps (*/5) and, for month and weekday, three-letter names like JAN or MON.

What does */5 mean in cron?

The slash is a step operator. */5 in the minute field means "every 5th minute starting from 0": minutes 0, 5, 10, ... 55. It matches clock minutes divisible by 5, not "5 minutes after the job was installed". You can combine it with a range: 10-40/5 runs at minutes 10, 15, 20, 25, 30, 35 and 40.

Are cron times local time or UTC?

It depends on the machine running the scheduler. Classic crontab uses the server’s system timezone; many containers and cloud schedulers (like AWS EventBridge) default to UTC. This page computes next-run previews in your browser’s local timezone, so if your server runs in UTC the wall-clock times there will differ. Always check the timezone of the machine that actually runs the job.

Why does my cron job with both day fields run more often than expected?

In standard (Vixie) cron, if you restrict both day-of-month AND day-of-week — e.g. "0 0 13 * 5" — the job runs when EITHER field matches: on the 13th of every month and also on every Friday. It is an OR, not an AND. If you want "only Friday the 13th" you need a wrapper script that checks the weekday, or a scheduler with different semantics.

Is 0 or 7 Sunday in cron?

Both. Standard cron accepts 0 and 7 for Sunday in the day-of-week field, and also the name SUN. Note that Quartz and AWS EventBridge number weekdays differently (1 = Sunday there), which is a common source of bugs when copying expressions between systems.

Does this tool support seconds or a year field?

No — it parses standard 5-field cron, which has no seconds and no year. If your expression has 6 fields it is probably AWS EventBridge syntax (with a year field), and 7 fields is usually Quartz (seconds first). We have dedicated guides explaining both formats and how to convert them.

Is this cron generator free? Does it send my data anywhere?

It is free, with no sign-up. Parsing, the English explanation and the next-run calculation all run as JavaScript in your browser; the expressions you type are never sent to a server.

Other cron dialects

Not every “cron” is the same. AWS EventBridge uses six fields with a year and a ? wildcard — see the AWS cron expression guide. Java’s Quartz scheduler puts seconds first and counts Sunday as 1 — see the Quartz cron expression guide.