Free tool

Azure Functions cron expression generator and validator

Build a schedule with a few choices or paste an expression. You get the six-field NCRONTAB expression, what it means in words, and exactly when it runs next, in UTC and in your time zone.

Build a schedule

    In words

    Next 10 runs

      In code

      Or keep the schedule in an app setting and change it without a new deployment:

      Common Azure Functions cron expressions

      ExpressionMeaningTry
      0 */5 * * * *Every 5 minutes
      0 */15 * * * *Every 15 minutes
      0 0 * * * *Every hour
      0 0 */2 * * *Every 2 hours
      0 0 2 * * *At 02:00, every day
      0 30 8 * * 1-5At 08:30 · Days of the week: Monday – Friday
      0 0 9 * * 1At 09:00 · Days of the week: Monday
      0 0 0 1 * *At 00:00 · Days of the month: 1
      0 */5 8-17 * * 1-5Every 5 minutes between 08:00 and 17:59 · Days of the week: Monday – Friday
      */30 * * * * *Every 30 seconds

      The six fields of an NCRONTAB expression

      #FieldAllowed values
      1Second0–59
      2Minute0–59
      3Hour0–23
      4Day of the month1–31
      5Month1–12 or Jan–Dec
      6Day of the week0–6 (0 = Sunday) or Sun–Sat

      Special characters: * any value · , list (1,15) · - range (1-5) · / step (*/5). Names of days and months are in English.

      Common mistakes with timer triggers

      • /Six fields, not five. Azure starts with seconds, so the Linux cron */5 * * * * becomes 0 */5 * * * *.
      • /Azure runs timer triggers in UTC. For local time, set the WEBSITE_TIME_ZONE app setting, which not every hosting plan supports.
      • /If you set both the day of the month and the day of the week, both have to match. In Linux cron, either one is enough.
      • /With a local time zone, runs around the daylight saving change can be skipped or repeated. Avoid scheduling important jobs between 02:00 and 03:00.
      • /Do not leave RunOnStartup = true in production. The function then also runs on every restart and scale-out.
      • /Keep the schedule in an app setting, for example TimerTrigger("%ImportSchedule%"), so you can change it without a new deployment.
      © 2026 ProCoding — All rights reserved.Legal notice and privacyTerms of useSplit, Croatia