Fix legacy timetable schedule interval params
diff --git a/airflow/models/dag.py b/airflow/models/dag.py
index 49f6688141fb7..c86d954f39917 100644
--- a/airflow/models/dag.py
+++ b/airflow/models/dag.py
@@ -502,7 +502,7 @@ def __init__(
             self.dataset_triggers = list(schedule)
         elif isinstance(schedule, Timetable):
             timetable = schedule
-        else:
+        elif schedule is not NOTSET:
             schedule_interval = schedule
 
         if self.dataset_triggers:
diff --git a/tests/models/test_dag.py b/tests/models/test_dag.py
index 1aa5895fc9c77..b19fd0cae5f7e 100644
--- a/tests/models/test_dag.py
+++ b/tests/models/test_dag.py
@@ -1358,6 +1358,18 @@ def test_timetable_and_description_from_dataset(self):
         assert dag.schedule_interval == 'Dataset'
         assert dag.timetable.description == 'Triggered by datasets'
 
+    def test_schedule_interval_still_works(self):
+        dag = DAG("test_schedule_interval_arg", schedule_interval="*/5 * * * *")
+        assert dag.timetable == cron_timetable("*/5 * * * *")
+        assert dag.schedule_interval == "*/5 * * * *"
+        assert dag.timetable.description == "Every 5 minutes"
+
+    def test_timetable_still_works(self):
+        dag = DAG("test_schedule_interval_arg", timetable=cron_timetable("*/6 * * * *"))
+        assert dag.timetable == cron_timetable("*/6 * * * *")
+        assert dag.schedule_interval == "*/6 * * * *"
+        assert dag.timetable.description == "Every 6 minutes"
+
     @pytest.mark.parametrize(
         "timetable, expected_description",
         [
