Developer Tools

Cron Expression Builder

Build a 5-field cron schedule without memorizing syntax: per-field controls, plain-English explanation, next 5 run times and a copyable crontab line, all in your browser.

Common schedules

Build it field by field

Minute0
Hour9
Day of month*
Month*
Day of week1-5

What this schedule means

Runs at minute 0, at hour 9, every day of the month, every month, from Monday to Friday.

Next run times

  • Tue, Nov 3, 2026, 09:00 AM
  • Wed, Nov 4, 2026, 09:00 AM
  • Thu, Nov 5, 2026, 09:00 AM
  • Fri, Nov 6, 2026, 09:00 AM
  • Mon, Nov 9, 2026, 09:00 AM

Shown in your browser timezone. Your server or scheduler may run in a different timezone, so check that before deploying.

Crontab line

0 9 * * 1-5

Field reference

FieldAllowedNames allowed
Minute0-59-
Hour0-23-
Day of month1-31-
Month1-12jan-dec
Day of week0-6 (7 = Sunday)sun-sat

Symbols cheat sheet: * = every value  |  */n = every nth value  |  a-b = range  |  a,b = list  |  a-b/n = step inside a range. When day-of-month and day-of-week are both restricted, the job runs if either one matches.

Privacy: building, explaining and previewing run entirely in your browser. Nothing you type is uploaded, stored or logged.

More developer tools: Unix Timestamp Converter | JSON Formatter | Regex Tester

How this calculator works

A cron expression is five fields that tell a scheduler when to run a job: minute, hour, day of month, month and day of week, in that order. The classic example, 0 9 * * 1-5, means at minute 0, hour 9, every day of the month, every month, Monday to Friday: weekdays at 9 AM. The symbols are the whole language: * means every value, */15 means every 15th value, 9-17 means a range, and 0,30 means a list. Month and weekday names work too, so 0 0 * * mon is the same schedule as 0 0 * * 1.

Worked example: a nightly backup at 2:30 AM is 30 2 * * *, five fields and a command after them in a real crontab line. A report every 15 minutes during office hours on weekdays is */15 9-17 * * 1-5. Load either preset in the builder and the page explains it back in plain English with the next five run times, so you can confirm the schedule before it touches production. One classic trap: when day of month and day of week are both restricted, cron runs the job when EITHER matches, not both, so 0 0 1 * 0 fires on the 1st of the month AND every Sunday. Another: an expression can be perfectly valid syntax and still never run, like February 31, which is why the preview searches ahead and warns you when it finds no runs.

Three things make this builder safer than guessing syntax from memory. First, every field is validated as you type, with out-of-range values rejected in plain words instead of failing silently at 2 AM. Second, the next-run preview is computed from the same matching rules a real cron daemon uses, including the day-of-month/day-of-week OR rule, so what you see is what the scheduler will do. Third, everything runs locally in your browser, so schedules for internal jobs never leave your machine. One honest warning: a cron expression carries no timezone, so the preview shows your browser timezone while your server may run UTC; check the server timezone before deploying, or a 9 AM job becomes a 2 PM job. Pair this builder with the Unix Timestamp Converter and the JSON Formatter in the same developer cluster.

Frequently asked questions

How do I build a cron expression?
Pick a mode for each of the five fields: every value, every Nth value, specific values, or a range. The expression updates as you change controls, or paste an existing expression and the builder syncs its controls to match it. Start from a preset like Weekdays at 9:00 AM and adjust one field at a time.
What do the five cron fields mean?
In order: minute (0-59), hour (0-23), day of month (1-31), month (1-12), day of week (0-6 where 0 is Sunday, and 7 also means Sunday). So 30 2 * * * runs at 2:30 AM every day, and 0 0 1 * * runs at midnight on the 1st of every month.
What do *, /, - and commas mean in cron?
* means every value in that field. */15 means every 15th value, starting from the field minimum. 9-17 means every value from 9 to 17 inclusive. Commas list specific values, as in 0,30 for minutes 0 and 30. They combine, so 0,30 9-17 * * 1-5 runs at :00 and :30 during office hours on weekdays.
Does cron run when both day of month and day of week are set?
Yes, when either matches. This is the classic cron OR rule and the most common surprise: 0 0 1 * 0 runs on the 1st of the month and on every Sunday. If you want only the 1st, leave day of week as *; if you want only Sundays, leave day of month as *.
Why does my valid cron expression never run?
The usual cause is a date that never exists, like February 31 or April 31: the syntax is legal but no calendar day matches. The preview on this page searches about five years ahead and warns you when it finds no runs, so impossible schedules are caught before deployment.
Is my schedule uploaded or stored?
No. Building, explaining and previewing all run locally in your browser with no server round trip, no account and no storage. Closing the page discards everything you entered.
Disclaimer: Results are estimates for planning purposes only and are not financial advice. Actual loan terms, taxes and investment returns vary. Consult a qualified professional before making financial decisions.