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| Field | Position | Values | Platform note |
|---|---|---|---|
| Second | 1 | 0-59 | Often 0 for top-of-minute. |
| Minute | 2 | 0-59 | Standard minute field. |
| Hour | 3 | 0-23 | UTC unless WEBSITE_TIME_ZONE set. |
| Day | 4 | 1-31 | Use ? when weekday is set. |
| Month | 5 | 1-12 | Numeric months. |
| Day of week | 6 | 0-6 | Optional ? 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
- Author the NCRONTAB string in CronWizard (convert from 5-field Unix).
- Add TimerTrigger to your function.
- Set WEBSITE_TIME_ZONE if local wall-clock is required (verify plan support).
- 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/IstanbulLimits 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.