With regard to the finish date, of course there should be a fixed date you and your contractor agree with but that date is unenforceable. There are some things neither you nor he can control, particularly the weather and availability of materials and labor especially during the current covid19 crisis. Also having local officials who drag their feet regarding timely inspections on the various phases of the job. You could implement a completion penalty clause.......but if you do that you won't get anybody to bid on the project or they will highly inflate cost to cover their butts.
Care in selecting a contractor is very important if your priority is finish date. Reputation and references on his past jobs would be helpful in determining if he sticks to a project or comes and goes. Some contractors take more jobs than they are capable of handling and try to do several at the same time, working a week or two at each and leaving you high and dry in between. Some larger contractors who have repeat customers, say home developers, will leave you whenever their "main man" needs them. Remember, it is unlikely you will ever need them for any future construction and they know that. So, staying off your job for weeks at a time does not hurt them.
Basically, you will not reasonably be able to make a contractor meet a certain delivery date even if you both agree to one. Best bet is to do your research, go on reputation, be respectful and get along with your contractor and above all, pay him on time in accordance with the agreed upon terms.
And, I still strongly advise to prepare a mutually agreeable set of detailed specs to leave as little as possible open to interpretation, questions and disagreement. If you say walls must be painted then what? Primed first with what? How many coats of prime and finish? What sheen? Rolled or sprayed? What quality......cheap box store brand or top of the line Sherwin Williams? Unless specified otherwise, you will generally get whatever is cheapest or easiest for the contractor. Same goes for everything else on the job.
Glen