Cron Expression Parser

Part of Network & Web Tools

Understand what your cron expressions do in plain English. Parse, validate, and decode crontab syntax instantly.

How to Use the Cron Expression Parser

  1. Enter expression: Type or paste a cron expression into the input field. Use the standard 5-field format: minute, hour, day-of-month, month, day-of-week.
  2. Parse: Click "Parse" or press Enter to analyze the expression. The parser validates the syntax and breaks down each field.
  3. Read description: See a plain English explanation of when the scheduled job will run, including frequency and timing details.
  4. Check breakdown: View each field's value and what it means for minute, hour, day, month, and weekday scheduling.

Understanding Cron Expressions

Cron expressions define schedules for automated tasks in Unix-like systems. Each expression consists of five fields separated by spaces: minute (0-59), hour (0-23), day of month (1-31), month (1-12), and day of week (0-6, where 0 is Sunday). Understanding these fields helps you read and debug existing cron jobs or verify that generated expressions match your intended schedule. Create new expressions with our Cron Expression Generator.

The parser interprets special characters that make cron powerful. An asterisk (*) means "any value," allowing tasks to run every minute, hour, or day. Slashes (/) create step values for intervals like "every 5 minutes." Hyphens (-) define ranges such as "Monday through Friday," and commas (,) list specific values like "at 0 and 30 minutes past the hour."

Cron Field Reference

Minute (0-59): Which minute(s) of the hour the task runs. 0 = top of the hour, 30 = half past, */15 = every 15 minutes.

Hour (0-23): Which hour(s) of the day in 24-hour format. 0 = midnight, 12 = noon, 9-17 = business hours 9 AM to 5 PM.

Day of Month (1-31): Which day(s) of the month. 1 = first day, 15 = mid-month, L = last day (some implementations).

Month (1-12): Which month(s). 1 = January, 12 = December. Some systems allow month names like JAN, FEB.

Day of Week (0-6): Which day(s) of the week. 0 or 7 = Sunday, 1 = Monday, 5 = Friday. Some systems allow names like MON, TUE.

Special Characters Explained

* (asterisk): Matches any value. Using * in the hour field means "every hour." It's the wildcard that makes fields run at every possible value.

/ (slash): Defines step values. */5 in minutes means "every 5 minutes" (0, 5, 10, 15...). 2-10/2 means every 2 units from 2 to 10.

- (hyphen): Specifies a range. 1-5 in day-of-week means Monday through Friday. 9-17 in hour means 9 AM through 5 PM.

, (comma): Lists multiple values. 0,15,30,45 in minutes runs at 0, 15, 30, and 45 minutes past each hour.

Common Patterns

* * * * * - Every minute (most frequent possible schedule)

0 * * * * - Every hour at minute 0 (hourly at the top of the hour)

0 0 * * * - Daily at midnight (once per day)

0 9 * * 1-5 - Weekdays at 9 AM (Monday through Friday business hours)

*/15 * * * * - Every 15 minutes (4 times per hour)

0 */6 * * * - Every 6 hours (4 times per day)

Troubleshooting Cron Expressions

Unexpected timing: Remember that day-of-month and day-of-week use OR logic. If both are specified (not *), the task runs when either condition is true.

Validation errors: Check that values are within valid ranges. Minutes go to 59, hours to 23, days to 31 (or month maximum), months to 12, weekdays to 6.

Timezone issues: Cron uses the system's local timezone. If your server is in a different timezone, adjust your expression accordingly.

Missing executions: If the system is down when a cron job should run, it won't run when the system comes back up (unlike systemd timers with persistent mode).