Home โบ Cron โบ Apache Airflow
Apache Airflow Schedule (Cron) Generator
Airflow parses cron expressions with croniter, which adds extensions such as L, W and MON#1, and also accepts presets like @daily. Try an expression to see when your DAG would be scheduled.
Your week at a glance
Upcoming runs
| # | Local | UTC | From now |
|---|
Copy-ready code
What to know about Apache Airflow cron
- Airflow uses the five-field cron format. Presets include
@hourly,@daily,@weekly,@monthly,@quarterlyand@yearly, which are shorthand for ordinary cron expressions. - The croniter library supports
L(last day of month),W(nearest weekday) and#(nth weekday). The Airflow docs show0 0 * * MON#1for the first Monday. - When both day-of-month and day-of-week are restricted, croniter's default (
day_or=True) runs the DAG when either matches, like standard cron. - A scheduled run starts after its data interval ends. A daily DAG processes yesterday's interval just after midnight.
- Airflow defaults to UTC. On a time-zone-aware DAG a cron schedule follows wall-clock time, so the UTC time moves with daylight saving.
Common Apache Airflow schedules
Ready-made expressions for the schedules people search for most. Each page explains the expression and shows the first run times.
Frequently asked questions
What is the difference between @daily and 0 0 * * *?
None. @daily is the preset for midnight, the same schedule as 0 0 * * *.
Why did my DAG run at midnight for yesterday's data?
Airflow triggers a run once its data interval has ended. A daily schedule covers 00:00 to 00:00, so the run for a day starts at the next midnight.
How do I schedule the first Monday of each month?
Use 0 0 * * MON#1, the extended croniter syntax shown in the Airflow documentation.
Moving a schedule between systems? Use the cron format converter, or read the cron error fixes.