Airflow Custom Timetable Plugin
Universal custom timetable plugin for Apache Airflow with support for multiple schedule formats.
Installation
pip install airflow-custom-timetable-plugin
From git
pip install git+https://github.com/0xMihalich/airflow-custom-timetable-plugin.git
Supported Schedule Formats
| Format | Example | Description |
|---|---|---|
hh:mm |
"08:00" |
Daily at specified time |
dd hh:mm |
"15 08:00" |
Monthly on specified day and time |
mm.dd hh:mm |
"01.01 00:00" |
Yearly on specified month, day and time |
Usage
from airflow import DAG
from airflow_custom_timetable_plugin import ExactTimetable
with DAG(
dag_id="my_dag",
schedule=ExactTimetable(
schedules=[
"08:00", # Every day at 08:00
"20:15", # Every day at 20:00
"1 12:00", # 1st day of every month at 12:00
"01.01 00:00", # January 1st at 00:00
]
),
start_date=datetime(2024, 1, 1),
catchup=False,
tags=["example"],
) as dag:
...
Examples
Daily schedules only
schedule = ExactTimetable(
schedules=["02:00", "06:00", "10:00", "14:00", "18:00", "22:00"]
)
Mixed schedules
schedule = ExactTimetable(
schedules=[
"08:00", # Daily at 8 AM
"1 10:05", # 1st of each month at 10 AM
"15 14:00", # 15th of each month at 2 PM
"12.31 23:59", # December 31st at 23:59
]
)
How It Works
The plugin parses schedule strings into structured entries and computes the next valid run time by finding the earliest future match across all configured schedules.
For the first automated run, the data interval starts and ends at the same time. For subsequent runs, the interval starts from the end of the previous interval, ensuring continuous data coverage.
Requirements
- Python >= 3.10
- apache-airflow >= 2.4.3
- pendulum >= 3.0.0
License
See the LICENSE file for details.
Author
0xMihalich bayanmobile87@gmail.com
Metadata
Release files for airflow-custom-timetable-plugin 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| airflow_custom_timetable_plugin-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Release files / airflow_custom_timetable_plugin-1.0.0-py3-none-any.whl
| Download URL | airflow_custom_timetable_plugin-1.0.0-py3-none-any.whl |
|---|---|
| Size | 6.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
081c290e1b3e47f1cee6d72649ad9b713ccdf45461edba4460b9237d63169b4d
|
|
BLAKE2b-256 checksum How to use checksums |
fc919355ca1391443afaa5ec64b32ccaad144a57c537282d567cbf1b9f717ba3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|