Elizon Docs
Workflows

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

FieldTypeDefaultDescription
modeinterval | cronintervalInterval for "every N units", Cron for a specific wall-clock time.
intervalValueinteger ≥ 11The N in "every N units". Interval mode only.
intervalUnitminutes | hours | days | weeksdaysThe unit. Interval mode only.
cronExpressionstring''A five-field cron expression, for example 0 9 * * 1-5 (09:00 on weekdays). Cron mode only.
timezoneIANA time zoneUTCThe 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.* }}.

ReferenceValue
{{ 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:

workflows/morning-report.yaml
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:

elizon.yaml
compatibility:
  requiredCapabilities: [schedule]
triggers:
  - id: every-weekday-morning
    type: schedule
    cron: '0 8 * * 1-5'
    timezone: Europe/Sofia

The 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.