A SharePoint Gantt chart comes from the Gantt View of a Tasks list: add the Tasks app, then pick Gantt View under LIST > Create View. Modern lists don’t offer that view type, so there you draw the bars with JSON view formatting.
In this tutorial, I’ll show you both ways to build a sharepoint gantt chart: the classic Gantt View with progress and dependency arrows, and a JSON Gantt view for a modern list in Microsoft Lists. I’ll also cover Power BI and Planner.
Here’s the shortest path for the classic version:
Settings (gear) > Add an app > Tasks > Name > Create
LIST tab > Create View > Gantt View
Gantt Columns: Title = Task Name, Start Date = Start Date, Due Date = Due Date > OK
You get a task grid on the left and a timeline with one bar per task on the right.
What Is a Gantt Chart View in SharePoint?
A Gantt chart shows each task as a bar on a calendar: it starts on the start date, ends on the due date, and fills in as work gets done.
In SharePoint, it’s just another type of SharePoint list view, so your data doesn’t change. Only classic Tasks lists have a real Gantt View; modern lists need JSON.
Method 1: Create a Gantt Chart View Using a SharePoint Tasks List
This built-in way still works in SharePoint Online in October 2026. I built it on our SPGuides demo site for a website launch. More list basics are in our SharePoint tutorials.
Step 1: Add a Tasks list and tasks
Select the gear icon > Add an app. On the Your Apps page, pick Tasks under Noteworthy, enter a name and select Create:

The list already has Task Name, Start Date, Due Date, % Complete and Predecessors, plus a ready-made Gantt Chart view. I added 8 tasks from 11/2/2026 to 12/14/2026 and set Predecessors, so Go live waits on testing and training.
Step 2: Create the Gantt View
The Tasks list opens in the classic UI. Select the LIST tab, then Create View:

On the View Type page, choose Gantt View:

Enter a View Name (mine is Launch Timeline) and keep it a Public view:

Step 3: Map the Gantt columns
In Gantt Columns, Title, Start Date and Due Date are required; Percent Complete (the darker fill) and Predecessors (the arrows) are optional. I mapped each to the column of the same name:

Under Sort, pick Start Date, then select OK. Here’s the result on our demo site:

The chart shows weeks from 11/1/2026 to 12/13/2026, a darker fill for % complete and arrows to each predecessor. To change the mapping later, use LIST > Modify View.
Method 2: Build a Gantt Chart in a Modern List With JSON
In a modern list, the Create view dialog offers only List, Calendar, Gallery and Board:

So the Gantt look comes from view formatting, in the same menu you’d use for a board view in a SharePoint list.
Step 1: Create the list and view
I created a Website Launch Plan list in Microsoft Lists with Title, Start Date and End Date (date only, required), Progress (number as a percentage) and Status. Then I made a view sorted by Start Date and picked Format current view:

Step 2: Paste the JSON
On the Format view tab, select Advanced mode and replace the editor’s contents with this JSON:
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/row-formatting.schema.json",
"hideSelection": false,
"hideColumnHeader": true,
"rowFormatter": {
"elmType": "div",
"style": {
"display": "flex",
"align-items": "center",
"width": "100%",
"padding": "6px 0",
"border-bottom": "1px solid #edebe9"
},
"children": [
{
"elmType": "div",
"txtContent": "[$Title]",
"style": { "width": "210px", "padding-left": "8px", "font-weight": "600" }
},
{
"elmType": "div",
"txtContent": "=toLocaleDateString([$StartDate]) + ' - ' + toLocaleDateString([$EndDate])",
"style": { "width": "180px", "font-size": "12px", "color": "#605e5c" }
},
{
"elmType": "div",
"style": { "position": "relative", "flex-grow": "1", "height": "22px", "background-color": "#f3f2f1" },
"children": [
{
"elmType": "div",
"attributes": { "title": "=[$Title] + ': ' + ([$Progress] * 100) + '% complete'" },
"style": {
"position": "absolute",
"top": "3px",
"height": "16px",
"border-radius": "3px",
"background-color": "#a6d8db",
"left": "=((Number([$StartDate]) - Number(Date('2026-11-01T00:00:00Z'))) / 86400000) * 2 + '%'",
"width": "=(((Number([$EndDate]) - Number([$StartDate])) / 86400000) + 1) * 2 + '%'"
},
"children": [
{
"elmType": "div",
"style": {
"height": "100%",
"border-radius": "3px",
"background-color": "#038387",
"width": "=([$Progress] * 100) + '%'"
}
}
]
}
]
}
]
}
}
Select Preview, then Save. My panel before saving:

Each row now shows the task name, its dates and a bar on the timeline:

The light teal bar is the duration, and the darker part is progress. Unlike the classic view, there are no dependency arrows.
How to Change the Dates in the Gantt JSON
left counts the days from 11/1/2026 to the task’s start and multiplies by 2%. width is the task’s length in days plus one, times 2%. My window is 50 days, and 100 / 50 = 2.
For your project, replace 2026-11-01 with your start date and both 2 multipliers with 100 divided by your window’s days (90 days = 1.11).
Use internal column names. The same rules apply to calendar view formatting and list form JSON formatting.
Can You Make a Gantt Chart From a SharePoint List in Power BI?
Yes, when a manager wants a report rather than a list view. In Power BI Desktop, select Get data > SharePoint Online list and paste the site URL, not the list URL.
Load the list, add a Gantt visual from AppSource (Get more visuals), and map the task, start date and duration. See how to create a report in Power BI Desktop; edits still happen in SharePoint.
Which Gantt Chart Method Should You Use?
| Need | Best option |
|---|---|
| Built-in Gantt with dependency arrows | Classic Tasks list + Gantt View |
| Modern list or Microsoft Lists | JSON view formatting |
| Management report | Power BI Gantt visual |
| Drag-to-reschedule, all dependency types, critical path | Planner premium plan (Timeline view) |
I still reach for the classic Gantt View first. The JSON view suits teams that live in Microsoft Lists and only need a visual timeline.
SharePoint Gantt View Problems and Fixes
Gantt View isn’t offered
It only appears for a Tasks list in the classic LIST > Create View page. Custom and modern lists don’t get it; use the JSON method there.
A task shows no bar
Its Start Date or Due Date is empty. Make both date columns required so every task can be drawn.
JSON bars run off screen
The task falls outside your window. Move the start date in the JSON or lower the multiplier to cover more days.
I’d read these next if you’re organizing project lists in SharePoint:
Frequently Asked Questions
Does SharePoint have a Gantt chart?
Yes. Classic Tasks lists have a Gantt View that shows each task as a bar, with percent complete and predecessor arrows. Modern lists don’t have a Gantt view type, so you use JSON view formatting there.
How do I create a Gantt chart in Microsoft Lists?
Add Start Date and End Date columns (required), create a list view, then open Format current view, select Advanced mode and paste Gantt JSON that uses rowFormatter to draw a bar for each item.
Is Microsoft Planner better than a SharePoint Gantt view?
For bigger projects, yes. A Planner premium plan has a Timeline (Gantt) view with all four dependency types and a critical path. It needs a premium license; a SharePoint list view works with any license.
Can I make a Gantt chart from a SharePoint list in Power BI?
Yes. Connect Power BI Desktop with Get data > SharePoint Online list, load the list and add a Gantt visual from AppSource. The report reads the list; edits still happen in SharePoint.
Where is SharePoint view formatting documented?
Microsoft explains rowFormatter, Format current view and the JSON schema in Use view formatting to customize SharePoint.

Hey! I’m Bijay Kumar, founder of SPGuides.com and a Microsoft Business Applications MVP (Power Automate, Power Apps). I launched this site in 2020 because I truly enjoy working with SharePoint, Power Platform, and SharePoint Framework (SPFx), and wanted to share that passion through step-by-step tutorials, guides, and training videos. My mission is to help you learn these technologies so you can utilize SharePoint, enhance productivity, and potentially build business solutions along the way.
It should be noted that this is for classic Sharepoint, and gantt views are not supported in modern Sharepoint Lists. They can be created in the settings page, and viewed using the generated URL, but you cannot use the view switcher to get to them and they cannot be added to Teams as a Lists tab.