Every general contractor has built a perfect schedule. Color-coded. Every trade slotted in. Logical sequence from foundation to final.
And every general contractor has watched that schedule fall apart by the end of week two.
The problem is not the schedule. The problem is most schedules are built to look good in a meeting, not to survive a real jobsite. A real jobsite has a framing crew that needs an extra day, a plumber whose other job ran long, a homeowner who changes their mind about the kitchen, and weather.
This guide walks through how to build a construction schedule that actually holds up. We will cover the steps in order, what to include, what to skip, and the one thing most GCs get wrong that costs them the most time.
Step 1: Start with the work breakdown, not the calendar
The first mistake is opening a calendar and starting to drop in dates. Calendars are for execution. They are not for planning.
Open a blank document. Write down every distinct chunk of work on the project. Use the trade or scope as the unit. Foundation. Framing. Roofing. Rough plumbing. Rough electrical. Rough HVAC. Insulation. Drywall. Paint. Trim. Flooring. Cabinets. Finish plumbing. Finish electrical. Final clean. Punch.
This is your activity list. For a residential new build, expect 15 to 25 line items. For a remodel, expect 10 to 15. For commercial tenant improvement, expect 12 to 20.
Do not break it down further than that yet. “Frame walls” is one activity. “Frame north wall, south wall, east wall” is four activities you will never update individually.
Step 2: Sequence the work before you assign dates
Now take your activity list and put it in the order it has to happen. Not the order you want it to happen. The order physics requires.
You cannot frame before the foundation cures. You cannot insulate before rough inspections pass. You cannot paint over wet drywall mud.
For each activity, write down what has to be finished before it can start. These are your predecessors.
This is the work most contractors skip, and it is also the work that determines whether your schedule survives the first delay. If you do not know what depends on what, you cannot tell what a one-day slip in framing actually means for the close date.
Step 3: Assign realistic durations
Two rules.
First, use the duration the trade actually quotes, not the duration you want. If your framer says 12 days, the activity is 12 days. If you put 10 because the bank wants a faster close, you are not scheduling. You are wishing.
Second, build in buffer days, but put them between trades, not inside them. A two-day buffer after framing, before rough mechanicals, absorbs slippage without lying to the next trade about when they need to show up.
Step 4: Set start and end dates
Now you can open the calendar.
Start with your hard project start date. Walk forward through your sequenced activity list, applying durations, respecting predecessors. Skip weekends if your trades do not work weekends. Skip known holidays.
Your final activity’s end date is your projected substantial completion.
If that date is later than what is in the contract, you have three options. Compress durations (risky), run trades in parallel where physics allows (better), or have the conversation with the owner now (best). Do not pretend the math works when it does not.
Step 5: Identify dependencies in writing
This is where most schedules silently fail.
You know in your head that rough electrical needs to finish before insulation. But unless that dependency is written down on the schedule itself, the next person who looks at the schedule (you, three weeks from now, at 6 AM, tired) does not know.
Modern scheduling software lets you link activities. Move the predecessor and the successor moves with it. If you are using a spreadsheet, color-code the dependencies or add a column. If you are using software that supports drag-to-link dependencies, set them as you build the schedule, not after.
Step 6: Share the schedule with the people who need it
A schedule that lives on your laptop is not a schedule. It is a personal to-do list.
Every trade on the job needs to see two things at minimum: when they are needed, and what changed since the last time they looked. Every homeowner or client needs to see what is happening this week and what is coming up.
Email is not the answer. Email gets buried. Group texts are not the answer. Group texts scroll past anything important in 20 minutes.
The answer is a shared schedule each person can access on their phone, scoped to what they actually need to know. Subs see their activities. The homeowner sees the project view. You see everything.
Step 7: Update the schedule the same day something changes
The single biggest reason schedules fail is delay between change and update.
A sub tells you on Tuesday morning that they are pushing to Thursday. You meant to update the schedule. You got busy. By Friday, three other trades are showing up based on the old dates, the homeowner is confused, and you are explaining yourself instead of working.
Update the same day. Even if all you do is move the bar and let dependent activities cascade automatically. Do it before lunch.
What most contractors get wrong
The single most common mistake is treating the schedule as a planning document instead of a living operations tool. If your schedule only gets opened during the kickoff meeting and the final walkthrough, it is not doing its job.
A schedule has to be the first thing you open in the morning and the last thing you check before you leave the jobsite. If it is not, switch tools or switch habits, but do not blame the schedule for being wrong.
The shortcut: start from a template
Building a schedule from scratch for every project is unnecessary. Most residential new builds follow the same 19 activities in roughly the same sequence. Most remodels follow 12. Most commercial tenant improvements follow 13.
Relay ships with three pre-built templates (residential new build, remodel and addition, commercial tenant improvement) you can start from and adjust to the project. Set the start and end date, and the activities scale proportionally. You save any custom schedule you build as your own reusable template.
How Relay handles all of this
The seven steps above are how we built Relay.
Activity list with drag-to-edit Gantt bars. Predecessor and successor links that cascade automatically. Realistic durations you can adjust with a drag. Templates that handle the first 80 percent. Sub views scoped to what each trade needs to see. Same-day updates that take seconds, not minutes.
If you want to use it on your next project, sign up at relayconstruct.com.