* = any */5 = every 5 1-5 = range 1,3,5 = list ? = no value (AWS only)Build, test and understand cron schedules for any platform. Select your platform, choose your schedule, and get the exact syntax with a plain English description of when it runs.
* = any */5 = every 5 1-5 = range 1,3,5 = list ? = no value (AWS only)A cron expression is a string of five space-separated fields that tells a Unix system exactly when to run a scheduled task. The word "cron" comes from the Greek word for time, chronos, and the cron daemon has been a fundamental part of Unix and Linux systems since the 1970s.
Today, virtually every server environment, cloud platform, and web framework supports cron-based scheduling. Whether you need to clear a cache every hour, send a newsletter at 9am on weekdays, back up a database at midnight, or regenerate a sitemap weekly — cron is the standard tool for the job.
This builder generates cron expressions for 9 different platforms with platform-specific code snippets ready to copy directly into your project. It also shows the next 5 run times so you can verify your expression does exactly what you expect before deploying it.
| Field | Position | Allowed Values | Special Chars | Example |
|---|---|---|---|---|
| Minute | 1st | 0–59 | * , - / | 30 = at 30 mins past |
| Hour | 2nd | 0–23 | * , - / | */6 = every 6 hours |
| Day of month | 3rd | 1–31 | * , - / ? | 1 = 1st of month |
| Month | 4th | 1–12 | * , - / | 1-6 = Jan to Jun |
| Day of week | 5th | 0–6 (Sun=0) | * , - / ? | 1-5 = Mon to Fri |
* — matches any value. In the minute field, * means "every minute".*/n — step value. */5 in the minute field means "every 5 minutes" (0, 5, 10, 15...).n-m — range. 1-5 in the day-of-week field means Monday through Friday.n,m,p — list of values. 1,3,5 means Monday, Wednesday and Friday.? — no specific value. Used in AWS EventBridge when specifying day-of-month but not day-of-week, or vice versa.| Expression | Meaning | Typical Use Case |
|---|---|---|
| * * * * * | Every minute | Monitoring, polling APIs |
| */5 * * * * | Every 5 minutes | WordPress cron, health checks |
| 0 * * * * | Every hour | Cache clearing, hourly reports |
| 0 0 * * * | Daily at midnight | Database backups, log rotation |
| 0 9 * * 1-5 | Weekdays at 9am | Business hour tasks, emails |
| 0 0 1 * * | First of every month | Monthly reports, invoicing |
| 0 0 * * 0 | Every Sunday midnight | Weekly maintenance |
| 0 */6 * * * | Every 6 hours | Data syncs, sitemap generation |
| 30 4 1,15 * * | 4:30am on 1st and 15th | Bi-monthly tasks |
| 0 0 1 1 * | Once a year, Jan 1st | Annual cleanup |
Standard Unix cron uses the classic five-field format. In cPanel, navigate to Advanced → Cron Jobs to enter your expression. Each line in the crontab has the format: MINUTE HOUR DAY MONTH WEEKDAY command. Edit your crontab from the command line with crontab -e and list existing jobs with crontab -l.
AWS EventBridge uses a modified cron syntax with three key differences: expressions must be wrapped in cron(...), a sixth Year field is added at the end, and the ? wildcard is required when specifying either day-of-month or day-of-week but not both simultaneously. All EventBridge schedules run in UTC.
Azure Functions uses NCRONTAB format which adds a Seconds field at the start. The standard five-field cron */5 * * * * becomes the six-field 0 */5 * * * * in Azure. The leading 0 means "at second 0 of each matching minute".
Kubernetes uses standard Unix cron syntax in the spec.schedule field of a CronJob manifest. The cron controller checks for CronJobs every 10 seconds. Note that jobs are not guaranteed to run at the exact scheduled time — they may be delayed if the controller was unavailable.
GitHub Actions supports cron scheduling via the schedule event in your workflow YAML file. Schedules use standard UTC cron syntax, but the minimum interval is every 5 minutes. Scheduled workflows can be delayed by up to 15 minutes during periods of high load.
Laravel's scheduler uses a single cron entry running every minute: * * * * * php /path/to/artisan schedule:run. Individual tasks are defined in App\Console\Kernel using fluent helpers like ->everyFiveMinutes(), ->hourly(), ->daily(), and ->weekdays(), or raw cron with ->cron('expression').
WordPress includes a built-in scheduling system called WP-Cron, but it's "pseudo-cron" — it only runs when a visitor loads a page on your site. If your site receives no traffic at a scheduled time, the task won't run until the next page load. This is a fundamental reliability problem for production websites.
Add define('DISABLE_WP_CRON', true); to your wp-config.php file, then set up a real server cron job to trigger WordPress's cron handler directly. Use the CMS tab in the builder above to get the exact command for your server setup.
A schedule of */5 * * * * (every 5 minutes) works well for most sites. For high-volume sites handling emails or order processing, a * * * * * (every minute) schedule is more appropriate.
Magento 2 relies on cron for critical operations: order processing, email sending, price rule updates, sitemap generation, and search indexing. Magento recommends running cron every minute (* * * * *) and letting Magento's internal job queue control individual task frequency. For large stores, running two separate cron entries — one for the default group and one for the index group — is strongly recommended.