DevLab
Time⭐ Popularintermediate

Cron Expression Generator

build and explain cron schedule expressions with a visual builder

By DevLab Editorial TeamLast updated

Build a cron expression using the visual field builder (minute, hour, day, month, weekday) and get the human-readable description instantly. Shows the next 5 execution times as absolute dates so you can verify the schedule before deploying. Choose from 8 common presets or enter custom values.

Try it now — free, instant, no signup

What is Cron Expression Generator?

A cron expression is a compact string of five space-separated fields that specifies a recurring schedule for a background job. The standard five-field format is: minute (0 to 59), hour (0 to 23), day of month (1 to 31), month (1 to 12), and day of week (0 to 6, where Sunday is 0). Each field accepts a specific value, a range like 1-5, a step like */15, a list like 0,30, or a wildcard (*).

Cron was originally a Unix utility for scheduling shell scripts, and the format has become a de facto standard across virtually every programming ecosystem: GitHub Actions, AWS EventBridge, Kubernetes CronJobs, Heroku Scheduler, Railway cron jobs, and Vercel cron functions all accept five-field cron syntax natively.

The most common source of cron errors is timezone handling. Most platforms schedule cron jobs in UTC by default. A job scheduled for 0 9 * * * on a UTC server runs at 9 AM UTC, which is 2:30 PM IST or 4 AM EST. This tool computes next execution times in your browser's local timezone so you can cross-check the schedule against your intended local time before deploying.

When to use Cron Expression Generator

Verify that a cron schedule runs at the intended times before deploying a GitHub Actions workflow or Kubernetes CronJob, especially when the server runs in UTC.
Build a scheduled task expression from scratch without memorizing the field order — select a preset, adjust individual fields, and copy the resulting expression.
Debug an existing cron schedule that seems to run at unexpected times by checking the next 5 runs against your expectation.

Expert Notes

The most dangerous cron footgun is the wildcard day-of-month plus day-of-week OR behavior — it has caused production jobs to run far more often than intended. Always verify with a next-run calculator before deploying. For production systems, consider a dedicated scheduler with monitoring (Temporal, BullMQ, Inngest, AWS EventBridge) rather than bare cron — they provide retry logic, failure alerting, and execution history.

DevLab's Take

The preset buttons cover 80% of real-world use cases. The next-5-runs display is the genuinely useful feature: it converts the abstract expression into concrete timestamps so you can verify the schedule is what you intended before it runs at 3 AM.

Frequently Asked Questions

What does */15 mean in the minute field?
The */n syntax means every n units starting from the minimum. So */15 in the minute field means at minutes 0, 15, 30, and 45 of every hour — four times per hour. This syntax works in all five fields: */2 in the hour field means every 2 hours, 12 times per day.
How does the day-of-month and day-of-week interaction work?
When both day-of-month and day-of-week are specified (neither is *), most cron implementations use OR semantics: the job runs when EITHER condition is met. So 0 0 1 * 1 runs at midnight on the 1st of every month AND at midnight every Monday, not only on Mondays that happen to be the 1st.
Does cron support seconds?
Standard five-field cron does not have a seconds field — the minimum resolution is one minute. Some platforms extend to six fields by adding a seconds field at the beginning (Quartz Scheduler, some Kubernetes implementations). GitHub Actions, Vercel, and Railway all use standard five-field cron without seconds.
Why are my cron jobs running at the wrong time?
The most common cause is a timezone mismatch. Most platforms schedule cron jobs in UTC by default. If your server is in UTC and you write 0 9 * * * intending 9 AM local time, the job actually runs at 9 AM UTC. Solution: convert your intended local time to UTC before writing the cron expression, or use your platform's timezone configuration if it supports it.
What is the difference between @daily and explicit cron expressions?
@hourly, @daily, @weekly, @monthly are shorthand aliases supported by most cron daemons. @daily is equivalent to 0 0 * * *. However, many modern platforms including GitHub Actions, Kubernetes CronJob, and Vercel do not support @ shortcuts — they require explicit five-field syntax. Use the explicit form for portability.

Related Tools

Learn more