This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch v3-3-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/v3-3-test by this push:
new f63b797235b [v3-3-test] Clarify custom-time parameterized timetable
logic (#34897) (#69151) (#69387)
f63b797235b is described below
commit f63b797235bb7ed911156a4ae3c2e10bfbd8c4d4
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Sun Jul 5 15:52:31 2026 +0200
[v3-3-test] Clarify custom-time parameterized timetable logic (#34897)
(#69151) (#69387)
(cherry picked from commit a9f0cf504543d67b3d0f9c458956e41dd8a92ef0)
Co-authored-by: Deepak Jain <[email protected]>
---
airflow-core/docs/howto/timetable.rst | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/airflow-core/docs/howto/timetable.rst
b/airflow-core/docs/howto/timetable.rst
index 90308ca42e5..0fc6fa9ea56 100644
--- a/airflow-core/docs/howto/timetable.rst
+++ b/airflow-core/docs/howto/timetable.rst
@@ -238,6 +238,13 @@ purpose, we'd want to do something like:
run_after=DateTime.combine(end.date(),
self._schedule_at).replace(tzinfo=UTC),
)
+If you adapt the first-run logic from ``AfterWorkdayTimetable`` for a custom
+``schedule_at`` value, compare the candidate time with ``self._schedule_at``.
+The midnight-specific check in the earlier example is only correct when runs
+are scheduled at ``00:00``. For example, an earliest time of ``06:00`` should
+still allow an ``08:00`` same-day run, while an earliest time of ``09:00``
should
+move to the next workday.
+
However, since the timetable is a part of the Dag, we need to tell Airflow how
to serialize it with the context we provide in ``__init__``. This is done by
implementing two additional methods on our timetable class: