Cron Expression Generator

A cron expression is five fields separated by spaces: minute, hour, day of month, month and day of week. */5 * * * * runs every five minutes; 0 9 * * 1-5 runs at 9:00 on weekdays. Build one with the dropdowns or paste your own to see it explained and its next ten run times.

The five fields, in order
FieldAllowed values
Minute0-59
Hour0-23
Day of month1-31
Month1-12 or JAN-DEC
Day of week0-7 or SUN-SAT (0 and 7 are Sunday)

Updated

Pick values field by field or paste an expression. The tool explains it in plain English, flags mistakes, lists the next ten runs in any time zone and gives you the same schedule ready for crontab, GitHub Actions, Vercel and Kubernetes.

Common schedules

Common cron schedules
ExpressionRuns
*/5 * * * *Every 5 minutes
*/15 * * * *Every 15 minutes
0 * * * *Every hour, on the hour
0 */6 * * *Every 6 hours
0 0 * * *Every day at midnight
0 9 * * 1-5Weekdays at 9:00
30 17 * * 5Fridays at 17:30
0 3 * * 0Sundays at 3:00
0 0 1 * *First day of every month
0 8 1 1,4,7,10 *First day of each quarter at 8:00
*/10 9-17 * * 1-5Every 10 minutes in office hours
0 0 1 1 *Once a year, 1 January

Cron syntax

What each character means in a cron field
SymbolMeaningExampleReads as
*Every value* in the hour fieldEvery hour
,A list of values1,15 in the day fieldOn the 1st and 15th
-A range1-5 in the weekday fieldMonday to Friday
/A step through a range*/10 in the minute fieldMinutes 0, 10, 20, 30, 40, 50
JAN-DECMonth names (any case)jun-augJune to August
SUN-SATDay names; 0 and 7 are both Sundaysat,sunWeekends
@dailyShortcut for 0 0 * * *@hourly, @weekly, @monthly, @yearlySame as the five-field form

How to read a cron expression

Read the fields from left to right: at this minute, of this hour, on this day of the month, in this month, on this day of the week. A star means any value. So 30 6 * * 1 reads: at minute 30 of hour 6, on any day of the month, in any month, on Monday. That is 06:30 every Monday.

Each field can hold a single value, a list (1,15), a range (1-5), a step (*/10) or a mix (0-30/10,45). The builder on this page writes these for you, and the description line reads the result back so you can check it.

The day-of-month and day-of-week trap

When both day fields have a value other than a star, cron treats them as alternatives. A job set to 0 0 1 * 1 runs on the first of the month and on every Monday. That surprises a lot of people who expected the first Monday of the month.

Cron cannot express the first Monday directly. The usual workaround is to schedule 0 0 1-7 * * and have the script exit unless the day is a Monday, or to use a scheduler with its own syntax for it.

Where your schedule will run

Every platform below uses the same five fields, but they wrap them differently and some add rules of their own. Copy the snippet for yours from the tool, then check its documentation for limits on how often jobs can run on your plan.

How it works

  1. Type or paste an expression into the box, or click one of the presets. Shortcuts like @daily and @weekly work too.
  2. Or use the builder: each of the five fields has a choice of every, every N, specific values or a range. The expression updates as you choose.
  3. Read the plain-English line to check the schedule says what you meant. Errors, such as a minute of 61 or a missing field, are named.
  4. Choose a time zone to see the next ten runs as they would happen there, including changes for daylight saving.
  5. Copy the schedule in the format your platform expects. Everything runs in your browser.

Tips

Frequently asked questions

How do I write a cron job that runs every 5 minutes?

Use */5 * * * *. The */5 in the minute field means every fifth minute starting at 0, so it runs at :00, :05, :10 and so on. For every 10 or 15 minutes, change the number to 10 or 15.

What does */ mean in cron?

The slash sets a step. */15 in the minute field means every 15th minute of the hour: 0, 15, 30 and 45. You can step through a range too: 9-17/2 in the hour field means 9, 11, 13, 15 and 17.

Is Sunday 0 or 7 in cron?

Both. Standard cron accepts 0 and 7 for Sunday, then 1 for Monday through 6 for Saturday. Day names such as SUN and MON avoid the question altogether.

Why does my expression have six or seven fields?

Quartz, Spring and some cloud schedulers add a seconds field at the start and sometimes a year at the end. Standard crontab, GitHub Actions, Vercel and Kubernetes use five fields. This tool reads the five-field form; drop the seconds field to check the rest.

Which time zone does cron use?

A crontab uses the time zone of the server it runs on, unless the system supports a CRON_TZ or TZ setting. GitHub Actions and Vercel use UTC. Kubernetes CronJobs use the controller's time zone unless you set the timeZone field in the spec.

Related: Unix timestamp converter, Regex tester, Regex cheat sheet, JSON formatter, All free tools.

Start for free or see all free tools. We.Inc is free to start, with no card needed. AI building is on paid plans from $20 a month.

More in Free Tools

We.Inc is an AI-powered website builder you can resell under your own brand. Launch a branded client dashboard, bill on Stripe Connect, and deliver AI-generated websites in minutes. White-label plans start at $99 a month for 25 client sites, with a 7-day free trial and no per-site fees.

Product

Who It's For

Features

Resources

Company

View Sitemap