Schedule trigger
Schedule triggers allow workflows to run automatically on a recurring time-based rule. When the configured cron expression matches the current time, Port starts a new workflow run.
Use schedule triggers for periodic tasks such as nightly reports, weekly compliance checks, or hourly health scans.
Configuration
A schedule trigger node requires a cron expression in its config:
{
"identifier": "trigger",
"title": "Weekday morning check",
"config": {
"type": "SCHEDULE_TRIGGER",
"cron": "0 9 * * 1-5"
}
}
In the workflow builder, the schedule trigger node displays a human-readable description of the cron expression (for example, "At 09:00 AM, Monday through Friday"). If the expression is missing or invalid, the node shows a generic placeholder instead.
The scheduler can run a workflow at most once every 5 minutes. Cron expressions that would fire more often than every 5 minutes are not supported.
Published
The published field controls whether the trigger is active and scheduled. When set to false, the workflow will not run on its cron schedule.
| Property | Type | Default | Description |
|---|---|---|---|
published | boolean | true | When `true`, the trigger is active and will run on its cron schedule. When `false`, the trigger is disabled. |
This is useful for temporarily disabling a workflow without deleting it, or for creating workflows that are not yet ready for production use.
Cron expression format
Schedule triggers use standard 5-field cron syntax:
┌───────────── minute (0-59)
│ ┌─────────── hour (0-23)
│ │ ┌───────── day of month (1-31)
│ │ │ ┌─────── month (1-12)
│ │ │ │ ┌───── day of week (0-7, where 0 and 7 are Sunday)
│ │ │ │ │
* * * * *
Common examples
- Daily
- Weekdays
- Weekly
- Hourly
Run every day at 9:00 AM UTC:
{
"identifier": "trigger",
"title": "Daily report",
"config": {
"type": "SCHEDULE_TRIGGER",
"cron": "0 9 * * *"
}
}
Run at 9:00 AM UTC on weekdays (Monday through Friday):
{
"identifier": "trigger",
"title": "Weekday check",
"config": {
"type": "SCHEDULE_TRIGGER",
"cron": "0 9 * * 1-5"
}
}
Run every Monday at 8:00 AM UTC:
{
"identifier": "trigger",
"title": "Weekly summary",
"config": {
"type": "SCHEDULE_TRIGGER",
"cron": "0 8 * * 1"
}
}
Run at the start of every hour:
{
"identifier": "trigger",
"title": "Hourly sync",
"config": {
"type": "SCHEDULE_TRIGGER",
"cron": "0 * * * *"
}
}
Cron field reference
| Field | Values | Special characters |
|---|---|---|
| Minute | 0-59 | *, ,, -, / |
| Hour | 0-23 | *, ,, -, / |
| Day of month | 1-31 | *, ,, -, / |
| Month | 1-12 | *, ,, -, / |
| Day of week | 0-7 (0 and 7 are Sunday) | *, ,, -, / |
Schedule triggers run in UTC. Convert your desired local time to UTC when writing cron expressions.
Multiple triggers
A workflow can include a schedule trigger alongside other trigger types (self-service, event, or agent tool). At runtime, only the trigger that fired produces outputs. See multiple triggers for details.
Example: weekly compliance scan
This workflow runs every Monday at 8:00 AM UTC and sends a webhook to an external compliance service:
{
"identifier": "weekly-compliance-scan",
"title": "Weekly compliance scan",
"icon": "Shield",
"description": "Run a weekly compliance check and notify the security team",
"nodes": [
{
"identifier": "trigger",
"title": "Every Monday at 8 AM",
"config": {
"type": "SCHEDULE_TRIGGER",
"cron": "0 8 * * 1"
}
},
{
"identifier": "notify-security",
"title": "Notify security team",
"config": {
"type": "WEBHOOK",
"url": "https://api.example.com/compliance/weekly-scan",
"method": "POST",
"body": {
"source": "port-schedule",
"workflow": "weekly-compliance-scan"
}
}
}
],
"connections": [
{
"sourceIdentifier": "trigger",
"targetIdentifier": "notify-security"
}
]
}