Cron Expression Generator
Build cron expressions visually with a plain-English explanation. Set the minute, hour, day, month, and weekday fields using the interactive builder - or type an expression directly to decode it.
*Matches any minute
*Matches any hour
*Matches any day
*Matches any month
*Matches any weekday
Common patterns
Click any pattern to load it into the builder.
Features
Everything you need, nothing you don’t.
- Visual builder with controls for all 5 cron fields - minute, hour, day, month, and weekday
- Human-readable explanation that updates in real time as you build the expression
- Six one-click presets for the most common schedules
- Type any cron expression directly to decode and edit it in the visual builder
- Ten annotated examples of common patterns - click to load into the builder
- Copy expression to clipboard with a single click or Cmd+C
Related Tools
-
Timestamp Converter
Convert Unix timestamps to human-readable dates and back.
Date & Time -
JWT Decoder
Decode and inspect JSON Web Token claims without a secret.
Auth & IDs -
Regex Tester
Test and debug regular expressions with live match highlighting.
Regex -
UUID Generator
Generate cryptographically random UUIDs (v4).
Auth & IDs
Frequently asked questions
What is a cron expression?
A cron expression is a compact string that defines a recurring schedule for automated tasks. It consists of five space-separated fields: minute (0-59), hour (0-23), day of month (1-31), month (1-12), and day of week (0-6, where 0 = Sunday). Each field accepts a specific value, a wildcard (*), a range (e.g. 1-5), or a step (e.g. */5).
What does the asterisk (*) mean in a cron expression?
An asterisk is a wildcard that means "every possible value" for that field. For example, * in the hour field means "every hour", and * in the day-of-month field means "every day of the month". A fully wildcarded expression * * * * * runs every minute.
How do I run a job every 5 minutes?
Use the step syntax with a slash: */5 * * * *. The */5 means "at every 5th minute" - i.e. at 0, 5, 10, 15, ... 55. In general, */N means "every N units" starting from the minimum value for that field.
What is the difference between day-of-month and day-of-week?
Day-of-month (field 3) targets a specific calendar date within the month - e.g. the 1st or the 15th. Day-of-week (field 5) targets days by name - e.g. Monday (1) or Friday (5). When both are set to non-wildcard values, most cron implementations use OR semantics: the job runs if either condition matches.
How do I run a task only on weekdays?
Use the day-of-week field with the range 1-5, which covers Monday through Friday. For example, 0 9 * * 1-5 runs at 9:00 AM every weekday. Sunday is 0 and Saturday is 6, so the full week is 0-6 and weekends are 0,6.
What is the timezone for cron expressions?
Standard cron does not have a built-in timezone - it runs in whatever timezone the server is configured for, typically UTC. Many modern schedulers (GitHub Actions, AWS EventBridge, Vercel Cron Jobs) allow you to specify a timezone separately. Always verify the timezone setting on your target platform to avoid off-by-one hour issues.
Can I use cron on Vercel, GitHub Actions, or AWS?
Yes. Vercel Cron Jobs, GitHub Actions scheduled workflows (on.schedule.cron), and AWS EventBridge Scheduler all accept standard five-field cron syntax. AWS EventBridge uses a slightly different syntax with a required sixth year field and swapped positions, so check the platform docs when copying expressions.
How do I run a job at multiple specific times?
Use comma-separated values. For example, to run at 9 AM and 5 PM, use 0 9,17 * * *. You can list as many values as needed within a field, separated by commas.