ThisCalculator

Everyday

Cron Time Converter: How to Read Cron Schedules

Updated · Standard formula, shown below

The calculator for this page is switched off while it is checked. The formula is below, and the worked example in the article shows how to use it by hand.

Cron Time Converter: How to Read Cron Schedules

A cron time converter translates a cron expression (like 0 2 * * *) into a plain-language schedule, telling you exactly when the job will run—down to the minute, hour, day, and month. You enter the five cron fields and optionally a time zone, and you get back a human-readable description plus the next few run times. This page explains how cron syntax works, how to read and write expressions, and how to avoid the most common mistakes.

Formula

The converter does not use a single arithmetic formula; it parses the five cron fields and computes the next matching timestamp. The five fields are:

  • Minute (0–59)
  • Hour (0–23)
  • Day of month (1–31)
  • Month (1–12 or JAN–DEC)
  • Day of week (0–7, where 0 and 7 are Sunday, or SUN–SAT)

Each field can contain a single number, a list (1,15), a range (9-17), a step (*/15 or 0-30/10), or a combination. The expression matches when all five fields match the current time. The next run time is the smallest timestamp after “now” that satisfies all fields.

Worked Example

Take the default expression 0 2 * * *. Field by field:

  1. Minute = 0 → the job runs at minute 0 of the hour.
  2. Hour = 2 → the job runs at 02:00.
  3. Day of month = * → any day.
  4. Month = * → any month.
  5. Day of week = * → any day of the week.

So the job runs at 2:00 AM every day. If the current time is 2025-01-15 10:30 UTC and the offset is 0, the next run is 2025-01-16 02:00 UTC. The converter shows that as 2025-01-16 02:00.

Why Cron Syntax Is Confusing

Cron was invented in the 1970s for Unix systems, and the syntax has remained largely unchanged. The main source of confusion is the interaction between day-of-month and day-of-week. When both fields are restricted (not *), the job runs when either matches—this is an OR, not an AND. For example, 0 0 1 * 1 runs on the first day of the month or every Monday, not only on Mondays that are also the first of the month. Many users expect the opposite, which leads to missed or extra runs.

How to Choose a Cron Expression

Start from the desired schedule and work backward:

  • Every day at midnight → 0 0 * * *
  • Every hour at minute 15 → 15 * * * *
  • Every Monday at 9 AM → 0 9 * * 1
  • On the 1st and 15th at 6 PM → 0 18 1,15 * *
  • Every 10 minutes → */10 * * * *
  • On weekdays at 8:30 AM → 30 8 * * 1-5

If you need a more complex schedule (e.g., “every 2 hours between 8 AM and 6 PM”), use ranges with steps: 0 8-18/2 * * *.

Common Mistakes and How to Avoid Them

  • Using 7 for Sunday in day-of-week – Both 0 and 7 are valid, but some systems only accept 0. Stick to 0.
  • Forgetting that day-of-week and day-of-month OR – As noted, if you restrict both, the job runs when either matches. To avoid surprises, use only one of them (set the other to *).
  • Assuming 0 0 * * * runs every hour – It runs once per day at midnight. For hourly, use 0 * * * *.
  • Ignoring time zone – Cron typically uses the system’s local time. If you expect UTC, you may get runs at the wrong hour. Always specify the time zone in your converter or on the server.
  • Using */0 or /0 – A step of zero is invalid. Use * or a positive step.

Limits of Cron and When to Use Alternatives

Cron cannot express “every 90 seconds” (the smallest unit is a minute) or “on the last Friday of the month” (there is no syntax for that). For such schedules, you need a workaround: run a cron job every day and have the script check the date, or use a scheduler like systemd timers or a job library that supports more complex rules. Also, cron does not handle daylight saving time transitions well; a job set for 2:30 AM may not run on the day the clock skips that time.

How to Use This Converter

Enter a valid cron expression in the first field. The converter will parse it and show the next run time (in the time zone you specify) and a plain description. If the expression is invalid, the output will show an error. Use the time zone offset to adjust for your server’s local time; for example, UTC+2 means you enter 2.

Frequently Asked Questions

What does * mean in cron?

The asterisk means “every possible value” for that field. For example, * * * * * runs every minute, and 0 * * * * runs every hour at minute 0.

Can I use names for months and days?

Yes, most cron implementations accept three-letter abbreviations: JAN–DEC and SUN–SAT. They are case-insensitive. For example, 0 9 * JAN MON runs every Monday in January at 9 AM.

How do I run a job every 5 minutes?

Use */5 * * * *. This matches minutes 0, 5, 10, 15, and so on. If you want every 5 minutes starting at minute 2, use 2-59/5 * * * *.

What is the difference between 0 0 1 * * and 0 0 * * 1?

The first runs on the first day of every month at midnight. The second runs every Monday at midnight. They are different schedules.

Why does my cron job run twice when I set both day-of-month and day-of-week?

Because cron treats the two fields as an OR. If you set 0 0 1 * 1, it runs on the 1st of the month and on every Monday. If the 1st is a Monday, it runs only once, but if not, it runs on the 1st and on each Monday separately. To avoid this, leave one field as *.

How do I convert a cron expression to a time zone?

Most cron systems run in the server’s local time zone. To convert, you need to know the offset between the server time and your desired time. For example, if the server is UTC and you want 8 AM EST (UTC-5), you would set the hour to 13 (8 + 5). Some modern schedulers allow you to specify a time zone in the expression, but traditional cron does not.

Related

Formula used
in expr | Cron expression | - | 0 2 * * * | 0
in tz | Time zone offset (hours from UTC) | h | 0 | -12
out next | Next run time (UTC + offset) | clock | 0 | 0
out desc | Description | - | "Runs at 02:00 every day" | 0

Each line is one input (in, sel, list) or one result (out: label, unit, formula, decimals). How the calculators work

Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.