How to schedule a pipeline in Azure Data Factory
Running a pipeline manually every day isn't sustainable: sooner or later someone forgets, and the data goes stale. In Azure Data Factory, a Schedule Trigger solves this by scheduling a pipeline to start on its own — for example, every night at 02:00. Below you'll see, step by step, how to schedule a pipeline in Azure Data Factory, first from the ADF Studio interface and then with PowerShell code.
Prerequisites
- An Azure Data Factory instance already created, with access to ADF Studio.
- A working, already-tested pipeline (for example, a
Copy dataactivity). - Permissions to publish changes to the factory (the Data Factory Contributor role).
- Optional: the PowerShell
Az.DataFactorymodule, if you prefer to create the trigger with code.
Step 1: Open the trigger menu
In ADF Studio, open the Author tab (the pencil icon on the left) and find the pipeline you want to schedule. At the top of the pipeline canvas, click Add trigger and choose New/Edit. This menu is the starting point for attaching a schedule to the pipeline.
Step 2: Create a new Schedule Trigger
In the Add triggers pane, open the Choose trigger list and click + New. Give the trigger a descriptive name (for example, trg-daily-02h) and, in the Type field, select Schedule. Then set the main fields:
- Start date: the date and time from which the schedule becomes active.
- Time zone: pick your zone (for example, W. Europe Standard Time) to avoid confusion with UTC.
- Recurrence: the frequency, such as Every 1 Day.
- Advanced recurrence: if needed, set the exact time (for example, 02:00) or the days of the week.
Tip: a Schedule Trigger never runs in the past. If the Start date is earlier than the current moment, runs only begin at the next future occurrence.
Step 3: Understand the trigger JSON
Behind the scenes, the interface generates a JSON object. Knowing it helps you understand what's happening and is essential if you want to create the trigger with code. A daily Schedule Trigger at 02:00 looks like this:
{
"name": "trg-diario-02h",
"properties": {
"type": "ScheduleTrigger",
"typeProperties": {
"recurrence": {
"frequency": "Day",
"interval": 1,
"startTime": "2026-07-06T02:00:00",
"timeZone": "W. Europe Standard Time",
"schedule": {
"hours": [ 2 ],
"minutes": [ 0 ]
}
}
},
"pipelines": [
{
"pipelineReference": {
"referenceName": "pl-copia-vendas",
"type": "PipelineReference"
},
"parameters": {}
}
]
}
}
Notice three things: frequency and interval define how often the pipeline runs; the schedule object fine-tunes the exact time; and pipelines links the trigger to the pipeline it will run.
Step 4: Publish to activate
A trigger only starts working once it is published. Click OK to close the pane and then Publish all at the top of ADF Studio. Without this step, the schedule stays as a draft and the pipeline never starts on its own.
Step 5 (alternative): Create the trigger with PowerShell
If you'd rather automate creation, save the JSON above to a file (for example, trigger.json) and use the Az.DataFactory module. The trigger is created in a stopped state, so you must start it explicitly:
Set-AzDataFactoryV2Trigger -ResourceGroupName "rg-dados" -DataFactoryName "adf-bconcepts" -Name "trg-diario-02h" -DefinitionFile "./trigger.json"
Start-AzDataFactoryV2Trigger -ResourceGroupName "rg-dados" -DataFactoryName "adf-bconcepts" -Name "trg-diario-02h"
Check the result
To confirm everything is set, open the Manage > Triggers tab and check that your trigger shows the Started state. Alternatively, the Get-AzDataFactoryV2Trigger command shows the same state in the console. After the scheduled time, go to Monitor > Trigger runs and confirm there is a run whose Triggered By field points to your trigger.
Conclusion
With a Schedule Trigger, your pipeline runs on its own at the right time — an essential step toward reliable data pipelines. From here, try a Tumbling Window Trigger when you need to process time windows in sequence, or an event-based trigger to react to incoming files. Which pipeline will you automate first?