What Is a Cron Expression?

A cron expression is a line of text that tells a scheduler when to run a task. If you are asking what is a cron expression and how to read one, the answer and a live example are right below.

Last updated: October 8, 2026

The short answer

A cron expression is a line of text, usually five fields separated by spaces, that tells a scheduler when to run a task. Each field narrows the time: minute, hour, day of month, month and day of week.

30 2 * * 1
Minute30
Hour2
Day of month*
Month*
Day of week1

Runs at 2:30 AM every Monday.

The expression says when. What runs, and in which time zone, is set by the system that reads it.

Try a cron expression

Type any expression and see it broken down field by field, in plain English, with the next run times.

What is a cron expression made of? How to read one

Read the fields from left to right. The scheduler runs the task at every minute when all the fields match. A * matches anything, so the more fields you replace with a number, the rarer the schedule.

FieldAllowed valuesIn 30 2 * * 1
Minute0 to 5930: at minute 30
Hour0 to 23 (24-hour clock)2: during hour 2, which is 2 AM
Day of month1 to 31*: any day of the month
Month1 to 12, or JAN to DEC*: any month
Day of week0 to 6 with 0 as Sunday (7 also works on many systems), or SUN to SAT1: only on Monday

So 30 2 * * 1 reads: at minute 30, of hour 2, on any day of the month, in any month, but only on Monday. That is 2:30 AM every Monday.

Four symbols let you describe more than a single value: a comma for a list (1,15), a hyphen for a range (9-17), a slash for a step (*/15) and the asterisk for every value. They are covered in the cron special characters reference.

Cron expression examples

These six cover most of what people schedule. Copy one, or open it in the Generator to change the time.

ExpressionWhat it doesUse
* * * * *Runs every minute. Open
*/15 * * * *Runs every 15 minutes. Open
0 * * * *Runs every hour, on the hour. Open
30 2 * * 1Runs at 2:30 AM every Monday. Open
0 9 * * 1-5Runs at 9:00 AM every weekday (Mon-Fri). Open
0 0 1 * *Runs at 12:00 AM on day 1 of every month. Open

There are many more in the cron examples library, and detailed pages for every 5 minutes, every hour, every weekday and the first day of the month.

What a cron expression does not tell you

  • The time zone. The expression has none. The system that runs it decides: the server's zone, UTC, or a zone you configure. Use the cron timezone converter to convert.
  • What runs. The command, workflow or function is set somewhere else: a crontab line, a workflow file, a manifest.
  • Whether it ran. A schedule is a request, not a guarantee. Platforms can delay or skip runs, so jobs should be safe to repeat.
  • Which dialect it uses. The same text can be valid on one system and rejected by another. See the next section.

Cron expressions on different platforms

Standard cron has five fields. Several platforms change that, so an expression copied from one place often fails in another. The same schedule, weekdays at 9:00, looks like this:

SystemWeekdays at 9:00 written for itGuide
Linux, Kubernetes, GitHub Actions, Vercel0 9 * * 1-5Crontab syntax reference
AWS EventBridgecron(0 9 ? * MON-FRI *)AWS cron expression guide
Quartz (Java)0 0 9 ? * MON-FRIQuartz cron expression guide

Use the cron expression validator to check an expression against all of these at once.

Common mistakes when reading cron

  • Using * where you meant a single time. * 9 * * * runs every minute from 9:00 to 9:59, which is 60 runs. 0 9 * * * runs once.
  • Expecting a step to count from now. */10 in the minute field means minutes 0, 10, 20 and so on of every hour, not ten minutes after you saved it.
  • Restricting both day fields. On classic Linux cron 0 9 15 * 1 runs on the 15th or on Mondays, not on Mondays that fall on the 15th. See the crontab syntax reference.
  • Forgetting the time zone. "9 AM" on a UTC platform is 9 AM UTC.

Sources and further reading