Platform schedule guide

Azure Functions Timer Trigger Cron Guide

NCRONTAB timer expressions for Azure Functions: six-field format, {schedule} binding, timezone considerations, and validation workflow.

Platform behavior reviewed against the official documentation on August 5, 2026.

Format
6-field NCRONTAB
Default zone
UTC (app setting may override)
Binding
TimerTrigger attribute
Fields
second minute hour day month day-of-week

Overview

Azure Functions timer triggers use NCRONTAB expressions — a six-field cron variant with seconds first.

Timers run in UTC by default unless an app setting WEBSITE_TIME_ZONE is configured on Consumption plans with limitations.

Timer triggers invoke a function on a schedule for batch jobs, sync, and maintenance.

NCRONTAB format

Fields are: {second} {minute} {hour} {day} {month} {day-of-week}.

Use ? for unused day-of-month or day-of-week fields when the other is specified.

┌───────────── second (0-59)
│ ┌───────────── minute (0-59)
│ │ ┌───────────── hour (0-23)
│ │ │ ┌───────────── day (1-31)
│ │ │ │ ┌───────────── month (1-12)
│ │ │ │ │ ┌───────────── day of week (0-6)
│ │ │ │ │ │
0 0 9 * * 1-5
Azure Functions schedule fields and valid values
FieldPositionValuesPlatform note
Second10-59Often 0 for top-of-minute.
Minute20-59Standard minute field.
Hour30-23UTC unless WEBSITE_TIME_ZONE set.
Day41-31Use ? when weekday is set.
Month51-12Numeric months.
Day of week60-6Optional ? wildcard.

Copyable schedule examples

Weekdays 09:00 (NCRONTAB)

0 0 9 * * 1-5

[FunctionName("DailyJob")]
public static void Run([TimerTrigger("0 0 9 * * 1-5")] TimerInfo timer)

Every 15 minutes

0 */15 * * * *

First day of month at midnight

0 0 0 1 * *

Mondays at 08:30

0 30 8 * * 1

Timer trigger binding

Add a TimerTrigger to a function and deploy to Azure.

[FunctionName("ScheduledTask")]
public static async Task Run(
    [TimerTrigger("0 0 9 * * 1-5")] TimerInfo timer,
    ILogger log)
{
    log.LogInformation($"Executed at {DateTime.UtcNow}");
}

Deployment checklist

  1. Author the NCRONTAB string in CronWizard (convert from 5-field Unix).
  2. Add TimerTrigger to your function.
  3. Set WEBSITE_TIME_ZONE if local wall-clock is required (verify plan support).
  4. Monitor execution history in Application Insights.

Timezone behavior

Without WEBSITE_TIME_ZONE, schedules use UTC.

When enabling local timezone, test DST transitions with CronWizard DST checker.

WEBSITE_TIME_ZONE=Europe/Istanbul

Limits and platform behavior

Consumption plan cold start
First run after idle may delay.
Six-field requirement
Five-field Unix cron must be converted.
Singleton option
Use Host.json to prevent overlapping runs.
Plan-specific timezone
Not all plans support WEBSITE_TIME_ZONE equally.

Production gotchas

  • Off-by-one fields

    Prepending 0 for seconds is easy to forget.

  • ? vs *

    Azure uses ? for day field conflicts.

  • Missed runs

    App offline during trigger may skip unless configured otherwise.

  • Local vs UTC docs

    Samples mix UTC and local — verify your app setting.

Frequently asked questions

How do I convert Unix cron to NCRONTAB?

Prepend 0 for seconds: Unix 0 9 * * 1-5 becomes 0 0 9 * * 1-5.

Can CronWizard validate NCRONTAB?

Build in Unix, export, then prepend seconds or use Quartz mode for preview.

Does Azure support seconds?

Yes, NCRONTAB includes a seconds field.

Where is the official reference?

See Azure Timer trigger NCRONTAB documentation linked below.

Official documentation and related guides