Cron Translator

Read 0 9 * * 1-5 without guessing

Five asterisks, and nobody remembers what the fourth one does. Paste the line and see what it means, what each field controls, and the next five runs in your own timezone.

Translate my expression
01

Why your cron job never runs

The syntax is not the hard part. Two defaults are. First: five fields and six fields are different languages. Standard crontab is minute, hour, day of month, month, day of week. Quartz and Spring put a seconds field in front. One field off and the job either never fires or fires 1440 times a day.

Second: when day-of-month and day-of-week are both set, cron uses OR, not AND. 0 0 1 * 1 does not mean the 1st if it happens to be a Monday. It means the 1st, or any Monday. People write that expecting the first Monday of the month, and get four extra runs.

This page does three things: explains each field in plain language, computes the next five real run times, and tells you where the traps are. If the schedule can never fire, like February 30th, it says so instead of pretending.

02

Paste it, or say it out loud

Nothing is stored: the expression is parsed in your browser only. No upload, no log, gone when you refresh.

Common schedules, tap to fill

03

Read the result

In plain English

Five-field form
    FieldRawMeans

    Next 5 runs

      Cheat sheet (tap a row to fill)

      */5 * * * *Every 5 minutes
      0 * * * *Top of every hour
      30 2 * * *Daily at 2:30 AM
      0 9 * * 1-5Weekdays at 9:00 AM
      0 9 * * 1Mondays at 9:00 AM
      0 0 1 * *1st of the month, midnight
      0 3 * * 6Saturdays at 3:00 AM
      0 0 1 1 *January 1st, midnight
      04

      Common questions

      My expression has 6 fields with seconds. Can I paste it?

      Yes. Quartz and Spring prepend a seconds field, so the page drops it and evaluates the remaining five, with a note to confirm which platform you target. Going the other way, pasting six fields into a Linux crontab is a syntax error.

      The times here are 8 hours off from my server logs.

      This page uses your device timezone, and most servers run UTC. Every run row shows the UTC time too, so compare that against the log. An eight-hour gap is timezone, not a broken expression.

      How do I schedule the first Monday of the month?

      Standard cron cannot express it. 0 9 1-7 * 1 reads as the 1st through the 7th, or any Monday, which is wider than you want. Check the date inside the script, or switch to Quartz # syntax.

      Does this page keep my expression?

      No. Everything runs in your browser, no request is sent, nothing is logged, and a refresh clears it. Cron lines often carry paths and account names, so nothing leaves the tab.