Quick presets

Next 5 run times

Further reading: cron expression examples
All parsing is done in your browser. No data is sent to any server.

How Cron Expressions Work

A cron expression is a string of five fields separated by spaces that defines a recurring schedule. It is used by the Unix cron daemon, and by schedulers in virtually every programming language and platform — AWS Lambda, GitHub Actions, Kubernetes CronJobs, Jenkins, and most databases all use cron syntax.

FieldPositionAllowed valuesSpecial characters
Minute1st0–59* , - /
Hour2nd0–23* , - /
Day of month3rd1–31* , - / ?
Month4th1–12* , - /
Day of week5th0–7 (0 and 7 = Sunday)* , - /

Special Characters

* means "every value" — * * * * * runs every minute of every hour of every day. / is a step — */15 in the minute field means "every 15 minutes." - is a range — 1-5 in the weekday field means Monday through Friday. , is a list — 1,15 in the day field means the 1st and 15th of the month.

Use our YAML Validator if you're writing cron schedules inside YAML config files like GitHub Actions or Kubernetes manifests — it will catch indentation errors before they cause silent scheduling failures.

Common Patterns

The most common cron patterns you'll encounter: 0 * * * * runs at the top of every hour. 0 0 * * * runs at midnight every day. 0 9 * * 1-5 runs at 9am on weekdays. */5 * * * * runs every 5 minutes. 0 0 1 * * runs at midnight on the first day of every month.


Frequently Asked Questions

What does * * * * * mean in cron?
Five asterisks means "every minute of every hour of every day of every month on every day of the week" — in other words, run every minute without exception. Each asterisk is a wildcard meaning "any value" for that field. It is the most permissive cron expression possible and is often used for testing or for processes that genuinely need to run continuously.
What is the difference between day-of-month and day-of-week?
These are two separate fields with different interpretations. Day-of-month (field 3) specifies a calendar date — 1 means the 1st of the month. Day-of-week (field 5) specifies a day name — 1 means Monday (0 and 7 both mean Sunday). When both fields are set to non-wildcard values, most cron implementations run the job when either condition is met, not both — which can cause unexpected behaviour. Use ? in one field to explicitly ignore it.
How do I run a cron job every 5 minutes?
Use the step operator: */5 * * * *. The */5 in the minute field means "every value divisible by 5" — i.e. 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55. Similarly, */15 runs every 15 minutes and */2 runs every 2 minutes. You cannot schedule a job to run every 30 seconds in standard 5-field cron — you would need a 6-field cron (with a seconds field) or run the job twice per minute with two entries.
Why is my cron job not running when expected?
The most common causes are: timezone mismatch (cron runs in the server's timezone, which may differ from yours — always confirm with crontab -e what timezone the server uses), off-by-one errors in day-of-week (0 = Sunday on most systems, but some use 1 = Monday), and the interaction between day-of-month and day-of-week described above. Also verify the cron daemon is running with systemctl status cron or service cron status.
Does cron support seconds?
Standard Unix cron (5-field) does not support seconds — the minimum resolution is one minute. Some extended implementations add a 6th field for seconds: AWS EventBridge, Spring Scheduler, and Quartz Scheduler all support 6-field cron with seconds as the first field. If you need sub-minute scheduling, check your platform's documentation to confirm whether it supports the seconds field and what position it uses.
What is the cron syntax for GitHub Actions?
GitHub Actions uses standard 5-field cron syntax in UTC. Define it under the schedule trigger: on: schedule: - cron: '0 9 * * 1-5'. Note that GitHub Actions schedules may run up to 15 minutes late during periods of high load. The minimum supported interval is every 5 minutes — * * * * * will be throttled. All times are UTC regardless of your repository's location.