Cron Expression Generator & Explainer
Fill in the fields below to build a 5-part cron expression, or paste an existing cron string to get a plain-English explanation of when it runs.
How to Use the Cron Expression Generator
- Fill in the minute, hour, day-of-month, month and day-of-week fields — use
*for "every",*/nfor a step (e.g. every 5 minutes), a range like1-5, or a comma list like1,15,30. - The 5-field cron string and a plain-English explanation update live as you type. Click "Copy" to copy the expression.
- Or, paste an existing cron expression into the "Explain a Cron Expression" box to get a human-readable description of its schedule.
- Paste the final expression into your crontab, GitHub Actions workflow, or scheduler configuration.
Why Use This Tool?
Is my cron expression uploaded anywhere?
No. Both building and explaining cron expressions happen entirely with local JavaScript pattern matching in your browser. Nothing you type — including internal job names you might paste alongside your schedule — is ever sent to a server.
What do the five cron fields mean?
In order: minute (0-59), hour (0-23), day of month (1-31), month (1-12), and day of week (0-6, where 0 is Sunday). An asterisk means "every possible value" for that field. Combining fields lets you express schedules like "every weekday at 9am" (0 9 * * 1-5) or "every 15 minutes" (*/15 * * * *).
How does the plain-English explanation work?
The explainer recognizes the most common cron patterns — exact values, wildcards, step values like */5, comma-separated lists, and ranges — and converts them into a readable sentence describing minute, hour, day, month and weekday. It covers the vast majority of real-world cron schedules used in crontab, GitHub Actions, and cloud scheduler configs.
Who uses a cron expression generator?
DevOps engineers scheduling backup or deployment jobs, backend developers setting up recurring API calls, and anyone configuring a scheduled task in a CI/CD pipeline who wants to avoid the classic mistake of mixing up field order or forgetting what a particular cron string actually does.