Airflow DAG

🌀 Airflow schedule_interval, decoded.

Airflow DAGs accept cron strings or preset macros (@daily, @hourly, etc.) in the schedule_interval parameter. Timezone is set via default_args at the DAG level.

Airflow DAG Generator

Translation
    
              
            
    Worked examples

    Common Airflow DAG schedules.

    ExpressionWhat it meansTypical use
    */15 * * * * Every 15 minutes Streaming-like incremental loads.
    0 */6 * * * Every 6 hours Periodic data refresh.
    0 0 * * * Daily at midnight Classic ETL window.
    0 2 * * * Daily at 2 AM Off-hours batch.
    0 0 * * 0 Weekly on Sunday Weekly aggregations.
    @daily Macro shorthand Equivalent to 0 0 * * *.

    Click any expression to load it into the tool above.

    Common questions

    Airflow DAG FAQs.

    start_date is when the DAG becomes eligible to run. schedule_interval defines how often. The first run is start_date + schedule_interval — Airflow runs at the END of each interval, not at the start.

    Airflow's default timezone is UTC. Even if your machine is in another timezone, scheduled runs follow UTC unless you set start_date=pendulum.datetime(..., tz="...") on a timezone-aware date.

    Yes — set schedule_interval=None, or use @once for one-time runs. The DAG remains visible but only runs when triggered manually.

    catchup=True (default) backfills all missed runs from start_date to now. catchup=False only schedules from now forward. For most production DAGs, set catchup=False unless you specifically want backfills.

    Yes, Airflow uses the pendulum library which accepts IANA names like "America/New_York", "Asia/Tokyo", etc.