Skip to main content

Airflow Custom Timetable Plugin

Universal custom timetable plugin for Apache Airflow with support for multiple schedule formats.

Tests PyPI

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)

Table of built distributions (wheels) for airflow-custom-timetable-plugin 1.0.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

1.0.0 This release

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page