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.
| Field | Allowed values |
|---|---|
| Minute | 0-59 |
| Hour | 0-23 |
| Day of month | 1-31 |
| Month | 1-12 or JAN-DEC |
| Day of week | 0-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.
| Expression | Runs |
|---|---|
| */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-5 | Weekdays at 9:00 |
| 30 17 * * 5 | Fridays at 17:30 |
| 0 3 * * 0 | Sundays 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-5 | Every 10 minutes in office hours |
| 0 0 1 1 * | Once a year, 1 January |
| Symbol | Meaning | Example | Reads as |
|---|---|---|---|
| * | Every value | * in the hour field | Every hour |
| , | A list of values | 1,15 in the day field | On the 1st and 15th |
| - | A range | 1-5 in the weekday field | Monday to Friday |
| / | A step through a range | */10 in the minute field | Minutes 0, 10, 20, 30, 40, 50 |
| JAN-DEC | Month names (any case) | jun-aug | June to August |
| SUN-SAT | Day names; 0 and 7 are both Sunday | sat,sun | Weekends |
| @daily | Shortcut for 0 0 * * * | @hourly, @weekly, @monthly, @yearly | Same as the five-field form |
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.
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.
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.
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.
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.
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.
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.
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.
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.