Back to docs
Concepts
Scheduling
Dagy scheduling is backed by `DAGY_SCHEDULES` and evaluated by a scheduler Lambda every minute.
Modes
cron: 5-field cron (minute hour day month weekday) in a configured timezone.interval: fixed interval in seconds (interval_seconds).one_time: executes once atone_time_at.manual: no automatic execution; trigger usingPOST /schedules/{schedule_id}/trigger.
Shared attributes
timezone: IANA timezone (defaultAmerica/New_Yorkfor implicit schedules created via deploy).enabled: include/exclude from automated scheduling.start_at/end_at: optional scheduling boundaries.catchup_policy:none: skip backlog and schedule from current time.all: keep advancing from previously due time until backlog is drained.
Implicit schedules via deploy
When deploying a flow with a schedule parameter (via flow.deploy() or dagy deploy --schedule), an implicit cron schedule is automatically created. You can specify the timezone for this schedule:
Python SDK:
flow.deploy(
name="my-pipeline",
schedule="0 * * * *",
timezone="America/Los_Angeles",
)
CLI:
dagy deploy artifact.zip --deployment my-pipeline --schedule "0 * * * *" --timezone "America/Los_Angeles"
If no timezone is provided, it defaults to America/New_York.
Runtime fields
next_run_epoch/next_run_at: next due execution.last_triggered_at: most recent scheduler/manual trigger timestamp.last_run_id/last_run_slug: most recent run linkage.last_error: latest scheduler-trigger error.