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
09**1-5What 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
| Field | Allowed | Names allowed |
|---|---|---|
| Minute | 0-59 | - |
| Hour | 0-23 | - |
| Day of month | 1-31 | - |
| Month | 1-12 | jan-dec |
| Day of week | 0-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.
