Cron Parser

|

minute · hour · day · month · weekday

At 12:00 AM

Common expressions

Enter a cron expression and get a plain-English description of when it runs. Supports standard 5-field cron syntax. Common schedule presets are available to load with one click.

Cron field reference

Fields are space-separated: minute (0–59), hour (0–23), day of month (1–31), month (1–12), day of week (0–7, where both 0 and 7 mean Sunday).

* — every value in the field.

*/n — every n steps. */15 in minutes = every 15 minutes.

a-b — a range. 9-17 in hours = every hour from 9 through 17.

a,b — a list. 1,15 in days = the 1st and 15th of the month.

Combinations: 0 9-17/2 * * 1-5 = every 2 hours between 9am and 5pm on weekdays.

Common schedules to know

* * * * * — every minute.

0 * * * * — every hour, on the hour.

0 0 * * * — every day at midnight.

0 9 * * 1-5 — weekdays at 9:00 AM.

0 0 1 * * — first day of every month at midnight.

*/5 * * * * — every 5 minutes.

0 0 * * 0 — every Sunday at midnight.

Common mistakes

* * * * * runs every minute, not every second. Standard cron has no seconds field.

Six-field expressions (with seconds as the first field) are used by some schedulers (Quartz, Spring) but are not standard. If your scheduler expects five fields and you provide six, the behavior is undefined.

Day-of-week 0 and 7 both mean Sunday in most implementations, but some systems start the week on Monday (1). Verify with your specific scheduler.

Test new schedules in a staging environment before production deployment. A wrong expression can run a job far more frequently than intended.

Cron in CI/CD and cloud schedulers

Cron syntax is used across many scheduled execution environments, but each has subtle differences in supported fields and timezone handling.

GitHub Actions schedule trigger uses standard 5-field cron and runs in UTC. The schedule runs on the default branch only. Note: scheduled workflows may be delayed or skipped during periods of high GitHub load.

Google Cloud Scheduler supports standard cron plus a timezone parameter — you can specify "America/New_York" directly. AWS EventBridge uses the same 5-field cron wrapped in a cron() expression: cron(0 9 * * ? *). Note the ? wildcard, which EventBridge requires in either the day-of-month or day-of-week field.

Kubernetes CronJob uses standard 5-field cron. The timezone is the node's local time unless you set spec.timeZone (available in Kubernetes 1.25+). A concurrencyPolicy setting controls what happens if a previous run has not finished when the next one is scheduled.

GitHub Actions (UTC)on: schedule: - cron: "0 9 * * 1-5" # weekdays at 09:00 UTC
Cloud Scheduler (with timezone)schedule: "0 9 * * 1-5" timeZone: "Asia/Tokyo"
AWS EventBridgecron(0 9 ? * MON-FRI *) # note ? instead of * in day-of-month
Kubernetes CronJobschedule: "0 9 * * 1-5" timeZone: "Asia/Tokyo" # requires K8s 1.25+

Reading complex cron expressions

Multi-component expressions combine ranges, steps, and lists in a single field. Reading them left to right — minute, hour, day, month, weekday — and substituting the operator semantics helps.

The expression 0 9-17/2 * * 1-5 reads: at minute 0, every 2 hours stepping from 9 through 17, on any day of the month, in any month, on weekdays (Mon–Fri). Result: 9:00, 11:00, 13:00, 15:00, 17:00 on weekdays.

15,45 * * * * reads: at minute 15 and minute 45, every hour, every day — so twice per hour on a fixed schedule.

0 0 1,15 * * reads: at midnight on the 1st and 15th of every month, regardless of weekday.

Every 2h on weekdays, 9–170 9-17/2 * * 1-5
Twice per hour15,45 * * * *
Twice a month at midnight0 0 1,15 * *
Weekday mornings at 8:3030 8 * * 1-5
Every 10 min, business hours*/10 9-17 * * 1-5

Frequently Asked Questions

Does it support non-standard cron syntax like @daily or @hourly?
Yes. The cronstrue library used here supports common shorthand expressions like @daily (equivalent to 0 0 * * *), @hourly (0 * * * *), @weekly, @monthly, and @yearly.
Why does my expression produce an error?
Common causes: using six fields (seconds + the five standard fields) when the parser expects five, entering a value outside the valid range for a field (e.g., month 13), or using non-standard syntax like L (last) or W (weekday) that some schedulers support but standard cron does not.
Does */5 in the hour field mean every 5 hours starting from midnight?
Yes. */5 steps through 0, 5, 10, 15, 20 — every 5 hours starting at midnight. If you want every 5 hours but starting at a specific hour, use a list: 1,6,11,16,21.
My cron runs at unexpected times — what could be wrong?
The server where the job runs may be in a different timezone than expected. Cron jobs typically run in the server's local timezone. Check whether your scheduler supports timezone configuration.
What is the difference between cron day-of-week 0 and 7?
Both 0 and 7 represent Sunday in most Unix cron implementations. The Monday-to-Sunday week starts at 1 and ends at 7, while the Sunday-to-Saturday week starts at 0. To be unambiguous, use 0 for Sunday and 1–6 for Monday through Saturday. AWS EventBridge and some other schedulers use a different numbering — always verify with the specific platform.
How do I run a job once at a specific time rather than on a recurring schedule?
Standard cron is not designed for one-time jobs — every entry repeats. For a one-time task, use the at command on Linux/macOS, a cloud provider's one-time scheduled function invocation, or set the cron entry and then remove it once it has executed.

Related Tools