diff --git a/b_asic/schedule.py b/b_asic/schedule.py
index 1a70a84ab5bf8b93aeddb463600242784b1c240d..8fc13eba0a5c98068bd007f5a5e1c4b48f582d9d 100644
--- a/b_asic/schedule.py
+++ b/b_asic/schedule.py
@@ -111,6 +111,11 @@ class Schedule:
         if scheduler:
             self._scheduler = scheduler
             self._scheduler.apply_scheduling(self)
+        elif start_times is None and laps is None:
+            from b_asic.scheduler import ASAPScheduler
+
+            self._scheduler = ASAPScheduler()
+            self._scheduler.apply_scheduling(self)
         else:
             if start_times is None:
                 raise ValueError("Must provide start_times when using 'provided'")
diff --git a/test/unit/test_schedule.py b/test/unit/test_schedule.py
index 5795dc64939a2291fe07df2fa927572c83d865ba..bc2071f62c4c23d2075206ac2f27582813fee0fd 100644
--- a/test/unit/test_schedule.py
+++ b/test/unit/test_schedule.py
@@ -856,7 +856,7 @@ class TestErrors:
         with pytest.raises(
             ValueError, match="Must provide start_times when using 'provided'"
         ):
-            Schedule(sfg_simple_filter)
+            Schedule(sfg_simple_filter, laps={"test": 0})
 
     def test_provided_no_laps(self, sfg_simple_filter):
         sfg_simple_filter.set_latency_of_type_name(Addition.type_name(), 1)
@@ -866,6 +866,29 @@ class TestErrors:
         with pytest.raises(ValueError, match="Must provide laps when using 'provided'"):
             Schedule(sfg_simple_filter, start_times={"in0": 0})
 
+    def test_alap_default(self, sfg_direct_form_iir_lp_filter):
+        sfg_direct_form_iir_lp_filter.set_latency_of_type_name(Addition.type_name(), 5)
+        sfg_direct_form_iir_lp_filter.set_latency_of_type_name(
+            ConstantMultiplication.type_name(), 4
+        )
+
+        schedule = Schedule(sfg_direct_form_iir_lp_filter)
+
+        assert schedule.start_times == {
+            "in0": 0,
+            "cmul1": 0,
+            "cmul4": 0,
+            "cmul2": 0,
+            "cmul3": 0,
+            "add3": 4,
+            "add1": 4,
+            "add0": 9,
+            "cmul0": 14,
+            "add2": 18,
+            "out0": 23,
+        }
+        assert schedule.schedule_time == 23
+
 
 class TestGetUsedTypeNames:
     def test_secondorder_iir_schedule(self, secondorder_iir_schedule):