A data interval is the bounded period of data associated with one scheduled DAG run. Airflow divides time using start_date, schedule, and optionally end_date, then runs the DAG after the interval has passed. This makes each run's input window explicit for incremental processing. section 3.4.4 section 3.0
An interval-based DAG run provides:
- A start and end boundary, available through data_interval_start and data_interval_end. section 3.4.4
- Execution at the interval's end rather than at its beginning. section 3.4.3 section 3.4.4
- A logical_date value that generally identifies the interval's start and can identify the run. section 3.4.4
Daily and two-day intervals
With a daily schedule starting on 2024-01-01, the first interval is processed shortly after 2024-01-01 23:59:59, with execution occurring at approximately 2024-01-02 00:00. A DeltaIntervalTimetable using a two-day duration instead runs once every two days and exposes the corresponding interval boundaries. section 3.4.4 section 3.4.3
Listing 3.13 Defining a frequency-based schedule interval
import pendulum
...
with DAG(
dag_id="03_timedelta",
schedule=DeltaIntervalTimetable(pendulum.duration(days=2)), #1
...
):
...
Use a frequency-based schedule when the interval should repeat at a fixed duration, such as every two days. section 3.4.3






