24 schedules

Cron expression examples

Copy-ready expressions for the schedules people actually need, each explained field by field with the next run times in your timezone and in UTC. Paste one into the generator to adapt it.

How to read a cron expression

Five space-separated fields, left to right: minute, hour, day of month, month, day of week. * means every value, */n every n-th value, a-b a range and a,b a list.

FieldAllowed valuesExamples
Minute0–59*/15 (every 15 minutes), 0 (on the hour)
Hour0–239-17 (09:00 to 17:00), */6 (every 6 hours)
Day of month1–311 (the 1st), 1,15 (1st and 15th)
Month1–12 or JAN–DEC*/3 (every quarter), JAN (January)
Day of week0–7 or SUN–SAT (0 and 7 are Sunday)1-5 (Mon–Fri), 6,0 (weekend)
01

Minutes

02

Hours

03

Daily

04

Weekly

05

Monthly and yearly

Special strings

Most Unix crons accept these shortcuts in place of the five fields. GitHub Actions and AWS EventBridge do not, so prefer the explicit form when a schedule may move between systems.

ShortcutEquivalent
@hourly0 * * * *
@daily / @midnight0 0 * * *
@weekly0 0 * * 0
@monthly0 0 1 * *
@yearly / @annually0 0 1 1 *
@rebootonce, at scheduler start

Platform differences

The five-field syntax is shared, but timezones, minimum intervals and extensions differ. Check this before copying an expression from one system to another.

PlatformFieldsTimezoneNotes
Linux / macOS crontab5System timezone (CRON_TZ or TZ can override in cronie)Shortcuts like @daily are supported. Escape % as \% in commands.
Kubernetes CronJob5UTC by default; spec.timeZone since 1.27Set concurrencyPolicy to Forbid to avoid overlapping runs.
GitHub Actions5UTC onlyMinimum interval 5 minutes; runs may be delayed; default branch only; no @ shortcuts.
AWS EventBridge6 (adds year)UTCUses cron(…) with ? in day-of-month or day-of-week; different syntax, do not paste five-field expressions.
Vercel / Netlify scheduled functions5UTCFree tiers limit frequency (Vercel Hobby: once per day).
Quartz / Spring / Jenkins6–7 (seconds first)ConfigurableExtended syntax with L, W and #; Jenkins adds H for hashed spreading.

FAQ

What are the five fields of a cron expression?

Minute (0–59), hour (0–23), day of month (1–31), month (1–12) and day of week (0–6, Sunday is 0 and usually also 7), separated by spaces. An asterisk means every value.

What does */5 mean?

Every fifth value of the field, counted from its minimum. In the minute field that is 0, 5, 10 … 55; in the hour field 0, 5, 10, 15, 20.

Does cron use my timezone?

It uses the scheduler's timezone: the system timezone for a Linux crontab, UTC for GitHub Actions, and UTC for Kubernetes CronJobs unless spec.timeZone is set.

Why does my job run more often when I set both day of month and day of week?

Because standard cron treats them with OR: the job runs when either field matches. 0 0 13 * 5 fires on every 13th and on every Friday.

Can cron run every 30 seconds?

No. One minute is the smallest unit. Use a systemd timer, or run every minute and sleep 30 seconds inside the script for a second pass.

Want to build your own? Open the Cron Expression Generator or read the Cron Expression Examples and How to Build One tutorial.