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