What are Schedules?

Use Schedules to run Flows and Agents automatically at a specific time or on a recurring cadence. Create a Schedule instead of starting a Flow or Agent manually each time.

Test your Flow or Agent manually before you schedule it. Confirm that it handles your inputs and completes successfully.

If you build from a full product object (FPO) template, define executable automation in the top-level productObject.schedules[] array. For more information, see FPO templates.

A Product Surface with type: "schedule" is optional. It presents or manages schedule behavior but does not create an executable trigger.

How Schedules work

Dana leads growth at Example Organization, a business-to-business (B2B) sales intelligence company. Manually checking job boards takes hours and causes the team to miss opportunities to faster-moving competitors.

Dana builds a Flow that scrapes job boards for new vice president of sales postings and enriches each company with funding data. The Flow scores each company against ideal customer criteria and generates personalized outreach messages.

Dana sets the Flow to run daily at 6 AM and targets a Record Type called lead-sources. The Record Type contains URLs for job board searches. Each morning, the Flow processes fresh overnight postings, adds qualified leads to the customer relationship management (CRM) system, and queues outreach emails before the team’s standup.

After reviewing the run history, Dana notices that some boards update at different times. Dana creates two Schedules: one at 6 AM for boards that update overnight and another at 2 PM for boards that post during business hours.

The result is a larger pipeline and faster outreach while new opportunities remain fresh.

Create a Schedule

To create a Schedule, open Schedules from the sidebar and click New schedule. The Create Schedule panel opens.

Select a Flow or Agent

Select Flow or Agent, then select the Flow or Agent that you want to run. The list includes the Flows and Agents in your workspace. Each Schedule targets exactly one Flow or one Agent.

Choose a target

Choose which Records to process. Flow Schedules can run without Records when the Flow does not require record input. Choose from the following targets:

  • Record Type: Process all Records of a specific type. New Records of that type are included in later runs.
  • Record IDs: Process the specific Records that you select.
  • Record Filter: Process Records that match metadata conditions. Use operators such as equals, contains, greater than, and within the last N days.

Set the timing

Choose one of the following timing options:

  • One-time: Run the Flow or Agent at one specific date and time.
  • Recurring: Run the Flow or Agent on a repeating schedule. Choose an interval of minutes, hours, days, weeks, or months.

Set the time zone

The dashboard uses your browser’s current time zone to display and edit Schedule times. Recurring Schedules use that time zone for execution. When a Schedule has no time zone, _now uses UTC.

Click Create to save the Schedule.

Start with a less frequent cadence. Increase the frequency after you confirm that the Flow behaves as expected.

Use the current time in a Schedule

Use the built-in _now and _schedule variables to include schedule timing and metadata in messages, prompt steps, and Flow inputs. A scheduled run calculates these values once and keeps them fixed throughout the run.

_now: the current date and time

The _now variable is available in scheduled and manual runs. Its date and time fields use the execution time zone.

The following table lists the fields that you can reference from _now:

VariableExampleDescription
{{_now.date}}2026-05-20Date in the execution time zone
{{_now.time}}10:42:1324-hour time in the execution time zone
{{_now.weekday}}WednesdayDay of the week
{{_now.year}}, {{_now.month}}, {{_now.day}}2026, 5, 20Numeric date parts
{{_now.timezone}}America/Los_AngelesTime zone that renders the date and time fields
{{_now.iso}}2026-05-20T17:42:13.123ZFull UTC timestamp
{{_now.unix}}1747772533Unix time in seconds

_schedule: details about this Schedule

The _schedule variable is available in scheduled runs, including recurring ticks, one-time schedules, and Run now. It is empty for manual dispatches and surface requests.

The following table lists the fields that you can reference from _schedule:

VariableExampleDescription
{{_schedule.id}}sched_01jv0000000000000000000001The Schedule ID
{{_schedule.name}}Morning lead scanThe Schedule name
{{_schedule.cron}}0 6 * * *The recurring expression, or empty for one-time Schedules
{{_schedule.timezone}}America/Los_AngelesThe Schedule’s time zone
{{_schedule.lastRunAt}}2026-05-19T13:00:00ZWhen the Schedule last ran, or empty on the first run
{{_schedule.nextRunAt}}2026-05-21T13:00:00ZWhen the Schedule runs next

Use the default Schedule message

The dashboard pre-fills the first message for an Agent Schedule that uses message sets. The preamble includes the date, time, time zone, weekday, Schedule name, cron expression, and previous-run time.

The preamble includes lines like the following:

Now: {{_now.date}} {{_now.time}} {{_now.timezone}} ({{_now.weekday}})
Schedule: {{_schedule.name}} (cron: {{_schedule.cron || "one-time"}})
Previous run: {{_schedule.lastRunAt || "this is the first run"}}

The full preamble instructs the Agent to complete the task and stop. It also instructs the Agent to contact a human through a messaging, email, issue, or approval tool when needed. Edit or replace the preamble before saving. Keep at least one message in the set for an Agent Schedule that uses message sets.

A scheduled run has nobody to answer a mid-run approval prompt. If the Agent carries a tool approval policy (tools.approval.require), the run fails with an error naming that policy instead of pausing, and no gated tool runs. Remove the policy from the scheduled Agent, or move the approval-gated work to a Surface that can collect a decision.

Manage Schedules

The Schedules page lists existing Schedules, their next run, and their status. Select a Schedule to open its detail sheet. The sheet includes Runs, Config, and JSON tabs.

Edit a schedule

Select a Schedule, click Edit, update the Flow, Agent, target, messages, inputs, or timing, then click Update.

Pause or resume

To stop future executions without deleting the configuration, click Pause. To re-enable future executions, click Resume. Paused Schedules show a Paused status.

Run now

To trigger an immediate execution outside the normal cadence, click Run now. The run can queue, complete, or fail immediately. It appears in the Runs tab.

Delete a schedule

To remove a Schedule, click Delete, then confirm. The Schedule no longer appears in the list.

View run history

Open a Schedule and select the Runs tab to review past executions. Each run shows its status, duration, timestamps, and errors when available. Record progress appears for record-based runs. Open a run to review its results.

If a recurring run fails, the Schedule keeps its normal cadence. Review Logs to investigate the failure.

Best practices

Use these practices to keep scheduled runs predictable:

  • Start with manual testing. Run your Flow with test Records before you automate it.
  • Choose the right cadence. Match the Schedule to how often your data changes.
  • Use Record Types for batches. Keep future Records in scope without editing the Schedule. To create or organize those Records first, see Creating and managing records.
  • Monitor early runs. Review the first few executions to find configuration issues.
  • Split Schedules when needed. If sources update at different times, create separate Schedules instead of one catch-all run.

Next steps

Continue with these guides: