docs/v3/api-ref/python/prefect-schedules.mdx
prefect.schedulesThis module contains functionality for creating schedules for deployments.
Cron <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/schedules.py#L72" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>Cron(timezone: str | None = None, day_or: bool = True, active: bool = True, parameters: dict[str, Any] | None = None, slug: str | None = None) -> Schedule
Creates a cron schedule.
Args:
cron: A valid cron string (e.g. "0 0 * * *").timezone: A valid timezone string in IANA tzdata format (e.g. America/New_York).day_or: Control how day and day_of_week entries are handled.
Defaults to True, matching cron which connects those values using
OR. If the switch is set to False, the values are connected using AND.
This behaves like fcron and enables you to e.g. define a job that
executes each 2nd friday of a month by setting the days of month and
the weekday.active: Whether or not the schedule is active.parameters: A dictionary containing parameter overrides for the schedule.slug: A unique identifier for the schedule.Returns:
Examples:
Create a cron schedule that runs every day at 12:00 AM UTC:
from prefect.schedules import Cron
Cron("0 0 * * *")
Create a cron schedule that runs every Monday at 8:00 AM in the America/New_York timezone:
from prefect.schedules import Cron
Cron("0 8 * * 1", timezone="America/New_York")
Interval <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/schedules.py#L128" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>Interval(anchor_date: datetime.datetime | None = None, timezone: str | None = None, active: bool = True, parameters: dict[str, Any] | None = None, slug: str | None = None) -> Schedule
Creates an interval schedule.
Args:
interval: The interval to use for the schedule. If an integer is provided,
it will be interpreted as seconds.anchor_date: The anchor date to use for the schedule.timezone: A valid timezone string in IANA tzdata format (e.g. America/New_York).active: Whether or not the schedule is active.parameters: A dictionary containing parameter overrides for the schedule.slug: A unique identifier for the schedule.Returns:
Examples:
Create an interval schedule that runs every hour:
from datetime import timedelta
from prefect.schedules import Interval
Interval(timedelta(hours=1))
Create an interval schedule that runs every 60 seconds starting at a specific date:
from datetime import datetime
from prefect.schedules import Interval
Interval(60, anchor_date=datetime(2024, 1, 1))
RRule <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/schedules.py#L187" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>RRule(timezone: str | None = None, active: bool = True, parameters: dict[str, Any] | None = None, slug: str | None = None) -> Schedule
Creates an RRule schedule.
Args:
rrule: A valid RRule string (e.g. "RRULE:FREQ=DAILY;INTERVAL=1").timezone: A valid timezone string in IANA tzdata format (e.g. America/New_York).active: Whether or not the schedule is active.parameters: A dictionary containing parameter overrides for the schedule.slug: A unique identifier for the schedule.Returns:
Examples:
Create an RRule schedule that runs every day at 12:00 AM UTC:
from prefect.schedules import RRule
RRule("RRULE:FREQ=DAILY;INTERVAL=1")
Create an RRule schedule that runs every 2nd friday of the month in the America/Chicago timezone:
from prefect.schedules import RRule
RRule("RRULE:FREQ=MONTHLY;INTERVAL=1;BYDAY=2FR", timezone="America/Chicago")
Schedule <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/schedules.py#L19" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>A dataclass representing a schedule.
Note that only one of interval, cron, or rrule can be defined at a time.
Attributes:
interval: A timedelta representing the frequency of the schedule.cron: A valid cron string (e.g. "0 0 * * *").rrule: A valid RRule string (e.g. "RRULE:FREQ=DAILY;INTERVAL=1").timezone: A valid timezone string in IANA tzdata format (e.g. America/New_York).anchor_date: An anchor date to schedule increments against; if not provided,
the current timestamp will be used.day_or: Control how day and day_of_week entries are handled.
Defaults to True, matching cron which connects those values using
OR. If the switch is set to False, the values are connected using AND.
This behaves like fcron and enables you to e.g. define a job that
executes each 2nd friday of a month by setting the days of month and
the weekday.active: Whether or not the schedule is active.parameters: A dictionary containing parameter overrides for the schedule.slug: A unique identifier for the schedule.