Every 5 minutes
*/5 * * * *
Every 5 minutes — at the top of the hour and every 5 minutes after.
Step values (*/5) are the easiest way to express "every N" without listing every number. Common for health checks and polling jobs.
Build, decode, and preview cron schedules with the next run times.
Last updated
*/15****Every 15 minutes
2026-04-26 21:45 Sun2026-04-26 22:00 Sun2026-04-26 22:15 Sun2026-04-26 22:30 Sun2026-04-26 22:45 SunA cron expression is a compact way to describe a recurring schedule. It's the same syntax used by Unix cron, the original Linux scheduler — and it has spread to almost every job runner you'll meet: Kubernetes CronJobs, GitHub Actions schedules, AWS EventBridge, Cloudflare Workers, Vercel cron, and most CI/CD platforms.
The format looks intimidating but is actually just five fields separated by spaces: minute, hour, day-of-month, month, day-of-week. Each field is either a number, a list (1,15), a range (9-17), a step (*/5), or a wildcard (*). A good cron tool turns the expression into plain English and shows the next firing times so you can verify it before deploying.
Some platforms extend the basic 5-field syntax with a leading *seconds* field (Quartz, Spring, Kubernetes 6-field) or a trailing *year* field. Always check which format your scheduler accepts before pasting an expression.
* means "every value" for that field — it's the most common reason a schedule fires more often than expected.*/N means "every N units" — */5 in the minute field is "every 5 minutes".Pick a preset that's close to what you want — Every minute, Hourly, Daily at 9 AM, Weekdays at 9 AM, Monthly. The expression appears in the editor.
Edit minute, hour, day-of-month, month, day-of-week. Use * for any value, comma lists, ranges (9-17), or steps (*/15).
The tool turns your expression into a sentence (At 09:00 every weekday). If the sentence doesn't match what you wanted, the expression is wrong.
Verify the next 5–10 run times in your local time zone. Watch out for daylight-saving transitions if the schedule sits near the change.
Drop the expression into your crontab, GitHub Actions workflow, Kubernetes CronJob, or whichever scheduler you're using.
The five fields of a standard cron expression, in order. Reference: the POSIX crontab(5) man page.
| Position | Field | Range | Special |
|---|---|---|---|
| 1 | Minute | 0–59 | * , - / |
| 2 | Hour | 0–23 | * , - / |
| 3 | Day of month | 1–31 | * , - / ? (some dialects) |
| 4 | Month | 1–12 or JAN–DEC | * , - / |
| 5 | Day of week | 0–6 (Sun=0) or SUN–SAT | * , - / |
*/5 * * * *
Every 5 minutes — at the top of the hour and every 5 minutes after.
Step values (*/5) are the easiest way to express "every N" without listing every number. Common for health checks and polling jobs.
0 9 * * 1-5
At 09:00 every Monday through Friday.
Day-of-week range 1-5 means Monday–Friday. Use this for office-hours reminders and weekday-only digests.
0 0 1 * *
At 00:00 on day 1 of every month.
Day-of-month 1 plus * for every other field gives you a true monthly job. Common for billing, reports, and rotation tasks.
0,30 9-17 * * 1-5
At minute 0 and 30 between 09:00 and 17:00, Monday through Friday.
Comma list (0,30) plus a range (9-17) plus weekdays. This is the kind of schedule you'd use for a BI refresh or queue drain that only matters during work hours.
*/45 and expecting it to fire every 45 minutes. Step values are computed from 0, so */45 fires at 0 and 45 — not at a true 45-minute interval.* for *every value*, a number for an exact value, a comma list (1,15), a range (9-17), or a step (*/5).*/5 * * * * mean?*/5 in the minute field fires at minute 0 and every 5 minutes after — 0, 5, 10, 15, …, 55 — and the * in every other field means it fires every hour, every day, every month, every day of the week.TZ=Europe/Berlin, AWS schedule expressions, etc.). When in doubt, store schedules in UTC.0 0 * * 0 and 0 0 * * 7?7 is also accepted as Sunday for compatibility with some dialects.