Missed deadlines are one of the most common problems in rehab projects, so this is worth working through carefully.
The first thing to do is check your contract. A contract is the written agreement you signed before work started. Look for two things: a completion date, and a clause called liquidated damages. Liquidated damages means a fixed dollar amount the contractor owes you for every day they run late. For example, the contract might say $100 per day after the agreed finish date. If that clause is in your contract, you have something to point to. If it is not, you are in a harder spot, but you still have options.
From there, a direct conversation works better than a written complaint as a first step. Ask the contractor for a revised schedule in writing, with specific dates for each remaining task, not just a general promise to finish soon. "I'll be done next week" is not a schedule.
If they miss that revised schedule too, you are probably looking at a decision: keep pushing, bring in a second crew to finish specific items, or fire the contractor and find someone new. Firing mid-project is disruptive and sometimes costly, so it is worth one serious documented conversation first.
The thing many people do not ask about at this stage is payment leverage. If you are still holding any payment you have not yet released, that is your main tool. Releasing money before work is complete removes your ability to hold anyone accountable.
One sentence on legal remedies: if the delays have caused real financial damage, a construction attorney can tell you what your contract actually allows. That is worth a one-hour consult if the numbers are significant.
What does your current contract say about timelines and late penalties?