Cron Expression Generator
Build cron expressions visually. Pick presets or customise each field and see a human-readable description instantly.
Quick Presets
Custom Builder
0-59, *, */n
0-23, *, */n
1-31, *
1-12, *
0-6 (Sun=0)
Expression
* * * * *Description
Every minute
What Is a Cron Expression?
A cron expression is a string of five (or six) fields that defines a schedule. Originally built for Unix's cron daemon in the 1970s, the same syntax now powers scheduled tasks in AWS CloudWatch, GitHub Actions, Kubernetes CronJobs, Vercel, and almost every CI/CD platform.
Think of it as a mini-language for time. Instead of saying "every weekday at 9:30 AM", you write30 9 * * 1-5. Compact, precise, and universally understood by scheduling systems worldwide.
The tricky part is getting the syntax right — a misplaced asterisk can turn a daily job into one that runs every minute. That's where this generator helps: pick your schedule visually and get a validated expression.
Cron Field Reference
| Field | Allowed Values | Special Characters | Example |
|---|---|---|---|
| Minute | 0-59 | * , - / | */15 = every 15 minutes |
| Hour | 0-23 | * , - / | 9-17 = 9 AM to 5 PM |
| Day of Month | 1-31 | * , - / L W | 1,15 = 1st and 15th |
| Month | 1-12 or JAN-DEC | * , - / | 1-6 = January to June |
| Day of Week | 0-6 or SUN-SAT | * , - / L # | 1-5 = Monday to Friday |
What this means for you: The asterisk (*) means "every", the slash (/) means "every Nth", the comma (,) means "and", and the dash (-) means "through". Master those four and you can read any cron expression.
Common Cron Expressions
| Schedule | Expression | Use Case |
|---|---|---|
| Every minute | * * * * * | Health checks, real-time monitors |
| Every 5 minutes | */5 * * * * | API polling, cache refresh |
| Every hour | 0 * * * * | Log rotation, metric aggregation |
| Daily at midnight | 0 0 * * * | Database backups, report generation |
| Daily at 9 AM | 0 9 * * * | Morning digest emails, Slack summaries |
| Weekdays at 9 AM | 0 9 * * 1-5 | Business-hours-only tasks |
| Every Monday at 8 AM | 0 8 * * 1 | Weekly reports, sprint reminders |
| 1st of every month | 0 0 1 * * | Monthly invoicing, billing cycles |
| Every 6 hours | 0 */6 * * * | Data syncs, sitemap regeneration |
| Quarterly (Jan/Apr/Jul/Oct 1st) | 0 0 1 1,4,7,10 * | Quarterly reviews, compliance reports |
Common Cron Mistakes
Forgetting Timezone
Cron expressions don't include timezone information. "0 9 * * *" means 9 AM in whatever timezone the server uses — which might be UTC, not your local time. Always check your platform's timezone setting.
Day-of-Month vs Day-of-Week Conflict
Setting both day-of-month and day-of-week creates an OR condition in standard cron (it runs on either match). Some systems treat it as AND. Know your platform's behaviour.
Running Too Frequently
* * * * * runs every single minute — 1,440 times per day. Great for testing, terrible for production API calls. Always start with a longer interval and decrease.
Overlapping Executions
If your job takes 10 minutes but runs every 5 minutes, you'll have overlapping instances. Use a lock mechanism or ensure your schedule interval exceeds the maximum execution time.
Related Tools
Unix Timestamp Converter
Convert timestamps for your scheduled job logs.
JSON Formatter
Format cron job configuration files and API responses.
Regex Tester
Test patterns for parsing cron job output and logs.
Chmod Calculator
Set correct permissions for your cron script files.
Hash Generator
Generate checksums for verifying scheduled backup integrity.
SQL Formatter
Format the database queries your cron jobs execute.
How to use this tool
Select a preset schedule or enter custom values in the 5 fields
Read the human-readable description to verify your schedule
Click Copy to grab the cron expression for your config
Common uses
- Scheduling automated database backups at midnight
- Setting up CI/CD pipeline triggers on specific days
- Configuring monitoring alerts at regular intervals
- Automating report generation on the first of each month
Share this tool