Cron Expression Parser

⏰ What are Cron Expressions?

Cron expressions are compact scheduling strings used across Unix-like systems, job schedulers, and modern frameworks to define when tasks should run. Originally created for the Unix cron daemon, these powerful expressions have become the universal language for time-based job scheduling in computing.

Whether you're setting up automated backups, scheduling batch jobs, or configuring CI/CD pipelines, understanding cron syntax is essential. This tool helps you parse, validate, and visualize cron schedules across different systems.

⚙️ How This Parser Works

Enter any cron expression and instantly see when it will execute. The parser supports both traditional Linux cron (5-field) and extended Quartz/Spring (6-7 field) formats, with full timezone awareness.

🔥 Key Features:

  • Dual Format Support: Parse Linux cron (5 fields) or Quartz/Spring (6-7 fields) expressions
  • Quick Presets: One-click common schedules like hourly, daily, weekly, monthly
  • Expression Builder: Build cron expressions visually by selecting each field
  • Visual Schedule Preview: See the next N execution times in individual cards
  • 400+ Timezones: Calculate execution times in any timezone worldwide
  • Human-Readable Output: Get plain English descriptions of your schedules
  • Real-time Validation: Instant feedback on syntax errors with helpful hints
  • One-Click Copy: Click any execution time to copy to clipboard

📊 Cron Format Reference

Linux Cron (5 Fields)

┌───────────── minute (0-59)
│ ┌─────────── hour (0-23)
│ │ ┌───────── day of month (1-31)
│ │ │ ┌─────── month (1-12)
│ │ │ │ ┌───── day of week (0-6, Sun=0)
│ │ │ │ │
* * * * *

Used by: Linux/Unix cron, crontab, most CI/CD systems

Quartz/Spring Cron (6-7 Fields)

┌───────────── second (0-59)
│ ┌─────────── minute (0-59)
│ │ ┌───────── hour (0-23)
│ │ │ ┌─────── day of month (1-31) or ?
│ │ │ │ ┌───── month (1-12)
│ │ │ │ │ ┌─── day of week (1-7, Sun=1) or ?
│ │ │ │ │ │ ┌─ year (optional)
│ │ │ │ │ │ │
0 0 0 * * ?

Used by: Spring Framework, Quartz Scheduler, Java applications

🔤 Special Characters

SymbolMeaningExample
*Every value* * * * * = every minute
,List separator1,15 * * * * = minute 1 and 15
-Range0 9-17 * * * = hours 9-17
/Step/interval*/15 * * * * = every 15 min
?No specific value (Quartz only)0 0 0 ? * MON = every Monday

💼 Common Use Cases

1. 🔄 System Administration

Automate backups, log rotation, and maintenance tasks. Set up reliable schedules for critical operations without manual intervention.

Examples:

  • 0 2 * * * - Daily backup at 2 AM
  • 0 0 * * 0 - Weekly cleanup on Sunday midnight
  • */5 * * * * - Health check every 5 minutes

2. 📊 Data Processing & ETL

Schedule data pipelines, batch processing jobs, and report generation. Coordinate complex workflows across distributed systems.

Examples:

  • 0 1 * * * - Nightly ETL job at 1 AM
  • 0 0 1 * * - Monthly report on the 1st
  • 0 */4 * * * - Data sync every 4 hours

3. 🚀 CI/CD & DevOps

Trigger automated builds, deployments, and infrastructure updates. Schedule maintenance windows and monitoring tasks.

Examples:

  • 0 0 * * 1-5 - Deploy on weekdays at midnight
  • 0 6,18 * * * - Build at 6 AM and 6 PM
  • 30 23 * * 5 - Friday night maintenance

4. 📧 Notifications & Alerts

Schedule email digests, notifications, and reminder systems. Keep stakeholders informed with timely updates.

Examples:

  • 0 9 * * 1 - Monday morning digest
  • 0 8,12,18 * * * - Reminders at 8, 12, and 6
  • 0 0 1 1 * - New Year greeting

⚡ Linux vs Quartz: Key Differences

FeatureLinux CronQuartz/Spring
Fields5 (no seconds)6-7 (with seconds)
Day of Week0-6 (Sun=0)1-7 (Sun=1) or SUN-SAT
? CharacterNot supportedSupported (no value)
Year FieldNot supportedOptional 7th field
Minimum Interval1 minute1 second

❓ Frequently Asked Questions

Q: Why do my scheduled tasks run at unexpected times?

A: The most common cause is timezone confusion. Cron typically runs in the server's local timezone. Use this tool to verify execution times in your target timezone. Also check if your server uses UTC.

Q: What's the difference between * and ? in Quartz?

A: The * means "every value" while ? means "no specific value" and is only valid in day-of-month and day-of-week fields. In Quartz, you must use ? in one of these fields when specifying the other.

Q: How do I run a job at the last day of the month?

A: Standard cron doesn't support "last day" directly. Common workarounds include running on days 28-31 with a script check, or using schedulers with L support (like Quartz's 0 0 0 L * ?).

Q: Can I schedule tasks more frequently than every minute?

A: Linux cron's minimum granularity is 1 minute. For sub-minute scheduling, use Quartz (supports seconds) or alternative schedulers like systemd timers with OnUnitActiveSec.

Q: Why isn't my weekend-only job working?

A: Check your day-of-week numbering. Linux uses 0-6 (Sunday=0), while Quartz uses 1-7 (Sunday=1). Use 0,6 for weekends in Linux or 1,7 (or SUN,SAT) in Quartz.

💡 Pro Tips

  • Always Test First: Use this tool to verify your expression shows the expected execution times before deployment
  • Use Comments: In crontab files, add comments above each entry explaining what the job does
  • Log Everything: Redirect output to log files for debugging: */5 * * * * /script.sh >> /var/log/cron.log 2>&1
  • Consider Overlap: If jobs run longer than their interval, implement locking to prevent concurrent runs
  • DST Awareness: Be careful with schedules around 2-3 AM when DST changes occur
  • Use Ranges Wisely: 0 9-17 * * 1-5 is cleaner than listing every hour and weekday
  • Stagger Jobs: Don't schedule everything at :00 - spread load with different minutes

🔗 Related Tools

  • Unix Timestamp Converter - Convert between Unix timestamps and human-readable dates with timezone support
  • Elapsed Time Calculator - Calculate duration between two dates in seconds, minutes, hours, days, months, and years
  • Timestamp Log Sorter - Parse, sort, and convert timestamps in log files with auto-detection for ISO-8601, Unix, and RFC 2822 formats
  • Time Calculator - Add or subtract time from any date with full timezone and DST support. Calculate durations in seconds, minutes, hours, days, and weeks

Parser Settings

Cron System:
Timezone:
Show Next Runs:

Quick Presets

Expression Builder

Minute:
Hour:
Day of Month:
Month:
Day of Week:
Generated Expression:
* * * * *
Cron Expression
Format: Linux Cron (5 fields)
Calculated at:2025-12-21 11:20:24 UTC
Next 10 Executions
Enter a valid cron expression to see next execution times
Linux Cron (5 fields) Field Reference:
Minute:0-59
Hour:0-23
Day of Month:1-31
Month:1-12
Day of Week:0-6 (Sun-Sat)
Common Patterns:
* * * * *Every minute
0 * * * *Every hour
0 0 * * *Every day at midnight
0 0 * * 0Every Sunday at midnight
0 0 1 * *First day of every month
*/15 * * * *Every 15 minutes
0 9-17 * * 1-5Every hour 9-17, Mon-Fri
0 0 1 1 *Every January 1st