DevBolt
Processed in your browser. Your data never leaves your device.

How do I read a cron expression in plain English?

Paste a cron expression (e.g., 0 9 * * MON-FRI) and instantly see its human-readable description plus the next scheduled run times. The tool supports standard 5-field cron syntax with minutes, hours, day-of-month, month, and day-of-week. Everything runs in your browser.

Parse a common cron schedule
Input
*/15 * * * *
Output
Every 15 minutes
← Back to tools

Cron Expression Parser

Parse cron expressions into human-readable descriptions with next scheduled runs. Updates as you type.

Description
At minute 0, 15, 30, 45 of every hour

Field Breakdown

Minute
*/15
every 15 minutes
Hour
*
every hour
Day of Month
*
every day of month
Month
*
every month
Day of Week
*
every day of week

Next 5 Runs

1Wed 2026-03-25 22:30
2Wed 2026-03-25 22:45
3Wed 2026-03-25 23:00
4Wed 2026-03-25 23:15
5Wed 2026-03-25 23:30

Cron Syntax Reference

┌───── minute (0-59)
│ ┌───── hour (0-23)
│ │ ┌───── day of month (1-31)
│ │ │ ┌───── month (1-12 or JAN-DEC)
│ │ │ │ ┌───── day of week (0-6 or SUN-SAT)
* * * * *
  • * any value  , list  - range  / step
  • Month names (JAN-DEC) and day names (SUN-SAT) are supported.
  • Use the Crontab Generator to build expressions visually.
  • Everything runs in your browser — no data is sent over the network.

Tips & Best Practices

Pro Tip

Use @weekly, @daily, @hourly shortcuts for common schedules

Instead of memorizing that 0 0 * * 0 means weekly on Sunday, use @weekly. Cron supports @yearly (Jan 1), @monthly (1st), @weekly (Sunday), @daily (midnight), @hourly, and @reboot. These are self-documenting and less error-prone. Supported in most cron implementations including crond, systemd timers, and GitHub Actions.

Common Pitfall

Day-of-week numbering varies between implementations

Standard cron uses 0-7 for Sunday-Saturday (both 0 and 7 are Sunday). But some systems use 1-7 (Monday-Sunday). AWS EventBridge uses 1-7 (Sunday-Saturday). Quartz (Java) uses 1-7 (Sunday-Saturday). Always check your specific platform's documentation and test the schedule before deploying.

Real-World Example

Combine ranges and steps for business hours schedules

Run every 15 minutes during business hours on weekdays: */15 9-17 * * 1-5. The range (9-17) limits hours, the step (*/15) sets frequency, and the day-of-week range (1-5) excludes weekends. This runs 36 times per day instead of 96 — a significant difference for rate-limited operations.

Security Note

Cron jobs run with the scheduling user's full permissions

A cron job added to root's crontab runs as root. If the script it executes is writable by other users, they can escalate privileges by modifying the script. Always ensure cron script files are owned by the cron user and not world-writable (chmod 700). Audit crontabs regularly with crontab -l.

Frequently Asked Questions

How do I read a cron expression?
A standard cron expression has five fields: minute (0-59), hour (0-23), day of month (1-31), month (1-12), and day of week (0-6, Sunday is 0). For example, '30 9 * * 1-5' means at 9:30 AM every Monday through Friday. The asterisk means every value, commas separate lists, hyphens define ranges, and slashes set intervals. Paste any cron expression into DevBolt's Cron Parser and it translates it into plain English with the next scheduled run times. The parser handles both 5-field Unix cron and 6-field Quartz/Spring cron with a seconds field.
What is the difference between 5-field and 6-field cron expressions?
Standard Unix cron uses five fields: minute, hour, day of month, month, and day of week. Some systems add a sixth field for seconds at the beginning: second, minute, hour, day of month, month, day of week. The 6-field format is used by Java-based schedulers like Quartz and Spring. DevBolt's parser auto-detects both formats. If you are using Linux crontab, GitHub Actions, or AWS CloudWatch, use the 5-field format. If working with Quartz Scheduler or Spring Task Scheduling, check your platform's documentation since some use 5-field and others use 6-field with seconds.
How do I test what times a cron expression will trigger?
Paste your cron expression into DevBolt's Cron Parser and it displays the next scheduled execution times along with a plain-English description. This lets you verify the schedule before deploying. Common mistakes caught by testing include off-by-one errors in hour fields, confusing day-of-week numbering (0 vs 1 for Monday varies by system), and misunderstanding step values (*/5 starts from 0, not from the current time). Always test edge cases like month-end dates, leap years, and timezone boundaries. The parser shows multiple upcoming run times so you can verify the pattern matches your expectations.

Related Inspect Tools