diff --git a/SAS/ResourceAssignment/ResourceAssigner/lib/assignment.py b/SAS/ResourceAssignment/ResourceAssigner/lib/assignment.py
index d283ec746840fb5f14d936bb739b538dbcaab6f7..80475ecd80b6da65e85cab232579439e76df18fa 100755
--- a/SAS/ResourceAssignment/ResourceAssigner/lib/assignment.py
+++ b/SAS/ResourceAssignment/ResourceAssigner/lib/assignment.py
@@ -235,13 +235,17 @@ class ResourceAssigner():
             try:
                 startTime = parseDatetime(mainParset.getString('Observation.startTime'))
             except Exception:
+                startTime = None
+
+            # If we don't have a valid startTime, use the current time
+            if startTime is None or startTime < datetime.utcnow():
                 startTime = datetime.utcnow() + timedelta(minutes=3)
 
             maxPredecessorEndTime = self.getMaxPredecessorEndTime(specification_tree)
             if maxPredecessorEndTime and maxPredecessorEndTime > startTime:
                 startTime = maxPredecessorEndTime + timedelta(minutes=3)
 
-            taskDuration = mainParset.getInt('ObsSW.Observation.Scheduler.taskDuration', -1)
+            taskDuration = mainParset.getInt('Observation.Scheduler.taskDuration', -1)
             taskDuration = timedelta(seconds=taskDuration) if taskDuration > 0 else timedelta(hours=1)
 
             endTime = startTime + taskDuration