# Cron Expression Decoder

> Translate a cron expression into plain English, field by field.

- Page: https://decoder.tools/cron-expression-decoder
- Category: Network, System & Packets
- Status: live, runs in the browser
- Last reviewed: 2026-10-23

A cron expression decoder translates the five space-separated fields of a crontab schedule — minute, hour, day of month, month and day of week — into a plain-English description of when the job actually runs.

## Example

```text Input
0 9 * * 1-5
```

```text Output
At minute 0, hour 9, on every day of month, in every month, on Mon–Fri.
Minute: 0
Hour: 9
Day of month: *
Month: *
Day of week: 1-5
```

## What is the Cron Expression Decoder?

A cron expression is terse by design: five fields, each accepting a value, a range (9-17), a list (1,3,5), a step (*/5) or a wildcard. Once you combine them the meaning stops being obvious, and a schedule that reads fine is often not what the author intended.

The classic mistake is 0 0 * * 1-5 versus 0 0 1-5 * *: the first runs at midnight on weekdays, the second at midnight on the first five days of every month. The other is the day-of-month / day-of-week interaction — when both are restricted, cron runs the job if either matches, not both, so 0 0 1 * 1 fires on the first of the month and on every Monday.

Extensions vary by implementation. Vixie cron accepts @daily and @reboot; Quartz adds a seconds field at the front and a year field at the end; Kubernetes CronJob follows standard five-field syntax and runs in UTC unless a time zone is set. Reading the decoded description is faster and safer than reasoning it out.

## How to use the Cron Expression Decoder

1. Paste your cron expression — five fields separated by spaces.
2. Read the plain-English description and the per-field breakdown.
3. Check the time zone your scheduler uses; cron does not assume UTC everywhere.

## When to use it

- Confirming a crontab line does what the comment above it claims.
- Reviewing a Kubernetes CronJob schedule before deploying it.
- Auditing inherited scheduled jobs whose intent is no longer documented.

## Cron Expression Decoder at a glance

| | |
|---|---|
| Fields | minute hour day-of-month month day-of-week |
| Ranges | 0–59 · 0–23 · 1–31 · 1–12 · 0–6 (Sunday = 0) |
| Step syntax | */5 means every 5 units of that field |
| DOM + DOW | If both are restricted, either match triggers the job |

## FAQ

### What do the five cron fields mean?

In 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). Some implementations also accept 7 for Sunday.

### What does */5 mean in cron?

Every 5 units of that field. In the minute field it runs the job every five minutes; in the hour field, every five hours.

### How do I run a job every weekday at 9am?

0 9 * * 1-5 — minute 0, hour 9, any day of month, any month, Monday through Friday.

### Which time zone does cron use?

The system's local time zone by default, which is why jobs shift when daylight saving changes. Kubernetes CronJobs default to UTC, and most schedulers let you set a zone explicitly — always do.
