RevealTheme logo

Cron Expression Builder

Assemble a classic five-field cron expression by filling in each field, or start from a common preset. The expression updates live and copies to your clipboard with one click.

0 * * * *
Common presets

How to use this tool

  1. 1

    Type a value into each of the five fields: Minute, Hour, Day (of month), Month, and DOW (day of week).

  2. 2

    Use cron syntax inside any field: * for every value, a number like 9, a range like 1-5, a step like */15, or a list like 1,15.

  3. 3

    Or click a preset such as 'Weekdays at 8am' to fill all five fields at once, then tweak as needed.

  4. 4

    Read the assembled expression in the preview box and press Copy to put it on your clipboard for crontab or your scheduler.

What is a cron expression and how do the five fields work?

Cron is the scheduling syntax used by the Unix cron daemon and most CI, container, and serverless schedulers. A classic cron line has five space-separated fields read left to right: minute (0-59), hour (0-23), day of month (1-31), month (1-12), and day of week (0-7, where both 0 and 7 mean Sunday). A job runs whenever the current time matches every field. Each field accepts more than a single number. An asterisk (*) matches every value. A range like 1-5 in the day-of-week field means Monday through Friday. A step like */15 in the minute field means every fifteen minutes. A list like 1,15 matches the 1st and 15th. One gotcha: when both day-of-month and day-of-week are restricted, standard cron treats them as an OR, so the job fires when either matches. Another: some schedulers such as Quartz prepend a seconds field, making six fields. This builder emits only the classic five-field form and does not add seconds.

Common use cases

  • Schedule a nightly database backup to run at a quiet hour, for example 0 3 * * * for 3am every day.

  • Configure a GitHub Actions or GitLab CI workflow that runs on a cron trigger without hand-counting the fields.

  • Set up a Kubernetes CronJob or a serverless scheduled function and paste the expression into the schedule field.

  • Build a weekday-only reminder or report job, like 0 8 * * 1-5 for 8am Monday through Friday.

  • Create a high-frequency polling task such as */5 * * * * to check a queue or endpoint every five minutes.

  • Generate a monthly billing or cleanup expression like 0 0 1 * * that fires at midnight on the first of each month.

Frequently asked questions

Does this tool validate my cron expression?▼
No. It is a string assembler, not a parser. The fields are free text, so a typo like 'banana' or an out-of-range value is concatenated without warning. Check correctness with a real cron parser or by running crontab -e on the target system.
Does it show the next fire times or translate the expression to English?▼
No. It only joins your five fields into one expression. It does not compute upcoming run times or produce a human-readable summary.
What does */5 * * * * mean?▼
Cron supports the step syntax */N, so */5 in the minute field means every 5 minutes, any hour, any day. You can type that directly into the Minute field here.
How do I run something only on weekdays?▼
Put 1-5 in the DOW field. For example 0 9 * * 1-5 runs at 9am Monday through Friday, since cron numbers Monday as 1 and Friday as 5.
Does it support six-field cron with seconds, or @daily style macros?▼
No. It emits the classic five-field form only. It does not add a seconds field (used by schedulers like Quartz) and does not output shorthand macros such as @daily or @reboot.
Why does day-of-month and day-of-week behave oddly together?▼
That is standard cron, not a tool quirk. When both fields are restricted to specific values, classic cron runs the job when either one matches, not only when both do.
Is my data uploaded anywhere?▼
No. Everything runs in your browser. The expression is built locally and the Copy button uses your clipboard directly, with no network request and nothing sent to a server.

Related tools