What separates a Notion Gantt template from a spreadsheet with coloured cells?
gantt chart template for notion is a key topic in modern project management and teamwork. A Notion Gantt template is four things stacked together: a database, a set of typed properties, at least one Timeline view, and a saved page template that pre-fills a new row. Take away any layer and you have a list with dates in it.
The database is what makes the difference. Every view — Table, Board, Calendar, Timeline — reads the same rows, so a status change on the board moves the bar on the timeline without a copy-paste. A spreadsheet cannot do that, and a Notion page full of toggle blocks certainly cannot.
The saved template matters more than people expect. Notion lets you store a template inside a database so that every new task arrives with a status of “Not started”, a phase, a checklist and an empty dependency field. Teams that skip this step end up with 300 rows where 40 have a phase and the rest do not, which quietly breaks every grouped view.
Which database properties does the template actually need?
Seven properties do the work, plus three optional ones that pay for themselves on longer projects. Everything here is a native Notion property type, not a workaround.
| Property | Notion type | What it is for | Example value |
|---|---|---|---|
| Task | Title | The row’s identity, and what the timeline labels | Draft chapter 3 |
| Status | Status | Where the work sits, using Notion’s To-do / In progress / Complete groups | In progress |
| Owner | People | One accountable person, filterable as “assigned to me” | Sara |
| Dates | Date (with end date) | The bar itself: start and finish in one property | Mar 2 to Mar 13 |
| Duration (days) | Formula | Calendar length of the bar, calculated not typed | 12 |
| Depends on | Relation (same database) | The task that must finish first | Review outline |
| Blocking | Relation (reverse) | Auto-filled list of what this task unblocks | Draft chapter 3 |
| Progress % | Number or Formula | Share of the task complete | 60 |
| Phase | Select | Grouping and colour on the timeline | Writing |
| Baseline end | Date (optional) | The original promised finish, for slip tracking | Mar 13 |
| Milestone | Checkbox (optional) | Zero-length markers such as sign-off or submission | Checked |
| Float (days) | Formula (optional) | Buffer between this finish and the next start | 3 |
Three choices in that table are worth defending.
One Date property with an end date, not two date columns. Notion’s Timeline view plots a single date property. If you store start and finish separately, the timeline shows a dot per row and you will spend an afternoon building a workaround. Use the range.
Status, not Select. Notion’s Status property has built-in groups: To-do, In progress, Complete. Every rollup, filter and dashboard can rely on those groups even when you rename the options to “Drafting”, “In review” and “Signed off”. A plain Select property forces you to hard-code option names in every filter.
Relation to the same database, twice. One relation creates both directions automatically. Name the forward side “Depends on” and the reverse side “Blocking” and you get a blocker list on every task for free.
If you only have ten minutes, build the first seven rows of that table and stop. The optional rows are for projects that last longer than a quarter.
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.
How do you build the template in Notion, step by step?
Start with an empty page, type `/database` and choose “Database — inline”. Then follow this order, because each step depends on the one before it.
- Rename the database to the project name and set the first view to Table so you can see every property.
- Add the properties from the table above. Use the `+` at the right edge of the header row. Set the Date property to include an end date and switch on “End date” in the property settings.
- Add the duration formula. Open the Duration property and paste `dateBetween(prop(“Dates”), dateStart(prop(“Dates”)), “days”) + 1`. The `+1` counts both the first and last day, which is how humans read a bar.
- Add the Timeline view. Click the `+` beside your view tabs, choose Timeline, and set “Show timeline by” to the Dates property. Zoom to weeks for a quarter-long project.
- Group the timeline by Phase, then colour by Status. Grouping by phase gives you swimlanes; colouring by status gives you the at-a-glance health check.
- Create the dependency relation. Add a Relation property pointing at the same database. Rename the two sides “Depends on” and “Blocking”.
- Save a database template. Open the database menu, choose “New template”, name it “Standard task”, set Status to Not started, and add a short checklist body. Every new row now arrives consistent.
- Duplicate the clean database as your master copy. Keep the master free of real dates so that cloning it for the next project does not inherit last quarter’s schedule.
Two settings make the difference between a demo and a tool. Turn on “Show today” in the timeline so the vertical line marks the current date. Then add a filtered view called “My week” with Owner = me and Dates within the next seven days. That view is what people will actually open on a Monday.
How do dependencies behave inside a Notion timeline?
Dependencies in Notion are drawn directly on the timeline: hover the end of one bar, drag to the start of another, and the two become linked. You can then choose whether moving the first task pushes the second, and by how much. That is enough for the common case, where a review slipping by two days should move the draft that follows it.
It is not a scheduling engine, and the gap is worth understanding before you promise a client a plan. Four limits matter:
- No resource levelling. Notion will happily put three tasks on one person in the same week. It does not know that person is already at 140% capacity.
- No critical path. Nothing tells you which chain of tasks controls the finish date, so you cannot answer “what is the one slip that hurts” from the tool.
- No baseline. If you want to know whether you are late against the original plan, you need a separate “Baseline end” date property and a formula to compare the two.
- Dependencies are not a rollup-able property. The arrow you draw on the chart and the relation property you built are two different mechanisms. Teams that need to filter “everything blocked by the legal review” keep the relation for filtering and use the chart for date shifting.
Practical tip: draw dependencies only for real finish-to-start handoffs. A timeline where every task is linked to the next one looks rigorous and behaves like a single chain, so one late task appears to delay everything. Keep it to the handoffs you would actually chase.
How do you calculate duration, progress and slip with formulas?
Three calculations cover most of the value, and each one is reproducible with the numbers below.
Worked example 1 — duration and working days. A task runs from Monday 2 March to Friday 13 March 2026. The formula returns 12 calendar days. Subtract the weekends: 2, 3, 4, 5, 6 March are five working days, then 9 to 13 March are five more, so the task is 10 working days. If your team bills at $55 an hour and the task needs 46 hours, the effort fits inside 10 days at 4.6 hours a day. That is a real answer to “can one person do this”, and it comes from two properties.
Worked example 2 — progress that means something. Suppose a task has nine sub-items and six are done. Six divided by nine is 66.7%, so the row shows 67%. Now compare that to the schedule: if the bar is 80% elapsed, the task is behind by 13 percentage points of work. Put both numbers in a weekly report and the conversation changes from “it’s nearly done” to “we have three sub-items and two days”.
Worked example 3 — float. A build finishes on 20 March. Its successor, user testing, cannot start before 25 March because the test environment is booked. The gap is five calendar days, which is three working days of float. That float is a budget: if the build slips three days, testing still starts on 25 March and the milestone holds. On the fourth day of slip, the milestone moves.
Worked example 4 — slip against a baseline. Baseline end was 13 March; the current end date is 18 March. The slip formula `dateBetween(prop(“Dates”), prop(“Baseline end”), “days”)` returns 5. If that task feeds a milestone with four days of float, the milestone moves by one day, from 3 April to 4 April. Two numbers, one defensible forecast, no meeting required.
The formulas are short. Duration: `dateBetween(prop(“Dates”), dateStart(prop(“Dates”)), “days”) + 1`. Slip: `dateBetween(prop(“Dates”), prop(“Baseline end”), “days”)`. Progress as a percentage from a checkbox list is not native in Notion, so either type the number or roll up completed sub-tasks from a relation.
What does a filled-in week look like?
Here is a real shape for an eight-task launch, using the properties above. Dates assume a Monday start.
| Task | Phase | Owner | Dates | Days | Depends on | Progress |
|---|---|---|---|---|---|---|
| Brief approved | Setup | Mina | Mar 2 to Mar 3 | 2 | None | 100% |
| Audience research | Setup | Sara | Mar 4 to Mar 10 | 7 | Brief approved | 100% |
| Message draft | Writing | Sara | Mar 11 to Mar 17 | 7 | Audience research | 60% |
| Design concepts | Creative | Ali | Mar 11 to Mar 20 | 10 | Brief approved | 40% |
| Legal review | Review | Nadia | Mar 18 to Mar 20 | 3 | Message draft | 0% |
| Landing page build | Build | Ali | Mar 23 to Mar 27 | 5 | Design concepts | 0% |
| QA pass | Review | Nadia | Mar 30 to Mar 31 | 2 | Landing page build | 0% |
| Launch | Milestone | Mina | Apr 1 | 1 | QA pass | 0% |
Read the table as a schedule, not a list. Design and message drafting overlap on purpose, because both only need the brief and the research. Legal review starts the day after the message draft ends, which is the one hard handoff in the plan. Everything downstream of legal review has three working days of buffer before the launch date, and that buffer is the only thing standing between a two-day legal comment and a missed launch.
If you rebuild this table with your own tasks, the two questions that expose a bad plan are: which rows have no owner, and which rows have a dependency on something that finishes after they start. Both are visible in a table view in under a minute.
When is Notion the wrong home for a live schedule?
Notion is a document tool that learned to hold databases. That is a strength for planning and a weakness for execution, and the boundary is reasonably predictable.
Stay in Notion when the project has fewer than about 60 active tasks, one clear owner per task, no resource contention, and an audience that reads the plan rather than updating it hourly. Document-heavy work fits especially well: research, content, hiring, grant applications, internal programmes.
Move the schedule out when any of these appear:
- Two people compete for the same hours. Without capacity data, the plan is fiction by week three.
- You owe a dated commitment to a client or funder. Baselines and critical path stop being nice-to-haves.
- The plan changes several times a week. Manual edits to a timeline are the most expensive kind of admin.
- You need per-row permissions. Notion permissions work at page and database level, not per task.
- Someone needs a push notification when a date slips. Notion will not chase people for you.
The arithmetic is blunt. Twenty tasks, updated once a week, at four minutes each, is 80 minutes a week, or roughly 69 hours a year. At a loaded rate of $45 an hour that is about $3,100 of coordination labour, which is more than a year of paid seats for a small team. The template is free; the maintenance is not.
What are the five mistakes that break these templates?
- Adding a second date property “just in case”. The timeline plots one property. Two date columns guarantee that half the team updates the wrong one.
- Typing duration. A typed duration is a guess that stops matching the bar the first time a date moves.
- Storing the owner as text. `@Sara` in a rich-text field looks right and breaks every “my tasks” filter.
- Naming statuses freely. “In progress”, “WIP”, “ongoing” and “started” are four options for one state. Notion’s Status groups exist to prevent exactly this.
- Treating the timeline as a report. A screenshot of the timeline is a snapshot. If stakeholders need a weekly update, build a filtered table view with dates and status and share that instead.
What does this cost in 2026?
Notion’s Free plan covers unlimited pages for a single user, ten guests, 5 MB file uploads and seven-day page history, which is enough for a solo researcher or a two-person project. Plus lists at $10 per member per month billed annually, or $12 monthly. Business lists at $20 annually or $24 monthly and includes the AI features and longer history. Enterprise is quoted.
For a 12-person team, Plus costs 12 × $10 × 12 = $1,440 a year. Business costs 12 × $20 × 12 = $2,880. The $1,440 difference buys AI, advanced permissions and version history, not a better Gantt chart: the timeline view is available on every plan, including Free. Pay for the collaboration features, not for the bars.
One caveat on guest seats. Guests are free on paid plans but limited on Free, and a guest who needs to edit tasks inside the database may need a paid seat. Check that before you invite a client into the workspace.
Where does Doitify fit if the template outgrows Notion?
Doitify is our product, so read this as disclosure, not as a review. It is built as a workspace for projects, tasks, sub-tasks, checklists, owners and due dates, with Kanban boards, Gantt charts, roadmaps, calendars, workload views, work and performance reports, automations, import and export, all in one place. Doitify Copilot and AI Coach turn a stated goal into tasks, sub-tasks and a plan.
The relevant difference for this article is not the feature list, it is what happens to the data model. In Notion you build the schedule; in a project tool the schedule, the workload and the reports read the same records, so a slipped date changes the capacity view without anyone editing a second table. That is worth paying for when two people share the same hours. It is not worth paying for a five-person team with one project and a monthly status update, where the free Notion template above is genuinely enough.
Conclusion
A free gantt chart template for Notion is worth building only if you build the database behind it. Seven properties, one timeline view, two formulas and a saved template will hold a quarter-long project together, and they will keep working after the novelty wears off.
Build the structure this week, run one real project through it, and watch where you spend your time. If the hours go into updating dates rather than doing work, the template has told you something useful: the schedule needs a tool that maintains itself. Until then, the version above costs nothing and beats a spreadsheet.
If this post on gantt chart template for notion was helpful, you might also enjoy Project Management Software With Workload Management and All-in-One Project Management and CRM Software.
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.