Skip to content
Cron Expression Generator

Cron to plain English

Cron Expression Translator

Paste a cron expression and read it in plain English and Arabic. The translator explains each field, checks the syntax, warns about schedules that don’t do what they seem to, and calculates the next run times in your time zone, for Unix crontab, Quartz, Spring, AWS, Jenkins and more.

Cron expression translator and generator

Format
Valid

5 fields (minute hour day month weekday), or 6 with seconds first. Names like MON-FRI, macros like @daily and full crontab lines work. Press / to focus.

English

At 4:30 AM, on days 1 and 15 of the month or on Friday.

العربية

في تمام الساعة 4:30 ص، في الأيام 1 و15 من الشهر أو يوم الجمعة.

    Quick presets

    Visual cron generator

    Pick options for each field — the expression above updates instantly.

    Next 5 executions

    Local time:

      Cheat sheet

      *
      Any value
      ,
      List — 1,15,30
      -
      Range — 1-5
      /
      Step — */10
      ?
      No specific value (day fields)
      @daily
      Macro for 0 0 * * *

      How to translate a cron expression

      1. Paste the expression into the box above. A bare schedule such as */10 * * * * works, and so does a full crontab line; the command is shown separately.
      2. Choose the format if it isn't Unix cron. Quartz and Spring start with a seconds field and AWS EventBridge adds a year, so the same text can mean different things.
      3. Read the translation in English and Arabic, and the field-by-field breakdown under the input.
      4. Check the next five run times. They are the quickest way to confirm that the schedule does what you meant.

      Cron translation examples

      Click an expression to load it into the translator.

      Cron expressionSchedule
      Every 5 minutes.
      At 0 minutes past the hour, every 2 hours.
      At 9:00 AM, Monday through Friday.
      At 10:00 PM, Monday through Friday.
      At 2:15 PM, on day 1 of the month.
      At 12:00 AM, on day 1 of the month, only in January, April, July, and October.
      At 4:05 AM, only on Sunday.
      At 23 minutes past the hour, every 2 hours, between 12:00 AM and 8:59 PM.
      At 12:00 AM and 12:00 PM, on day 1 of the month, only in January, March, May, July, September, and November.
      At 12:00 AM, only on Sunday.

      How to read a cron expression by hand

      A Unix cron expression has five fields, always in the same order: minute, hour, day of month, month and day of week. Take 30 4 1,15 * 5:

      FieldValueMeaning
      Minute30at minute 30
      Hour4at 4 AM
      Day of month1,15on the 1st and the 15th
      Month*in every month
      Day of week5on Friday

      Put together, the job runs at 4:30 AM on the 1st and 15th of every month and on every Friday. When both day fields are restricted, Unix cron runs the job if either one matches. The translator flags this, because it is the most common misreading of cron.

      Three habits make cron easier to read:

      The cron syntax cheat sheet lists every operator and special string.

      Cron checker: errors and warnings

      The translator also works as a cron validator. It rejects expressions that cron would refuse, and warns about ones that are valid but probably wrong:

      Cron calculator: next run times

      Below the translation, the tool calculates the next five times the schedule fires, in your browser's time zone and across daylight-saving changes. That makes it a quick cron calculator: change a field and watch the dates move.

      The server decides the time zone, though. Linux cron uses the system time zone, often UTC on cloud servers (check it with timedatectl), and AWS EventBridge rules always run in UTC, so the tool shows UTC for that format.

      Convert cron expressions between formats

      Switching the format in the translator rewrites the expression for the new scheduler whenever the meaning can be kept exactly:

      Unix cronQuartzSpringAWS EventBridge
      0 9 * * 1-50 0 9 ? * MON-FRI0 0 9 * * MON-FRI0 9 ? * MON-FRI *
      */5 * * * *0 */5 * * * ?0 */5 * * * **/5 * * * ? *
      0 0 1 * *0 0 0 1 * ?0 0 0 1 * *0 0 1 * ? *
      0 0 * * 00 0 0 ? * SUN0 0 0 * * SUN0 0 ? * SUN *

      Some schedules can't be converted. 30 4 1,15 * 5 relies on Unix cron's OR rule, which Quartz, Spring and AWS don't have, so the tool tells you instead of producing a wrong expression. Each format has its own generator:

      Frequently asked questions

      What does * * * * * mean in cron?

      Every minute. Each asterisk means “every value” for its field, so the job runs every minute of every hour of every day.

      What does */5 mean in a cron expression?

      It is a step: every fifth value of the field. In the minute field, */5 runs at minutes 0, 5, 10 … 55, which is every 5 minutes.

      What does 0 0 * * * mean?

      Every day at midnight (00:00 server time). It is the same as the @daily and @midnight shortcuts.

      How do I check if a cron expression is valid?

      Paste it into the translator above. An invalid expression gets an error that names the field and the problem; a valid one gets a plain-English translation and its next run times. crontab -e also refuses to install a file with a syntax error.

      Is Sunday 0 or 7 in cron?

      Both. Unix cron accepts 0 and 7 for Sunday, so 0 9 * * 0 and 0 9 * * 7 are the same. Quartz and Salesforce are different: there 1 is Sunday and 7 is Saturday.

      Can it translate Quartz, Spring and AWS cron expressions?

      Yes. Pick the format above the input: Unix, Quartz, Spring, AWS EventBridge, Jenkins, Salesforce, Hangfire, Airflow or node-cron. Each has its own fields and special characters, and the translator applies the right rules.

      Is my cron expression sent to a server?

      No. The translator runs entirely in your browser, and nothing you type leaves your device.

      Related tools and guides