### Body

Currently `start_date` is mandatory parameter.
For DAGs with `schedule=None` we can relax this requirement as no scheduling calculation needed so the `start_date` parameter isn't used.

### Committer

- [X] I acknowledge that I am a maintainer/committer of the Apache Airflow project.
self,
        tasks: Iterable[Operator],
        task_creator: TaskCreator,
        *,
        session: Session,
    ) -> CreatedTasks:
        """
        Create missing tasks -- and expand any MappedOperator that _only_ have literals as input.
        :param tasks: Tasks to create jobs for in the DAG run
        :param task_creator: Function to create task instances
        """
        map_indexes: Iterable[int]
        for task in tasks:
            try:
                count = task.get_mapped_ti_count(self.run_id, session=session)
            except (NotMapped, NotFullyPopulated):
                map_indexes = (-1,)
            else:
                if count:
                    map_indexes = range(count)
                else:
                    
                    
                    map_indexes = (-1,)
            yield from task_creator(task, map_indexes)
    def _create_task_instances(