Recurrence trigger
Run a workflow on a schedule — every N minutes, hours, days or weeks, or on a cron expression.
The Recurrence Trigger (trigger_recurrence) starts the workflow on a schedule of its own — no caller, and nothing for you to host. The schedule is created, updated or removed when you publish or unpublish.
Configuration
| Field | Type | Default | Description |
|---|---|---|---|
mode | interval | cron | interval | Interval for "every N units", Cron for a specific wall-clock time. |
intervalValue | integer ≥ 1 | 1 | The N in "every N units". Interval mode only. |
intervalUnit | minutes | hours | days | weeks | days | The unit. Interval mode only. |
cronExpression | string | '' | A five-field cron expression, for example 0 9 * * 1-5 (09:00 on weekdays). Cron mode only. |
timezone | IANA time zone | UTC | The zone the schedule is expressed in, for example Europe/Sofia. The schedule keeps local time across daylight-saving changes. |
Intervals are aligned to the Unix epoch, not to the moment you published, so "every 1 day" fires at 00:00 in the configured zone rather than at publish time. Use Cron whenever you need a specific time of day; to fire at several times, put them in one expression (0 9,17 * * 1-5).
Output
A scheduled run carries an empty trigger payload, so nothing is available under {{ trigger.* }}.
| Reference | Value |
|---|---|
{{ run.trigger.type }} | schedule. |
{{ run.trigger.id }} | This node's id. |
{{ run.startedAt }} | When this scheduled run started, ISO 8601 UTC. Use it to tell a prompt what "today" is. |
Limits and errors
- One per workflow. Saving a second Recurrence trigger fails: the schedule is held once per workflow, so a second one would never fire.
- A misconfigured schedule — an empty cron expression, an unknown time zone — fails the publish with a message naming the problem, rather than leaving a "published" workflow that can never fire.
- Each fire is an ordinary run and counts against the concurrency ceiling.
Example
A report every weekday at 08:00 Sofia time:
name: Morning report
description: Builds the morning report on weekdays.
graph:
nodes:
- id: every-morning
type: trigger_recurrence
position: { x: 0, y: 0 }
data:
mode: cron
intervalValue: 1
intervalUnit: days
cronExpression: 0 8 * * 1-5
timezone: Europe/Sofia
- id: report
type: ai_agent
position: { x: 280, y: 0 }
data:
mode: existing
agent: agents.reporter
agentName: Reporter
inputMappings: []
edges:
- { id: every-morning-to-report, source: every-morning, target: report }In a Package
Declare a schedule trigger in the manifest, and the schedule capability with it:
compatibility:
requiredCapabilities: [schedule]
triggers:
- id: every-weekday-morning
type: schedule
cron: '0 8 * * 1-5'
timezone: Europe/SofiaThe installer can confirm or change the time and zone in the install wizard. On the node itself:
- Travels:
mode,intervalValue,intervalUnit,cronExpression,timezone - Converted: none
- Never carried: none
See Package triggers.