### 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.
"""tzinfo derived concrete class named "+0530" with offset of 19800"""
            
            _offset = datetime.timedelta(seconds=19800)
            _dst = datetime.timedelta(0)
            _name = "+0530"
            def utcoffset(self, dt):
                return self.__class__._offset
            def dst(self, dt):
                return self.__class__._dst
            def tzname(self, dt):
                return self.__class__._name
        start = datetime.datetime(2018, 3, 25, 10, tzinfo=UTC0530())
        dag = DAG("tz_dag", start_date=start, schedule="@hourly")
        when = dag.following_schedule(start)
        assert when.isoformat() == "2018-03-25T05:30:00+00:00"
    def test_dagtag_repr(self):
        clear_db_dags()
        dag = DAG("dag-test-dagtag", start_date=DEFAULT_DATE, tags=["tag-1", "tag-2"])
        dag.sync_to_db()
        with create_session() as session:
            assert {"tag-1", "tag-2"} == {
                repr(t) for t in session.query(DagTag).filter(DagTag.dag_id == "dag-test-dagtag").all()
            }
    def test_bulk_write_to_db(self):