Skip to main content
The Recurring schedule trigger (scheduled) starts a workflow on a daily, weekly, monthly, or cron-based schedule in a fixed timezone. It carries no triggering record, so a scheduled workflow has no data to start from. Most scheduled workflows fix this by fetching their own data in the first step, using Find records or Find list entries. The trigger fires in the workflow’s configured timezone. That timezone is the single most common source of “it ran an hour early” surprises.

Inputs

Outputs

You can reference the fire time in a later block as {{ steps.recurring_schedule.timestamp }}. For example, use it to label a daily digest with its run date.

Behavior

The trigger fires on each scheduled occurrence. Attio evaluates the schedule in the configured timezone. No record or list entry enters the run. As a result, the downstream variable picker exposes only the timestamp. To act on data, add a lookup block as the first step. Set its limit while you build, because Find records and Find list entries return at most 100 results each.

Gotchas

  • The run fires in the wrong hour. The schedule uses the workflow’s configured timezone, not the viewer’s or the workspace owner’s. Open the trigger and confirm the Timezone field matches the time you mean before you publish.
  • A scheduled sweep silently processes only part of the pipeline. Find records and Find list entries cap at 100 results. A daily sweep over a larger pipeline misses everything past that cap. Narrow the filter so each run’s working set stays under 100, or split the work across more frequent runs.
  • A looping sweep burns far more credits than expected. A schedule that fans out across many records with Loop multiplies every paid block inside the loop by the record count. Estimate the worst case before you publish: take the record count and multiply it by the per-record paid blocks. Keep the limit low while testing.

Examples

Sweeping stale open deals every weekday morning

A weekday schedule wakes the workflow, fetches deals with no recent activity, and creates a follow-up task for each owner. The workflow then runs Find records for open deals with a stale last-activity date and creates a Create task reminder for each owner. At 09:00 New York time each weekday, every stale deal gets a fresh follow-up task assigned to its owner.

Posting a daily pipeline digest at a fixed time

A once-a-day schedule fires, the workflow aggregates the day’s open pipeline, and a Slack message goes out to #revenue.
Downstream, the digest message stamps its run date with {{ steps.recurring_schedule.timestamp }}. At 08:30 London time every day, #revenue receives a digest headed with that morning’s date.

Running a monthly data-hygiene pass with a cron expression

An advanced cron schedule runs a hygiene sweep on the first of each month, outside business hours. The cron expression 0 2 1 * * fires at 02:00 on the first day of every month. On that schedule the workflow runs its monthly cleanup once, in UTC, when no one is editing records.

Source

Last reviewed against the Attio Help Center, June 2026.

See also