Turning your goals into reality

Loading...

Doitify
Pricing Enterprise Download Contact Us
Doitify › Project Planning & Execution

Free Gantt Chart Template for Smartsheet (Download + Guide)

Updated on November 12, 2026 https://doitify.com/planning/gantt-chart-template-for-smartsheet/
Share
Summary

Build a free Gantt chart template for Smartsheet with real column formulas: NETWORKDAYS duration, WORKDAY end dates, dependency lag, and percent-complete.

A Smartsheet Gantt chart needs eight columns: task name, start date, end date, duration, predecessors, percent complete, status, and owner. The rest is reporting. Duration belongs in a formula, because working days and calendar days are different units and only one of them survives contact with a client deadline.

What does a Gantt chart template for Smartsheet contain?

A good template contains a small number of columns that do different jobs, plus row hierarchy that separates phases from tasks. The mistake most people make is adding columns until the sheet looks like a status report, which makes it slower to update and no more informative.

The column set below is the one that survives real projects. It is deliberately short, because every extra column is a field someone has to fill in on a Friday afternoon when they would rather go home.

Column Type What goes in it Formula or input
Task Name Primary, Text Phase or task label Typed
Start Date Date Planned start Typed
End Date Date Planned finish `=WORKDAY([Start Date]@row, Duration@row – 1)`
Duration Text/Number Working days `=NETWORKDAYS([Start Date]@row, [End Date]@row)`
Predecessors Text/Number Row link, type, lag Typed, e.g. `12FS +2`
% Complete Number, percent Leaf values; parent rollup `=IF(COUNT(CHILDREN()) > 0, AVG(CHILDREN()), 0)`
Status Dropdown Not Started, In Progress, Late, Done `=IF([% Complete]@row = 1, “Done”, IF([End Date]@row < TODAY(), "Late", IF([% Complete]@row > 0, “In Progress”, “Not Started”)))`
Owner Contact One name per row Typed
Days Late Number Slippage in working days `=IF(AND([% Complete]@row < 1, [End Date]@row < TODAY()), NETWORKDAYS([End Date]@row, TODAY()) - 1, 0)`
Phase Dropdown Grouping for rollups Typed
Budget Currency Planned cost per task Typed or `=SUM(CHILDREN())`

Eleven columns, of which three are calculated from the others. That ratio matters. A template where most columns are typed is a template people abandon; a template where most columns are derived is one that stays current without anyone deciding to keep it current.

One structural note before the formulas. Smartsheet reads indentation as hierarchy: a row indented under another becomes its child. That gives you phases at the top level, tasks one level down, and checklist items below that, with each level able to summarize the one beneath it. Five levels are available. Using three of them is usually enough, and using all five is a reliable way to make a schedule nobody can read on a laptop screen.

Which formulas actually turn a sheet into a Gantt chart?

Five formulas do the work, and each one replaces a habit that fails at scale.

Join Doitify Today

Move projects forward without the chaos: all your tasks, progress, and team reports in one unified workspace. Built for companies, startups, and remote teams — with a quick setup and a free trial.

Duration in working days

=NETWORKDAYS([Start Date]@row, [End Date]@row)

`NETWORKDAYS` counts weekdays between two dates, inclusive of both ends, and excludes weekends. A task that starts Monday and finishes Friday returns 5, not 4. That inclusiveness trips people up when they first compare it against simple date subtraction, which returns 4 for the same pair.

If you maintain a holiday list in a separate sheet, add it as the optional third argument so December does not silently gain three free working days. The range reference looks like `{Holidays Range}` in cross-sheet formulas.

End date from duration

=WORKDAY([Start Date]@row, Duration@row - 1)

`WORKDAY` skips weekends and returns the date that is *n* working days after the start, not counting the start itself. Subtracting one from the duration keeps the two formulas consistent: a 5-day task starting Monday ends Friday, and `NETWORKDAYS` of Monday to Friday returns 5 again. Round-tripping through both formulas is the fastest way to find out that someone has been typing calendar dates into a working-day column.

Percent complete rollup on parent rows

=IF(COUNT(CHILDREN()) > 0, AVG(CHILDREN()), 0)

Paste this on parent rows only. If you write it into the whole column, leaf rows will compute an average of zero children and collapse to zero, wiping out the numbers your team typed. The safer workflow is to fill the column with typed values first, then select the parent rows and paste the formula into the selection.

The `COUNT(CHILDREN())` test is what makes the formula safe: it only averages when children exist. Leave the `IF` out and every row with no children reports zero, which quietly makes the whole sheet look unstarted.

Status from evidence

=IF([% Complete]@row = 1, "Done", IF([End Date]@row < TODAY(), "Late", IF([% Complete]@row > 0, "In Progress", "Not Started")))

Order matters here. Testing completion first prevents a finished task from being labelled late because it was completed after its original end date. Testing the date second catches the tasks people forget to mention. This is the formula that turns a sheet into a weekly meeting that takes ten minutes instead of forty.

Days late in working days

=IF(AND([% Complete]@row < 1, [End Date]@row < TODAY()), NETWORKDAYS([End Date]@row, TODAY()) - 1, 0)

The `- 1` corrects for `NETWORKDAYS` counting the end date itself. Without it, every unfinished task that was due today would report one day late on the day it is still allowed to finish.

Two more formulas are worth adding if your plan has money or milestones attached.

A budget rollup on parent rows:

=SUM(CHILDREN())

A milestone flag, for rows where start and end are the same day:

=IF([Start Date]@row = [End Date]@row, 1, 0)

That flag is what lets you filter a fifty-row schedule down to the six dates a steering committee actually cares about.

How do dependencies and lag work in Smartsheet?

The Predecessors column accepts a compact syntax that combines a row reference, a relationship type, and an optional lag. Get the syntax right and the Gantt view draws connector lines; get it wrong and you get a red corner and a schedule that quietly stops recalculating.

Value Meaning Typical use
`4` Row 4, finish-to-start (default) Standard sequence
`4FS +2` Row 4 finishes, then two working days of lag Cure time, approval window
`4SS +3` Row 4 starts, successor starts three days later Overlapping phases
`4FF` Row 4 and successor finish together Coupled deliverables
`4SF -5` Successor finishes five days before row 4 finishes Rare, but real in commissioning
`4FS +2; 7FS` Two predecessors, both must be satisfied Convergence points

Lag is expressed in working days, which is why a `+2` on a Friday finish often lands on a Tuesday. State that convention in a note on the sheet, because it is the single most common source of “the dates are wrong” complaints from people who assumed calendar days.

Dependency behaviour is governed by the sheet’s project settings, not by the formulas. Two settings decide whether the template behaves like a schedule or like a list: whether dependency settings are enabled at all, and whether the sheet should warn or block when a date edit breaks a link. Enable the warning. Blocking edits sounds strict and feels professional, but it produces a support queue the first week a contractor tries to move a task by two days.

Dependency enforcement is also one of the features that differs by plan tier, so verify it on your own account rather than promising a stakeholder a locked schedule you cannot deliver.

How do you build the template in under half an hour?

Ten steps, in order. The order matters because column types cannot always be changed after values exist.

  1. Create a blank sheet and name the primary column `Task Name`.
  2. Add the date, number, contact, and dropdown columns from the table above, setting the number column to percent format with zero decimals.
  3. Open project settings and set the working week. If your team works Monday to Friday, accept the default; if anyone works Saturday, this is the only place to say so.
  4. Add your public holidays as a date range in a second sheet, or as exclusions in project settings.
  5. Turn on the Gantt view and switch the timescale to weeks for a plan longer than a quarter.
  6. Type three phases as top-level rows and indent five or six tasks beneath each one. Do not start with all forty tasks; the hierarchy is easier to build in layers.
  7. Enter start dates and durations on leaf rows only, then let the end-date formula fill the rest.
  8. Add predecessors to the leaf rows, working front to back so each row can point at one that already exists.
  9. Paste the rollup formula into the percent-complete column on parent rows only.
  10. Save a blank copy as your master. Every new project is a copy of the master, never an edit of it.

Step ten is the discipline that keeps a template useful for more than a month. The master should contain column definitions, two sample tasks, and no live dates. The moment the master acquires a real project’s data, it stops being a template and starts being an archived project that people are afraid to touch.

Worked example 1: a 34-working-day launch schedule

Eight tasks, one chain, working days only. Start on Monday of week 1.

Row Task Duration Predecessor Start End
1 Requirements sign-off 5 — Week 1, Mon Week 1, Fri
2 Content inventory 4 1FS Week 2, Mon Week 2, Thu
3 Migration script 8 1FS +2 Week 2, Wed Week 3, Fri
4 QA pass 1 3 2FS; 3FS Week 3, Mon Week 3, Wed
5 Fix cycle 5 4FS Week 3, Thu Week 4, Wed
6 Stakeholder review 2 5FS +3 Week 5, Mon Week 5, Tue
7 Cutover rehearsal 3 6FS Week 5, Wed Week 5, Fri
8 Go live 1 7FS Week 6, Mon Week 6, Mon

Read the chain rather than the rows. Requirements end Friday of week 1. Row 3 waits two working days after that, so it starts Wednesday of week 2 rather than Monday. Row 4 cannot start until both row 2 and row 3 finish, and row 3 is the later of the two. The critical chain runs 1 → 3 → 4 → 5 → 6 → 7 → 8, which totals 5 + 8 + 3 + 5 + 2 + 3 + 1 = 27 working days of work, plus 2 + 3 = 5 days of lag, for 34 working days end to end. Row 2 finishes long before it is needed, and that slack is the reason row 2 is not the thing you escalate when someone offers two more days of content review.

Worked example 2: why working days and calendar days diverge

Six sequential tasks of five working days each, starting Monday 1 June. Six weeks of working days is 30 days, which lands on Friday 10 July. Treat the same plan as calendar days and 6 × 7 = 42 days lands on Monday 13 July.

The gap is three days, and it is always a multiple of the weekend. It looks small until you notice what it does: the plan now finishes on a Monday, which means the go-live happens on a day when two approvers are in a different time zone and the support desk is at weekend staffing. Add one public holiday inside the window and the drift grows again, because a calendar-day schedule has no way to represent it.

This is the strongest argument for `NETWORKDAYS` as a column rather than a convenience. Six weeks of schedule is where calendar arithmetic begins to cost you a handover window.

Worked example 3: reading slippage from the formulas

Task 12, “Data migration”, ends Friday, is 40 percent complete, and today is the following Wednesday. `NETWORKDAYS(Friday, Wednesday)` counts Friday, Monday, Tuesday, Wednesday and returns 4. Subtract one and the Days Late column reports 3 working days.

Three days is not the important number. The important number is what the same row says next Wednesday, when it will read 8, and the week after that, when the 40 percent will still be 40 percent. A flat percent-complete figure beside a rising days-late figure is the clearest early warning signal a schedule can give, and it requires no meeting to produce.

Worked example 4: weighted progress beats average progress

Four phases with different budgets and different completion. The unweighted average of the percent-complete column is (100 + 60 + 20 + 0) / 4 = 45 percent. The number a client actually wants is how much of the money-backed work is done.

Phase Budget % Complete Weighted value
Design $40,000 100% $40,000
Build $60,000 60% $36,000
Fit-out $35,000 20% $7,000
Handover $15,000 0% $0
Total $150,000 — $83,000

Eighty-three thousand of one hundred and fifty thousand is 55.3 percent, which is ten points ahead of the naive average. In Smartsheet the calculation is a single formula over the value rows:

=SUMPRODUCT([Budget]5:[Budget]40, [% Complete]5:[% Complete]40) / SUM([Budget]5:[Budget]40)

Use explicit row ranges rather than whole columns, because `SUMPRODUCT` will choke on the text in header and parent rows. And if the parent rows already contain `SUM(CHILDREN())`, this formula only needs to run once at the bottom of the sheet.

What are the trade-offs of running a Gantt chart in Smartsheet?

The sheet wins when the schedule has to be argued about with people who do not use your project tool. It is a spreadsheet with a chart attached, which means finance can read the budget column, a contractor can be given a filtered view of four rows, and an auditor can be shown who changed a date and when.

Approach Strength Where it fails
Smartsheet sheet with Gantt view Formulas, rollups, sharing, change history Per-seat cost; manual dependency entry
Spreadsheet export Free, familiar, easy to email No live links; every copy drifts
Dedicated PM tool Automatic status, workload, notifications Less flexible as a budget model
PDF of the chart Unambiguous for a board pack Stale within a day

The costs are real and worth naming. Dependency editing in a sheet is keyboard work: you type a row number and a lag, then check the bar moved. There is no drag-and-drop that also updates the model. Baselines, which let you compare plan against plan rather than plan against today, are gated by plan tier, so teams on lower tiers end up screenshotting the Gantt view each month as their version history. And every person who needs to see the schedule consumes a license, which changes the economics when the audience is twenty stakeholders and the authors are three project managers.

None of that makes the sheet wrong. It makes it a specific tool for a specific job: a plan that must be defensible, shared with people outside the delivery team, and priced in the same place it is scheduled.

What goes wrong most often?

Six failures account for almost every abandoned Smartsheet Gantt chart.

Calendar days in a working-day column. The chart looks fine and every date is three days optimistic. Fix the duration formula before adding a single row.

Dependencies written as notes. Someone types “after QA” into a text column, the bar does not move when QA slips, and the schedule becomes decorative. Use the row-number syntax or do not claim the chart is linked.

Rollup formulas pasted over typed values. The percent-complete column collapses to zeros on leaf rows, and the team stops trusting any number on the sheet.

Milestones with durations. A milestone is a point, not a week. Give it one day, or give it a flag column and keep the date honest.

Five levels of hierarchy for forty tasks. Depth beyond three levels usually means the work breakdown is being used as a filing system rather than a schedule.

No baseline. Without a saved snapshot, “we are three weeks behind” is an opinion. With one, it is a subtraction.

Who should keep the sheet, and who should move on?

Keep the sheet if the schedule is contractual, if the audience includes finance or a client, if the plan changes weekly rather than hourly, and if three or fewer people edit it. In that setting a formula-driven sheet is more transparent than most project tools, and the audit trail is genuinely useful when a date change needs explaining.

Move on when the schedule has to react to daily work. The tell is a Friday where someone updates forty rows by hand from four different sources, and a Monday where the update is already out of date. At that point the sheet is a reporting artifact being maintained as if it were a system.

How does Doitify handle the same schedule?

Doitify is our product, so read this as disclosure rather than review. It holds projects, tasks, sub-tasks, checklists, owners, and due dates in the same workspace as Kanban boards, Gantt charts, roadmaps, calendars, workload views, and work reports. The dependency model is the same idea as the one above, without the row-number syntax: you link tasks, and moving a predecessor moves the chain.

The difference that matters for this template is where the numbers come from. Percent complete, status, and days late stop being formulas you maintain and become outputs of the tasks people are already updating. That is worth something when the schedule has forty rows and one author, and it is worth nothing when the schedule is a budget document that a client countersigns.

FAQ

Yes, and you can build it in about half an hour. The value is in the column set and the formulas, not in a downloadable file: a blank sheet plus the duration, end-date, and rollup formulas above is the whole template. Downloadable versions of the same structure are useful mainly as a starting layout.

Type the predecessor's row number in the Predecessors column, optionally followed by a relationship type and a lag. `4FS` means row 4 must finish before this row starts. `4FS +2` adds two working days of waiting. Multiple predecessors are separated by a semicolon.

Lag is counted in working days, not calendar days. Two working days of lag after a Friday finish pushes the successor to Tuesday, not Sunday. If your organisation counts lag in calendar days, say so in a note on the sheet, because the two conventions will otherwise be mixed within a month.

Some plans expose a critical-path option in the Gantt view, and behaviour differs by tier and by how many dependencies the sheet contains. Treat it as a convenience rather than a contract: verify it on your account, and keep a days-late column as the manual cross-check.

The rollup formula was almost certainly written into the whole column instead of the parent rows only. Leaf rows have no children, `COUNT(CHILDREN())` returns zero, and the `IF` sends them to zero. Clear the formula from leaf rows and retype the real values.

A baseline is a saved copy of dates and durations, so variance is a subtraction rather than a memory. If your plan has contractual dates, keep a monthly snapshot; if it is an internal sprint plan, a days-late column is usually enough.

Yes, and this is one of the sheet's genuine advantages. Publish a read-only view, or share a filtered report, so a client sees four rows instead of forty. Check seat and sharing rules on your plan first, because external viewers are not always free.

Conclusion

A Gantt chart template for Smartsheet is not a file you download. It is eleven columns, five formulas, and one text field that encodes the relationships between rows. Build it once, save a blank master, and every project after that starts from a schedule that already knows how to count working days.

Start with the duration formula. It is the smallest change with the largest effect, because it forces every other date on the sheet to agree with the calendar your team actually works. Then add dependencies, then the rollup, then the view. Four steps, one afternoon, and the bars are the least interesting part of the result.

If this post on gantt chart template for smartsheet was helpful, you might also enjoy SEO Project Management Template and What Is Resource Overallocation? Meaning, Examples & Fixes.

Join Doitify Today

Move projects forward without the chaos: all your tasks, progress, and team reports in one unified workspace. Built for companies, startups, and remote teams — with a quick setup and a free trial.

0 0 votes
Article Rating
Share
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Table of Contents

Ready to do more with Doitify?

Bring your projects, team, and goals together in one AI-powered workspace.

Get Started
Table of Contents