Free Cron Expression Generator

Build a standard 5-field cron expression from each field, pick a common preset, and read a plain-English explanation of exactly when it will run.

Common presets
0–59
0–23
1–31
1–12
0–6

Each field accepts a number, * (any), a list like 1,3,5, a range like 9-17, or a step like */15. Day-of-week uses Sunday = 0 (7 also means Sunday).

Cron expression
0 9 * * 1

Meaning: At 09:00 on Monday.

Quick answer

A cron expression is five space-separated fields β€” minute, hour, day-of-month, month, and day-of-week β€” that tell a scheduler when to run a job. For example, 0 9 * * 1 means "at 09:00 on Monday." This tool builds the expression from your inputs and explains the schedule in plain English so you can verify it before deploying.

Formula & method

Cron uses five fields in fixed order: minute (0–59), hour (0–23), day of month (1–31), month (1–12), and day of week (0–6, where Sunday is 0 and 7 also means Sunday). Each field accepts a single number, an asterisk (*) for "any value", a comma list like 1,3,5, a range like 9-17, or a step like */15. This tool validates each field against its allowed range, joins them with single spaces, and translates the combination into a readable sentence. Everything runs in your browser β€” nothing is uploaded.

Examples

Example 1: Weekday morning job
Input
minute 0, hour 9, day-of-month *, month *, day-of-week 1
Result
0 9 * * 1 β€” At 09:00 on Monday
Why
Fixed minute and hour give a clock time; day-of-week 1 restricts it to Monday.
Example 2: Every 15 minutes
Input
minute */15, hour *, day-of-month *, month *, day-of-week *
Result
*/15 * * * * β€” Every 15 minutes
Why
A step value */15 on the minute field fires at minute 0, 15, 30, and 45 of every hour.
Example 3: Daily at midnight
Input
minute 0, hour 0, day-of-month *, month *, day-of-week *
Result
0 0 * * * β€” At 00:00
Why
Minute 0 and hour 0 with all other fields wildcarded runs once a day at midnight.
Example 4: First of every month
Input
minute 30, hour 8, day-of-month 1, month *, day-of-week *
Result
30 8 1 * * β€” At 08:30 on day 1 of the month
Why
Day-of-month 1 limits the run to the 1st; month * means every month.
Example 5: Top of every hour
Input
minute 0, hour *, day-of-month *, month *, day-of-week *
Result
0 * * * * β€” At minute 0 of every hour
Why
A fixed minute with a wildcard hour runs once per hour, on the hour.

When to use this tool

  • Scheduling a recurring task on a Linux/Unix server, in a Docker container, or in a CI pipeline via a crontab.
  • Configuring a scheduled job in tools that use cron syntax, such as GitHub Actions, Kubernetes CronJobs, or cloud function schedulers.
  • Double-checking that an existing cron line actually runs when you think it does, using the plain-English explanation.

Common mistakes

  • Putting the fields in the wrong order. The order is always minute, hour, day-of-month, month, day-of-week β€” many people accidentally swap hour and minute.
  • Assuming Sunday is 1. In standard cron, day-of-week starts at Sunday = 0 (and 7 also means Sunday); Monday is 1.
  • Setting both day-of-month and day-of-week to specific values and expecting an AND. Most cron daemons treat them as OR, so the job runs when either matches.
  • Writing */60 or values outside a field's range (like hour 24 or minute 60). Use 0–59 for minutes and 0–23 for hours.
  • Confusing standard 5-field cron with extended formats. Quartz and some tools add a seconds field (6 fields) and use different day-of-week numbering.

Frequently asked questions

What are the five fields in a cron expression?

In order: minute (0–59), hour (0–23), day of month (1–31), month (1–12), and day of week (0–6). An asterisk in any field means 'every' value for that field.

How do I run a job every 15 minutes?

Use */15 in the minute field and asterisks elsewhere: */15 * * * *. The step value */15 fires at minute 0, 15, 30, and 45 of every hour.

Is Sunday 0 or 7 in cron?

Both. Standard cron numbers days of the week 0–6 starting at Sunday, and most implementations also accept 7 as an alias for Sunday. Monday is always 1.

What does an asterisk (*) mean?

An asterisk means 'any value' for that field. For example, an asterisk in the hour field means the job is eligible to run during every hour of the day.

What's the difference between * and */1?

Nothing in practice β€” */1 means 'every 1 unit', which is the same as *. Steps become useful with larger values like */5 or */15.

Why does my job run more often than expected when I set both day-of-month and day-of-week?

Most cron daemons OR the day-of-month and day-of-week fields when both are specified, so the job runs whenever either condition matches. Leave one as * to avoid surprises.

Does this tool support seconds or the Quartz format?

No. It generates the classic 5-field cron format used by Unix crontab, GitHub Actions, and Kubernetes. Quartz and some schedulers add a seconds field and use different day-of-week numbering.

Sources & references

External references open in a new tab. We are independent and not affiliated with these organizations.

  • βœ“ Free to use
  • βœ“ No sign-up required
  • βœ“ Runs entirely in your browser β€” nothing is uploaded.
  • βœ“ Formula and method shown above

Provided β€œas is” for general information only β€” results may be inaccurate, so verify before you rely on them. No warranty; use at your own risk.

Built and reviewed by HIFreeTools against the formula shown above and any authoritative references cited on this page. See our methodology and editorial standards.

Related tools

Embed this tool on your site

Free to embed, no sign-up. Paste this code where you want the cron expression generator to appear: