ToolJutsu
All tools
Developer Tools

Cron Expression Builder

Build and explain cron expressions in plain English.

Five space-separated fields: minute hour day-of-month month day-of-week. Supports *, */n, a-b and a,b,c.

Presets
At 09:00, Monday through Friday.
Next 5 runs
  • Mon, May 25, 2026, 09:00 AM
  • Tue, May 26, 2026, 09:00 AM
  • Wed, May 27, 2026, 09:00 AM
  • Thu, May 28, 2026, 09:00 AM
  • Fri, May 29, 2026, 09:00 AM

Times are shown in your local time zone.

Processed on your device. We never see your files.

How to use Cron Expression Builder

What this tool does

A cron expression is a compact five-field string that tells a scheduler when to run a job. It is powerful but famously hard to read at a glance — 0 9 * * 1-5 gives no hint that it means “weekday mornings”. This tool fixes that. Type or build an expression and it does three things: it validates the syntax, it translates the expression into a plain-English sentence, and it calculates the next five times the job would actually run. A row of preset buttons fills in common schedules so you do not have to remember the syntax. Everything is computed inside your browser.

Why you might need it

Cron expressions show up everywhere — system crontabs, CI pipelines, serverless schedulers, database jobs, backup scripts. Writing one by hand is error-prone, and a wrong expression fails quietly: the job simply runs at the wrong time, or never. Reading someone else’s expression is just as hard. This tool gives you a fast feedback loop. You can confirm that */15 * * * * really means “every 15 minutes”, check that a nightly backup is not accidentally set to run every minute, and see concrete upcoming run times rather than trusting your mental model of the syntax.

How to use it

  1. Type a cron expression into the field, or click a preset to fill it in.
  2. Read the green summary — the plain-English description of when the job runs.
  3. Check the Next 5 runs list to see concrete dates and times in your local time zone.
  4. Click Copy expression to copy the finished cron string into your crontab, CI config or scheduler.

If the expression is invalid, a red message explains exactly which field is wrong and why, so you can fix it immediately.

Field syntax explained

Each of the five fields accepts the same building blocks. A plain number like 5 matches that single value. An asterisk * matches every value in the field’s range. A step such as */15 matches every 15th value starting from the minimum — in the minute field that is :00, :15, :30, :45. A range like 1-5 matches every value from 1 to 5 inclusive; in the day-of-week field that is Monday through Friday. A list 1,15,30 matches each value you name. You can combine a range with a step too: 0-30/10 matches 0, 10, 20 and 30. The fields, in order, are minute, hour, day-of-month, month, and day-of-week, where day-of-week counts 0 for Sunday through 6 for Saturday.

Common pitfalls

The single most surprising rule in cron is how the two day fields combine. When both day-of-month and day-of-week are set to something other than *, the job runs whenever either condition is true — not only when both are. So 0 0 13 * 5 runs at midnight on the 13th of every month and on every Friday, which is rarely what people expect. Another trap is the time zone: this tool shows your local time, but a server’s cron daemon uses the server’s own time zone, often UTC. Always confirm which zone your scheduler runs in. Finally, this tool covers the classic numeric syntax; it does not interpret shortcuts like @daily or named values like MON and JAN, which only some cron implementations support.

Tips and advanced use

Use the next-run list as a sanity check before you deploy a schedule — if the upcoming times do not look right, the expression is wrong no matter how plausible it reads. When you want a job spread out rather than all firing on the hour, a step like 7,37 * * * * or */20 avoids the thundering-herd effect of everything running at :00. And because the whole tool runs locally, you can paste in expressions from private infrastructure without any of it leaving your machine.

Frequently asked questions

Is my cron expression sent to a server?
No. Parsing the expression, writing the plain-English explanation, and calculating the next run times all happen in your browser with JavaScript. Nothing is uploaded — the tool works the same with no network connection.
What do the five fields mean?
In order they are minute (0–59), hour (0–23), day-of-month (1–31), month (1–12) and day-of-week (0–6, where 0 is Sunday). A field set to * means every value, so 0 9 * * 1-5 means 9:00 on Monday through Friday.
What time zone are the next run times in?
They are shown in your computer's local time zone. A real cron daemon runs in whatever time zone its server is configured for, so if your server uses UTC the actual run times may differ from what you see here.
How do day-of-month and day-of-week interact?
When both fields are restricted, standard cron runs the job if either one matches — not only when both match. This tool follows that rule, which is a common source of surprises in real schedules.
Does it support special strings like @daily or names like MON?
No. This tool handles the classic five numeric fields with , step (/n), range (a-b) and list (a,b,c) syntax. It does not parse @daily shortcuts or three-letter month and day names, which are extensions some cron implementations add.

Related tools