Cron Expression Builder — Schedule Tasks the Easy Way
Cron is one of the most powerful and widely used tools in software development — and one of the most confusing to write from memory. The five-field (or six-field) syntax is compact by design, but even experienced developers look up the field order every time.
Our free Cron Expression Builder gives you a visual interface to build any cron schedule, see a plain-English description, and preview the next run times — no syntax memorization needed.
What Is a Cron Job?
A cron job is a scheduled task that runs automatically at a specified time or interval. The name comes from Chronos, the Greek god of time. Cron is built into Unix/Linux systems and is also supported natively by:
- Cloud platforms: AWS Lambda, Google Cloud Scheduler, Azure Functions
- Databases: PostgreSQL (pg_cron), MySQL Event Scheduler
- CI/CD: GitHub Actions (scheduled workflows), GitLab CI
- Backend frameworks: Node.js (node-cron), Django (Celery Beat), Ruby on Rails
If you automate anything on a schedule — nightly reports, daily backups, hourly data syncs, weekly cleanup jobs — you are using cron expressions.
Cron Expression Syntax
A standard cron expression has five fields:
`
┌───────────── minute (0–59)
│ ┌───────────── hour (0–23)
│ │ ┌───────────── day of month (1–31)
│ │ │ ┌───────────── month (1–12 or JAN–DEC)
│ │ │ │ ┌───────────── day of week (0–6, 0=Sunday, or SUN–SAT)
│ │ │ │ │
*
`
Special Characters
(asterisk) — any value. = every minute.
, (comma) — list of values. 0,30 = at minute 0 and 30 (every 30 minutes).
- (hyphen) — range. 0 9-17 * = every hour from 9 AM to 5 PM.
/ (slash) — step. /5 = every 5 minutes. 0 /2 * = every 2 hours.
? (question mark) — no specific value (used in day-of-month or day-of-week when specifying the other). Supported by Quartz and some schedulers.
L (last) — last day. L in day-of-month = last day of month. Quartz extension.
# (hash) — nth weekday. 2#1 = first Tuesday. Quartz extension.
Common Cron Expressions with Examples
Every Minute
`
*
`
Useful for high-frequency health checks or polling.Every 5 Minutes
`
/5 *
`
Common for lightweight sync jobs.Every Hour (at :00)
`
0
`
Hourly reports, cache refresh, data aggregation.Every Day at Midnight
`
0 0 *
`
Nightly database backups, daily report generation.Every Day at 9 AM
`
0 9 *
`
Morning digest emails, daily standup reminders.Every Monday at 8 AM
`
0 8 1
`
Weekly reports, start-of-week automation.First Day of Every Month at Midnight
`
0 0 1
`
Monthly billing cycles, monthly cleanup.Weekdays Only at 9 AM
`
0 9 1-5
`
Business-hours automation — Monday through Friday.Twice Daily (Noon and Midnight)
`
0 0,12 *
`
Midday and overnight syncs.Every 15 Minutes During Business Hours
`
/15 9-17 * 1-5
`
Regular polling during work hours on weekdays.How to Use the Cron Expression Builder
The Cron Expression Builder on cleverly.tools gives you two ways to work:
Visual Mode
Use dropdowns and checkboxes for each field:- Select minute interval or specific minutes
- Select hour, day, month, and weekday options
- The cron expression builds automatically as you click
Expression Mode
Type or paste an existing cron expression and get:- Plain-English description ("Runs every weekday at 9:00 AM")
- Next 5 run times with dates and times
- Validation warning if the expression is invalid
Platform Differences in Cron Syntax
Different platforms extend or restrict standard cron syntax:
| Platform | Fields | Notes | |----------|--------|-------| | Linux crontab | 5 | Standard 5-field syntax | | GitHub Actions | 5 | Standard, UTC timezone | | AWS CloudWatch | 6 | Adds seconds OR year field | | Quartz Scheduler (Java) | 6 | Seconds + extended L, W, # | | node-cron | 5 or 6 | Optional seconds field | | Kubernetes CronJob | 5 | Standard, supports @daily etc. |
Preset Shortcuts
Many systems support keyword shortcuts:`
@hourly → 0
@daily → 0 0 *
@weekly → 0 0 0
@monthly → 0 0 1
@yearly → 0 0 1 1 *
@reboot → runs on system startup (Linux only)
`
Debugging Cron Jobs
If a cron job is not running as expected:
1. Verify the expression — use the builder to check the next run times
2. Check timezone — cron defaults to the system timezone; cloud platforms often use UTC
3. Check permissions — the cron user must have permission to run the script
4. Check logs — grep CRON /var/log/syslog on Linux shows cron execution history
5. Redirect output — add >> /tmp/cron.log 2>&1 to capture errors from your script
---
FAQ
What does /5 * mean in cron?
It means "every 5 minutes." The */5 in the minute field means "every 5 steps from 0," which translates to minutes 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, and 55 of every hour.What timezone does cron use?
Standard Linux cron uses the server's local timezone. Cloud schedulers like GitHub Actions and AWS CloudWatch Events use UTC by default. Always verify which timezone applies to avoid jobs running at unexpected times.Can I run a cron job every 30 seconds?
Standard cron has a minimum resolution of one minute. For sub-minute scheduling, use a different tool:sleep loops in a 1-minute cron job, a Kubernetes CronJob with a workaround, or a purpose-built tool like AWS Step Functions or a message queue.