Azure

Cron Expressions for Azure Functions Timer Trigger

Azure Functions Timer Trigger uses a 6-field NCRONTAB expression where the first field is seconds (not minutes). This differs from standard crontab, GitHub Actions, and Kubernetes CronJob, all of which start with minutes.

Format
6-field cron
Fields
6 fields: second minute hour day-of-month month day-of-week
Timezone
UTC by default (override with WEBSITE_TIME_ZONE app setting)
Validate your Azure cron expression instantly
Paste any cron expression → get a plain-English explanation, next run times, and lint warnings.

Common Azure Cron Patterns

Every 5 minutes
0 */5 * * * *

Runs every 5 minutes (note: second field is first)

Use caseFrequent Azure Function trigger
Every hour
0 0 * * * *

Runs at the top of every hour (second=0, minute=0)

Use caseHourly processing, timer-based orchestration
Daily at 9am
0 0 9 * * *

Runs every day at 09:00:00

Use caseMorning jobs, daily reports
Weekdays at 8am
0 0 8 * * 1-5

Runs Monday through Friday at 08:00:00

Use caseBusiness-hours automation
Every 30 seconds
*/30 * * * * *

Runs every 30 seconds — unique to Azure (sub-minute!)

Use caseHigh-frequency polling, near-real-time processing
Nightly at 2am
0 0 2 * * *

Runs every night at 02:00:00

Use caseNightly batch jobs, cleanup tasks
First day of month
0 0 0 1 * *

Runs at midnight on the 1st of every month

Use caseMonthly billing, reports
Every Monday at noon
0 0 12 * * 1

Runs every Monday at 12:00:00 UTC

Use caseWeekly digest, scheduled report

Azure Functions Timer Trigger — function.json

jsonAzure
// function.json (in-process model)
{
  "disabled": false,
  "bindings": [
    {
      "name": "myTimer",
      "type": "timerTrigger",
      "direction": "in",
      "schedule": "0 */5 * * * *",
      "runOnStartup": false,
      "useMonitor": true
    }
  ]
}

// C# isolated worker — Program.cs
[Function("TimerTrigger")]
public void Run(
    [TimerTrigger("0 */5 * * * *")] TimerInfo timerInfo,
    FunctionContext context)
{
    var logger = context.GetLogger("TimerTrigger");
    logger.LogInformation($"Timer fired at: {DateTime.Now}");
}

How Azure Differs from Standard Crontab

Azure Functions uses 6-field NCRONTAB with seconds as the first field. This is the opposite order from AWS EventBridge (which adds year as the 6th field). Azure supports sub-minute scheduling, which no other common platform offers.

Common Gotchas & Pitfalls

1

The first field is SECONDS, not minutes — '0 */5 * * * *' means every 5 minutes, not every 5 seconds.

2

Sub-minute scheduling is supported — '*/30 * * * * *' runs every 30 seconds.

3

Timezone defaults to UTC. Set WEBSITE_TIME_ZONE app setting (Windows: 'Eastern Standard Time'; Linux: 'America/New_York').

4

Use '%ScheduleExpression%' syntax to reference an app setting for the cron string, enabling environment-specific schedules.

5

runOnStartup: true will trigger the function when the host starts — avoid in production to prevent unexpected runs after deployment.

6

useMonitor: true persists schedule state to blob storage, preventing duplicate executions in multi-instance deployments.

7

The Consumption plan may have cold starts — consider Premium plan for time-sensitive scheduled jobs.

Other Platform Guides

More Cron Expression Tools

Translate, build, test, and reference cron expressions — all in one place.