Cron Expression Builder
Build, validate and understand cron expressions with a visual editor — see the next 10 run times instantly and copy the expression for AWS EventBridge, Linux crontab, GitHub Actions, or Kubernetes CronJobs.
Quick Presets
Every Mon at 09:00 UTC
*Any value,Value list e.g. 1,3,5-Range e.g. 1-5/Step e.g. */15What is a cron expression?
A cron expression is a string of five (or six) space-separated fields that define a recurring schedule for automated tasks. It originates from the Unix cron daemon — a time-based job scheduler that runs commands at fixed times or intervals. The name comes from Chronos, the Greek god of time.
The five standard fields are: minute (0–59), hour (0–23), day of month (1–31), month (1–12), and day of week (0–7, where both 0 and 7 mean Sunday). Special characters extend the syntax: * (any value), , (list), - (range), / (step), L (last), W (nearest weekday), and # (nth weekday).
Cron expressions power everything: Linux crontab, GitHub Actions schedule triggers, AWS EventBridge rules, Kubernetes CronJob resources, Vercel cron functions, Railway cron jobs, and nearly every job queue library. Building a valid expression from scratch can be error-prone — this tool generates one visually and shows you exactly when it will next fire.
How to use the cron expression builder
- 1
Type or paste an expression
Enter an existing cron expression to validate and see its next run times, or start from scratch.
- 2
Use the visual fields
Adjust the minute, hour, day, month, and weekday fields using the dropdowns. The expression updates live.
- 3
Check the next run times
The panel below shows the next 10 scheduled executions in both UTC and your local timezone.
- 4
Copy the expression
Use the Copy button to grab the cron string for your crontab, GitHub Actions YAML, or AWS EventBridge rule.
Why developers need a cron builder
Eliminate syntax errors
Cron syntax is unforgiving — a single wrong field silently skips or misschedules your job. Validate before deploying.
See exactly when it fires
Abstract expressions like 0 */6 * * * are hard to reason about. Next-run preview makes the schedule concrete and verifiable.
Cross-platform syntax
Linux crontab, AWS EventBridge (6 fields), and Quartz Scheduler each have slightly different syntax. This tool helps you target the right format.
Onboard new developers
A visual builder is the fastest way for junior developers to understand cron syntax without memorising the field order.
Common cron expression examples
0 2 * * 0Runs at: 02:00 every Sunday UTCUse weekday field 0 (or 7) for Sunday. Backup jobs benefit from off-peak Sunday timing.
30 8 * * 1-5Runs at: 08:30 Monday through Friday UTCThe range 1-5 covers Monday (1) through Friday (5). Combine with a timezone-aware job runner if you need local time.
Cron expression cheat sheet
* * * * *— every minute0 * * * *— every hour (at :00)0 9 * * *— every day at 09:00 UTC0 9 * * 1-5— weekdays (Mon–Fri) at 09:000 9 * * 1— every Monday at 09:000 0 1 * *— first day of every month at midnight0 0 1 1 *— once a year on January 1st at midnight*/15 * * * *— every 15 minutes0 */6 * * *— every 6 hours30 8 * * 1-5— weekdays at 08:30 (good for morning reports)
Cron syntax differences: Linux vs AWS vs GitHub Actions
- Linux crontab (5 fields):
minute hour day month weekday. Weekday 0 and 7 both mean Sunday. - AWS EventBridge (6 fields):
minute hour day month weekday year. Year field added. Supports L (last), W (weekday), and # (nth). Day-of-month and day-of-week cannot both be specified — use ? for the one you don't need. - GitHub Actions schedule: Uses standard 5-field cron syntax like Linux. Runs in UTC. Minimum interval is 5 minutes (shorter intervals are throttled).
- Kubernetes CronJob: Uses standard 5-field syntax. Supports @hourly, @daily, @weekly, @monthly, @yearly shorthand macros.
- Quartz Scheduler (Java, 7 fields):
second minute hour day month weekday year. Note: seconds field added at the start.
Frequently asked questions
Both represent Sunday. The traditional Unix cron uses 0 for Sunday; some implementations also accept 7. Use 0 for maximum compatibility across platforms.
Standard cron has a minimum resolution of 1 minute. For sub-minute scheduling, use a different mechanism: setInterval in Node.js, a task queue like BullMQ, or a platform that supports second-level granularity like Quartz Scheduler in Java.
The ? character is used in AWS EventBridge and Quartz Scheduler to mean 'no specific value' for day-of-month or day-of-week. Since you cannot specify both simultaneously in these systems, ? marks the one you are not constraining.
GitHub throttles scheduled workflows during periods of high load and may delay them by up to 15 minutes. Additionally, workflows scheduled more frequently than every 5 minutes are rate-limited. If the repo is inactive for 60+ days, GitHub disables scheduled workflows.
Most cron implementations run in UTC. To convert, subtract or add your UTC offset. For example, 0 9 * * * UTC = 2:30 AM IST (UTC+5:30). A better approach: use a platform that supports timezone-aware cron, such as Kubernetes CronJob with .spec.timeZone or AWS EventBridge Scheduler with a timezone parameter.
L (last) is supported in AWS EventBridge and Quartz. In the day-of-month field, L means the last day of the month. In the weekday field, 5L means the last Friday of the month.
Need another tool?
Browse the full toolbox or dig into the blog for the engineering behind it.