Syncfusion.Blazor.Gantt 35.1.46

Prefix Reserved
dotnet add package Syncfusion.Blazor.Gantt --version 35.1.46
                    
NuGet\Install-Package Syncfusion.Blazor.Gantt -Version 35.1.46
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Syncfusion.Blazor.Gantt" Version="35.1.46" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Syncfusion.Blazor.Gantt" Version="35.1.46" />
                    
Directory.Packages.props
<PackageReference Include="Syncfusion.Blazor.Gantt" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Syncfusion.Blazor.Gantt --version 35.1.46
                    
#r "nuget: Syncfusion.Blazor.Gantt, 35.1.46"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Syncfusion.Blazor.Gantt@35.1.46
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Syncfusion.Blazor.Gantt&version=35.1.46
                    
Install as a Cake Addin
#tool nuget:?package=Syncfusion.Blazor.Gantt&version=35.1.46
                    
Install as a Cake Tool

Syncfusion Blazor Gantt Chart

The Blazor Gantt Chart component is a professional project planning and scheduling component for Blazor applications. Display and manage hierarchical tasks with timelines, resource allocation, dependencies, and Gantt chart visualizations.

Blazor Gantt Chart

Using this package with an AI coding agent

Before generating Syncfusion code, ask your AI coding agent to run the Syncfusion setup using the following prompt:

Set up this project for Syncfusion before generating code. Fetch and follow the official instructions at https://ai.syncfusion.com, then report the detected platform, installed skill pack, MCP status, and any required licensing action.

The setup detects your project's platform and loads the appropriate Syncfusion skill pack. No Syncfusion account or MCP key is required to install or read Syncfusion agent skills.

Platform reference: https://ai.syncfusion.com/blazor/llms.txt

Key features

  • Task management: Create, edit, and delete tasks with hierarchical (parent/child) structure.
  • Timeline view: Interactive Gantt chart with customizable timeline scales (hour/day/week/month) and zoom levels.
  • Resource allocation: Assign resources to tasks, view allocations, and support basic resource leveling.
  • Dependencies: Define and visualize task dependencies and relationships (FS/SS/FF/SF).
  • Scheduling: Automatic date calculation and recalculation based on durations, dependencies, and project constraints.
  • Milestone tracking: Mark and track important project milestones.
  • Drag and drop: Reschedule and reorder tasks via drag-and-drop with touch and keyboard-friendly alternatives.
  • Filtering and Sorting: Filter and sort tasks by status, resource, date range, or custom criteria.
  • Export: Export project data to Excel, CSV, and PDF formats with configurable export options.
  • Timezone: Configure task scheduling and date-time display using a specified timezone, with automatic conversion and daylight saving time (DST) adjustments.

System requirements

  • .NET 8.0 or later (Blazor Server App, Blazor Web App, Blazor WebAssembly App, Blazor Hybrid App)
  • See full requirements: system requirements

Installation

Install the Gantt package and the themes package, which provides the stylesheets referenced below:

dotnet add package Syncfusion.Blazor.Gantt
dotnet add package Syncfusion.Blazor.Themes

Add stylesheet and script references

For Blazor Web App / Blazor Server App, add these to Components/App.razor or App.razor. For Blazor WebAssembly App, add these to wwwroot/index.html:

<link href="_content/Syncfusion.Blazor.Themes/fluent2.css" rel="stylesheet" />
<script src="_content/Syncfusion.Blazor.Core/scripts/syncfusion-blazor.min.js" type="text/javascript"></script>

Quick start

  1. Register the Syncfusion Blazor service in Program.cs:
using Syncfusion.Blazor;

builder.Services.AddSyncfusionBlazor();
  1. Add Blazor Gantt Chart component to your razor page:
@using Syncfusion.Blazor.Gantt

<div class="control-section e-gantt-eventmarkers-sample">
    <SfGantt DataSource="@TaskCollection" Height="450px" Width="1200px" ProjectStartDate="@(new DateTime(2026, 3, 27))" ProjectEndDate="@(new DateTime(2026, 7, 6))" TreeColumnIndex="1" ScrollToTaskbarOnClick="true">
        <GanttTaskFields Id="TaskId" Name="TaskName" StartDate="StartDate" EndDate="EndDate" Progress="Progress" ParentID="ParentId" Indicators="Indicators" Dependency="Predecessor">
        </GanttTaskFields>
        <GanttColumns>
            <GanttColumn Field="TaskId" HeaderText="Task Id"></GanttColumn>
            <GanttColumn Field="TaskName" HeaderText="Task Name" ClipMode="Syncfusion.Blazor.Grids.ClipMode.EllipsisWithTooltip" Width="280px"></GanttColumn>
            <GanttColumn Field="StartDate" HeaderText="Start Date"></GanttColumn>
            <GanttColumn Field="EndDate" HeaderText="End Date"></GanttColumn>
            <GanttColumn Field="Predecessor" HeaderText="Dependency"></GanttColumn>
            <GanttColumn Field="Progress" HeaderText="Progress"></GanttColumn>
        </GanttColumns>
        <GanttEventMarkers>
            <GanttEventMarker Day="@ResearchPhaseDate" Label="Research phase" CssClass="e-custom-event-marker"></GanttEventMarker>
        </GanttEventMarkers>
        <GanttSplitterSettings Position="28%"></GanttSplitterSettings>
        <GanttLabelSettings LeftLabel="TaskName" TValue="EventData.TaskData"></GanttLabelSettings>
    </SfGantt>
</div>
@code {
    internal List<EventData.TaskData> TaskCollection { get; set; } = new List<EventData.TaskData>();
    public DateTime ResearchPhaseDate { get; set; } = new DateTime(2026, 04, 09);
    /// <summary>
    /// Initializes the sample by loading task data for the Gantt chart.
    /// </summary>
    protected override async Task OnInitializedAsync()
    {
        TaskCollection = EventData.GetTaskCollection();
        await Task.CompletedTask.ConfigureAwait(true);
    }

    public static class EventData
    {
        internal sealed class TaskData
        {
            public int TaskId { get; set; }
            public string TaskName { get; set; } = string.Empty;
            public DateTime StartDate { get; set; }
            public DateTime EndDate { get; set; }
            public int Progress { get; set; }
            public int? ParentId { get; set; }
            public string Predecessor { get; set; } = string.Empty;
            public List<GanttIndicator>? Indicators { get; set; }
        }
        /// <summary>
        /// Generates and returns a collection of Gantt task data.
        /// </summary>
        internal static List<TaskData> GetTaskCollection()
        {
            List<TaskData> Tasks = new List<TaskData>() {
                new TaskData() { TaskId = 1, TaskName = "Product concept", StartDate = new DateTime(2026, 04, 02), EndDate = new DateTime(2026, 04, 08) },
                new TaskData() { TaskId = 2, TaskName = "Defining the product usage", StartDate = new DateTime(2026, 04, 02), EndDate = new DateTime(2026, 04, 08), Progress = 30, ParentId = 1 },
                new TaskData() { TaskId = 3, TaskName = "Defining the target audience", StartDate = new DateTime(2026, 04, 02), EndDate = new DateTime(2026, 04, 04), Progress = 40, ParentId = 1 },
                new TaskData() { TaskId = 4, TaskName = "Prepare product sketch and notes", StartDate = new DateTime(2026, 04, 05), EndDate = new DateTime(2026, 04, 08), Progress = 30, ParentId = 1, Predecessor = "2" },
                new TaskData() { TaskId = 5, TaskName = "Concept approval", StartDate = new DateTime(2026, 04, 08), EndDate = new DateTime(2026, 04, 08), Predecessor = "3,4", Indicators = new List<GanttIndicator>() { new GanttIndicator() { Name = "Design phase", IconClass = "e-btn-icon e-notes-info e-icons e-icon-left e-gantt e-notes-info::after", Date = new DateTime(2026, 04, 10), Tooltip = "Design phase" }, } },
                new TaskData() { TaskId = 6, TaskName = "Market research", StartDate = new DateTime(2026, 04, 09), EndDate = new DateTime(2026, 04, 18), Progress = 30 },
                new TaskData() { TaskId = 7, TaskName = "Demand analysis", StartDate = new DateTime(2026, 04, 09), EndDate = new DateTime(2026, 04, 12), Progress = 40, ParentId = 6 },
                new TaskData() { TaskId = 8, TaskName = "Customer strength", StartDate = new DateTime(2026, 04, 09), EndDate = new DateTime(2026, 04, 12), Progress = 30, ParentId = 7, Predecessor = "5" },
                new TaskData() { TaskId = 9, TaskName = "Market opportunity analysis", StartDate = new DateTime(2026, 04, 09), EndDate = new DateTime(2026, 04, 12), ParentId = 7, Predecessor = "5" },
                new TaskData() { TaskId = 10, TaskName = "Competitor analysis", StartDate = new DateTime(2026, 04, 15), EndDate = new DateTime(2026, 04, 18), Progress = 30, ParentId = 6, Predecessor = "7,8" },
                new TaskData() { TaskId = 11, TaskName = "Product strength analysis", StartDate = new DateTime(2026, 04, 15), EndDate = new DateTime(2026, 04, 18), Progress = 40, ParentId = 6, Predecessor = "9" },
                new TaskData() { TaskId = 12, TaskName = "Research completed", StartDate = new DateTime(2026, 04, 22), EndDate = new DateTime(2026, 04, 22), Progress = 30, ParentId = 6, Predecessor = "10", Indicators = new List<GanttIndicator>() { new GanttIndicator() { Name = "Research completed", IconClass = "e-btn-icon e-notes-info e-icons e-icon-left e-gantt e-notes-info::after", Date = new DateTime(2026, 04, 23), Tooltip = "Research completed" }, } },
                new TaskData() { TaskId = 13, TaskName = "Product design and development", StartDate = new DateTime(2026, 04, 19), EndDate = new DateTime(2026, 05, 16) },
                new TaskData() { TaskId = 14, TaskName = "Functionality design", StartDate = new DateTime(2026, 04, 19), EndDate = new DateTime(2026, 04, 23), Progress = 30, ParentId = 13, Predecessor = "12" },
                new TaskData() { TaskId = 15, TaskName = "Quality design", StartDate = new DateTime(2026, 04, 19), EndDate = new DateTime(2026, 04, 23), Progress = 40, ParentId = 13, Predecessor = "12" },
                new TaskData() { TaskId = 16, TaskName = "Define reliability", StartDate = new DateTime(2026, 04, 24), EndDate = new DateTime(2026, 04, 25), Progress = 30, ParentId = 13, Predecessor = "15" },
                new TaskData() { TaskId = 17, TaskName = "Identifying raw materials", StartDate = new DateTime(2026, 04, 24), EndDate = new DateTime(2026, 04, 25), ParentId = 13, Predecessor = "15" },
                new TaskData() { TaskId = 18, TaskName = "Define cost plan", StartDate = new DateTime(2026, 04, 26), EndDate = new DateTime(2026, 04, 29), Progress = 30, ParentId = 13, Predecessor = "17" },
                new TaskData() { TaskId = 19, TaskName = "Define manufacturing cost", StartDate = new DateTime(2026, 04, 26), EndDate = new DateTime(2026, 04, 29), Progress = 40, ParentId = 18, Predecessor = "17" },
                new TaskData() { TaskId = 20, TaskName = "Define selling cost", StartDate = new DateTime(2026, 04, 26), EndDate = new DateTime(2026, 04, 29), Progress = 30, ParentId = 18, Predecessor = "17" },
                new TaskData() { TaskId = 21, TaskName = "Development of final design", StartDate = new DateTime(2026, 04, 30), EndDate = new DateTime(2026, 05, 08), ParentId = 13 },
                new TaskData() { TaskId = 22, TaskName = "Develop dimensions and design", StartDate = new DateTime(2026, 04, 30), EndDate = new DateTime(2026, 05, 01), Progress = 30, ParentId = 21, Predecessor = "19,20" },
                new TaskData() { TaskId = 23, TaskName = "Develop designs to meet industry standard", StartDate = new DateTime(2026, 05, 02), EndDate = new DateTime(2026, 05, 03), Progress = 40, ParentId = 21, Predecessor = "22" },
                new TaskData() { TaskId = 24, TaskName = "Include all the details", StartDate = new DateTime(2026, 05, 06), EndDate = new DateTime(2026, 05, 08), Progress = 30, ParentId = 21, Predecessor = "23" },
                new TaskData() { TaskId = 25, TaskName = "CAD - Computer Aided Design", StartDate = new DateTime(2026, 05, 09), EndDate = new DateTime(2026, 05, 13), Predecessor = "24" },
                new TaskData() { TaskId = 26, TaskName = "CAM - Computer Aided Manufacturing", StartDate = new DateTime(2026, 05, 14), EndDate = new DateTime(2026, 05, 16), Progress = 30, Predecessor = "25" },
                new TaskData() { TaskId = 27, TaskName = "Finalize the design", StartDate = new DateTime(2026, 04, 16), EndDate = new DateTime(2026, 04, 16), Progress = 40, Predecessor = "26" },
                new TaskData() { TaskId = 28, TaskName = "Prototype testing", StartDate = new DateTime(2026, 05, 17), EndDate = new DateTime(2026, 05, 22), Progress = 30, Predecessor = "27" },
                new TaskData() { TaskId = 29, TaskName = "Include feedback", StartDate = new DateTime(2026, 05, 17), EndDate = new DateTime(2026, 05, 22), Predecessor = "28ss", Indicators = new List<GanttIndicator>() { new GanttIndicator() { Name = "Production phase", IconClass = "e-btn-icon e-notes-info e-icons e-icon-left e-gantt e-notes-info::after", Date = new DateTime(2026, 05, 26), Tooltip = "Production phase" }, } },
                new TaskData() { TaskId = 30, TaskName = "Manufacturing", StartDate = new DateTime(2026, 05, 23), EndDate = new DateTime(2026, 05, 29), Progress = 30, Predecessor = "28,29" },
                new TaskData() { TaskId = 31, TaskName = "Assembling material into finished goods", StartDate = new DateTime(2026, 05, 30), EndDate = new DateTime(2026, 06, 05), Progress = 40, Predecessor = "30" },
                new TaskData() { TaskId = 32, TaskName = "Final product development", StartDate = new DateTime(2026, 06, 06), EndDate = new DateTime(2026, 06, 13), Progress = 30 },
                new TaskData() { TaskId = 33, TaskName = "Important improvement", StartDate = new DateTime(2026, 06, 06), EndDate = new DateTime(2026, 06, 10), ParentId = 32, Predecessor = "31" },
                new TaskData() { TaskId = 34, TaskName = "Customer testing and feedback", StartDate = new DateTime(2026, 06, 11), EndDate = new DateTime(2026, 06, 13), Progress = 30, ParentId = 32, Predecessor = "33" },
                new TaskData() { TaskId = 35, TaskName = "Final product development", StartDate = new DateTime(2026, 06, 14), EndDate = new DateTime(2026, 06, 19), Progress = 40 },
                new TaskData() { TaskId = 36, TaskName = "Important improvement", StartDate = new DateTime(2026, 06, 14), EndDate = new DateTime(2026, 06, 19), Progress = 30, ParentId = 35, Predecessor = "34" },
                new TaskData() { TaskId = 37, TaskName = "Address any unforeseen issues", StartDate = new DateTime(2026, 06, 14), EndDate = new DateTime(2026, 06, 19), Progress = 30, Predecessor = "36ss", ParentId = 35, Indicators = new List<GanttIndicator>() { new GanttIndicator() { Name = "Sales and Marketing", IconClass = "e-btn-icon e-notes-info e-icons e-icon-left e-gantt e-notes-info::after", Date = new DateTime(2026, 06, 23), Tooltip = "Sales and Marketing" }, } },
                new TaskData() { TaskId = 38, TaskName = "Finalize the product ", StartDate = new DateTime(2026, 06, 20), EndDate = new DateTime(2026, 07, 01), Progress = 40 },
                new TaskData() { TaskId = 39, TaskName = "Branding the product", StartDate = new DateTime(2026, 06, 20), EndDate = new DateTime(2026, 06, 25), Progress = 30, ParentId = 38, Predecessor = "37" },
                new TaskData() { TaskId = 40, TaskName = "Marketing and presales", StartDate = new DateTime(2026, 06, 26), EndDate = new DateTime(2026, 07, 01), ParentId = 38, Predecessor = "39" }
            };
            return Tasks;
        }
    }
}

Documentation

Support and feedback

Explore other popular Syncfusion Blazor components curated from UI components, standalone SDKs, and document solution suites.

UI components Standalone UI SDK's Document processing
Blazor DataGrid Blazor Kanban Blazor DOCX Editor
Blazor Pivot Table Blazor Diagram Blazor Document
Blazor Map Blazor Scheduler Blazor PDF Viewer
Blazor File Manager Blazor RichTextEditor Blazor Spreadsheet Editor

License

This is a commercial product and requires a paid license for possession or use. Syncfusion licensed software, including this component, is subject to the terms and conditions of the Syncfusion EULA. You can purchase a license here or start a free 30-day trial here.

About Syncfusion

Founded in 2001 and headquartered in Research Triangle Park, N.C., Syncfusion has more than 29,000 customers and more than 1 million users, including large financial institutions, Fortune 500 companies, and global IT consultancies.

Today, we provide 1800+ components and frameworks for web, mobile, and desktop development across multiple platforms:

Web: Blazor | ASP.NET Core | ASP.NET MVC | JavaScript | Angular | React | Vue

Mobile: Flutter | MAUI | UWP

Desktop: WinForms | WPF | WinUI

Learn more at www.syncfusion.com.

sales@syncfusion.com | Toll Free: 1-888-9-DOTNET

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed.  net11.0 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on Syncfusion.Blazor.Gantt:

Package Downloads
Cayaqui.MPS.Components

Design system and EVM/EPC reusable components (KPI strip, gauges CPI/SPI/PF, S-curves, Gantt, WBS tree grid, R9C, risk heatmap, change orders, purchase orders, engineering deliverables, lookahead grid) for .NET 10 Blazor WebApp (Interactive Server) on top of Syncfusion.Blazor. Proprietary — requires a commercial agreement with Cayaqui.

Cayaqui.Components

Design system and EVM/EPC reusable components (KPI strip, gauges CPI/SPI/PF, S-curves, Gantt, WBS tree grid, R9C, risk heatmap, change orders, purchase orders, engineering deliverables, lookahead grid) for .NET 10 Blazor WebApp (Interactive Server) on top of Syncfusion.Blazor. Proprietary — requires a commercial agreement with Cayaqui.

Syncfusion.Blazor.A2UI

Syncfusion® Blazor A2UI Library is a thin Blazor renderer for the A2UI v0.9 protocol (originally @a2ui/web_core by Google LLC). Built on top of Syncfusion.A2UI.Core, it provides Blazor nodes, a node-surface, binder adapters and an optional rich set of Syncfusion Syncfusion.Blazor.*-backed component implementations for DataGrid, Chart, Scheduler, RichTextEditor, Kanban, Diagram, Document Editor, Spreadsheet, PDF Viewer and more. Compatible with .NET 8, .NET 9, and .NET 10. Targets Microsoft.AspNetCore.App.

Jakar.Extensions.Blazor.Syncfusion

Extensions to aid in development.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
35.1.46 87 11/11/2026
35.1.43 1,443 11/2/2026
35.1.42 943 10/27/2026
35.1.41 1,116 10/20/2026
35.1.40 3,133 10/13/2026
35.1.39 480 10/6/2026
35.1.37 2,584 9/29/2026
34.2.9 1,294 9/21/2026
34.2.8 3,008 9/14/2026
34.2.7 1,997 9/8/2026
34.2.6 806 8/31/2026
34.2.5 934 8/25/2026
34.2.4 1,867 8/17/2026
34.2.3 1,472 8/11/2026
34.2.2 1,765 8/5/2026
34.1.33 2,083 7/27/2026
34.1.32 1,360 7/21/2026
34.1.31 1,945 7/14/2026
34.1.30 539 7/9/2026
34.1.29 1,896 7/6/2026
Loading failed