Gantt Chart Generator - Small Study Tools
Visual Gantt Chart · Drag & Drop · Export PNG

Gantt Chart Generator

Build professional project timelines instantly. Add tasks, set dates, assign colours and export your Gantt chart as a PNG. Pro Mode unlocks milestones, dependencies, progress tracking, team assignment and critical path.

Pro Version is Free for now
Pro Mode active — milestones, dependencies, progress & critical path unlocked
Add tasks · set dates · export PNG
Privacy Guaranteed — All data stays in your browser. Never sent to any server.
Total Tasks
0
in chart
Duration
0
total days
Avg Progress
0%
completion
End Date
project finish
Project:
Zoom:
You can also type the date directly (YYYY-MM-DD)
Gantt Chart
Add your first task above to start building your Gantt chart
Save chart as:
Task List 0 tasks
No tasks yet. Add a task above.
Pro Mode is Free — 8 Extra Features Unlocked
Switch to Pro to access everything below at no cost
Milestones
Mark key dates as diamond milestone markers on the chart
📊
Progress Tracking
Add % completion to each task — bars fill to show progress visually
🔗
Dependencies
Link tasks so arrows show which tasks must finish before others start
👤
Team Assignment
Assign each task to a team member — shown in the chart and task list
🔴
Critical Path
Auto-highlights the longest task chain in red so you know what to protect
📅
Today Marker
Red dashed line shows where today falls on your timeline at a glance
🔍
Zoom: Day/Week/Month
Switch between Day, Week and Month views to zoom in or see the big picture
📥
Export CSV · PDF · Word
Download as CSV for Excel/Sheets, PDF for sharing, or a colour-filled Word table
'; const blob = new Blob([html], {type: 'text/html'}); const a = document.createElement('a'); a.download = 'smallstudytools-gantt-print.html'; a.href = URL.createObjectURL(blob); a.click(); toast('Open the downloaded file in your browser, then Print → Save as PDF'); }function exportWord() { if (!tasks.length) { toast('Add tasks first'); return; } const proj = document.getElementById('projectTitle').value || 'My Project'; let minD = parseDate(tasks[0].start); let maxD = addDays(parseDate(tasks[0].start), tasks[0].dur); tasks.forEach(t => { const s=parseDate(t.start),e=addDays(s,t.dur); if(smaxD)maxD=e; }); const totalDays = daysBetween(minD, maxD); const useWeeks = totalDays > 28; const colDays = useWeeks ? 7 : 1; const cols = Math.ceil(totalDays / colDays) + 1; const colW = Math.max(18, Math.floor(500 / cols));let headerCells = `Task`; for (let i=0;i${d.getDate()}/${d.getMonth()+1}` : `${d.getDate()}/${d.getMonth()+1}`; headerCells += `${lbl}`; }let taskRows = ''; tasks.forEach((t, idx) => { const taskStart = parseDate(t.start); const startOffset = Math.floor(daysBetween(minD, taskStart) / colDays); const durCols = Math.ceil(t.dur / colDays); const bgLight = t.color + '30'; const assigneeHtml = t.assignee ? '
' + esc(t.assignee) + '' : ''; const milestoneStr = t.type === 'milestone' ? ' ◆' : ''; const rowBg = idx % 2 === 0 ? '#fff' : '#f8fafc'; let cells = '' + esc(t.name) + milestoneStr + assigneeHtml + ''; for (let c=0;c= startOffset && c < startOffset + durCols; const isProgress = inTask && t.progress > 0 && c < startOffset + Math.ceil(durCols * t.progress/100); const isMilestone = t.type==='milestone' && c===startOffset; let bg = '#ffffff'; let content2 = ''; if (isMilestone) { bg = t.color; content2 = '◆'; } else if (isProgress) { bg = t.color; } else if (inTask) { bg = bgLight; } else { bg = idx%2===0?'#fff':'#f8fafc'; } if (inTask && c===startOffset && t.type!=='milestone') { content2 = `${t.progress>0?t.progress+'%':''}`; } cells += `${content2}`; } taskRows += `${cells}`; });const html = `

${esc(proj)}

Generated by SmallStudyTools.com  |  ${new Date().toLocaleDateString()}

${headerCells}${taskRows}

smallstudytools.com — Free Online Gantt Chart Generator

`;const blob = new Blob([html], {type: 'text/html;charset=utf-8'}); const a = document.createElement('a'); a.download = 'smallstudytools-gantt.doc'; a.href = URL.createObjectURL(blob); a.click(); toast('Word file downloaded! Open with Microsoft Word or LibreOffice.'); }function exportCSV() { if (!tasks.length) { toast('Add tasks first'); return; } const headers = ['#','Task Name','Start Date','Duration (days)','End Date','Progress %','Assignee','Type','Depends On']; const rows = tasks.map((t,i) => [ i+1, t.name, t.start, t.dur, fmtDate(addDays(parseDate(t.start), t.dur)), t.progress||0, t.assignee||'', t.type||'task', t.dependsOn||'' ]); const csv = [headers, ...rows].map(r => r.map(v => `"${String(v).replace(/"/g,'""')}"`).join(',')).join('\n'); const blob = new Blob([csv], {type:'text/csv'}); const a = document.createElement('a'); a.download = 'smallstudytools-gantt.csv'; a.href = URL.createObjectURL(blob); a.click(); toast('CSV exported!'); }// ── ZOOM (PRO) ───────────────────────────────────────────────── function setZoom(z, btn) { zoom = z; document.querySelectorAll('.zoom-btn').forEach(b => b.classList.remove('active')); btn.classList.add('active'); redraw(); }// ── SAMPLE DATA ──────────────────────────────────────────────── function loadSample() { const today = new Date(); const base = fmtDate(today); const d = (n) => fmtDate(addDays(today, n)); try { document.getElementById('fStart')._flatpickr && document.getElementById('fStart')._flatpickr.setDate(today); } catch(e) {} tasks = [ {id:1,name:'Research & Planning',start:base,dur:5,color:'#1a7fc1',progress:100,assignee:'Alice',type:'task',dependsOn:null}, {id:2,name:'Design Phase',start:d(5),dur:7,color:'#7c3aed',progress:60,assignee:'Bob',type:'task',dependsOn:1}, {id:3,name:'Development',start:d(10),dur:14,color:'#10b981',progress:30,assignee:'Alice',type:'task',dependsOn:2}, {id:4,name:'Testing',start:d(22),dur:5,color:'#f59e0b',progress:0,assignee:'Carol',type:'task',dependsOn:3}, {id:5,name:'Launch',start:d(27),dur:1,color:'#ef4444',progress:0,assignee:'',type:'milestone',dependsOn:4}, ]; save(); redraw(); renderTaskList(); toast('✓ Sample loaded — 5 tasks added! Try switching to Pro for milestones, progress & more.'); }// ── ACTIONS ──────────────────────────────────────────────────── function clearAll() { if (!tasks.length) return; tasks = []; save(); redraw(); renderTaskList(); toast('Cleared!'); }// ── MODE ─────────────────────────────────────────────────────── function setMode(mode) { isPro = mode === 'pro'; document.getElementById('btnSimple').classList.toggle('active', !isPro); document.getElementById('btnPro').classList.toggle('active', isPro); document.body.classList.toggle('pro-mode', isPro); document.getElementById('proModeBar').style.display = isPro ? 'flex' : 'none'; document.getElementById('modeHint').textContent = isPro ? 'Milestones · Dependencies · Progress · Team · Critical Path · Today Line · Zoom · CSV Export' : 'Add tasks · set dates · export PNG'; document.getElementById('formGrid').className = isPro ? 'form-grid-pro' : 'form-grid'; redraw(); renderTaskList(); try { localStorage.setItem('sst_gantt_mode', mode); } catch(e) {} }// ── UTILS ────────────────────────────────────────────────────── function esc(s) { return (s||'').replace(/&/g,'&').replace(//g,'>'); } function save() { try { localStorage.setItem(SK, JSON.stringify(tasks)); } catch(e) {} } function toast(msg) { const t=document.getElementById('toast'); t.textContent=msg; t.classList.add('show'); setTimeout(()=>t.classList.remove('show'), 2200); }// ── INIT ─────────────────────────────────────────────────────── try { if (typeof flatpickr === 'function') { flatpickr('#fStart', { dateFormat: 'Y-m-d', altInput: true, altFormat: 'd M Y', defaultDate: new Date(), disableMobile: true, allowInput: true, }); } else { document.getElementById('dateFallbackNote').classList.add('show'); } } catch (e) { document.getElementById('dateFallbackNote').classList.add('show'); }try { const saved = JSON.parse(localStorage.getItem(SK) || '[]'); if (Array.isArray(saved) && saved.length) { tasks = saved; redraw(); renderTaskList(); } const savedMode = localStorage.getItem('sst_gantt_mode'); if (savedMode === 'pro') setMode('pro'); } catch(e) {}

Interactive Gantt Chart Maker — Real-Time Project Timeline & Milestone Planner

Plan, organize, and monitor your project schedules instantly with our free online Gantt chart maker online free. Developed to streamline visual scheduling for students, researchers, and agile teams, our workspace platform uses an intuitive Gantt chart online maker free engine to track task lengths and milestones in real time. Quickly import your project lists using our automated Gantt chart maker Excel data panel, align your timelines with professional standard layouts, and export your polished charts completely free.

Add your tasks, set start dates and durations, and the timeline builds itself — no design skills or project management software license required.

Research Phase
Draft Writing
Review & Edit
Final Submission

Why timelines beat task lists: a checklist tells you what's left to do; a Gantt chart tells you when it needs to happen and what it's waiting on. That overlap and dependency view is exactly what gets lost in a spreadsheet column or an email thread once a project has more than a few moving pieces.

Operational Clarity: How Visual Project Roadmaps Improve Task Coordination

Tracking project task lists across messy email threads or long text chats can easily lead to missed deadlines and confusion. This lack of visibility is why modern operations teams rely on a high-performance Gantt chart maker online free. Moving your task lists onto a visual project grid gives everyone a clear look at upcoming timelines and responsibilities, keeping your team aligned and focused.

Our web app platform features an optimized Gantt chart online maker free canvas that operates directly in your browser window. Instead of paying for clunky project software, our tool gives you access to a best Gantt chart maker workspace, letting you add milestones, adjust task bars, and manage dependencies with just a few clicks.

Spreadsheet Integration: Converting Tabular Data into Clear Visual Timelines

While spreadsheets are great for tracking metrics, text lists don't easily show project timelines or team workloads at a glance. Our platform addresses this with a data integration panel designed to function as an agile Gantt chart maker Excel utility hub.

Paste your spreadsheet rows into the interface canvas to generate a clean, colorful timeline instantly. Whether you want to recreate a familiar Microsoft Gantt chart maker structure or build a custom, minimalist layout for a presentation, our tool gives you a fast, reliable framework to transform raw tabular data into a presentation-ready visual timeline.

📊 Visual Task Bars
Task duration, start and end dates shown as clean horizontal bars on a shared timeline.
🎯 Milestones
Mark key dates and deliverables directly on the chart alongside your task bars.
🔗 Task Dependencies
Link tasks so the chart reflects what must finish before the next step begins.
📋 Spreadsheet Paste-In
Paste rows from Excel or Google Sheets to build your chart without manual re-entry.

How to Build a Gantt Chart

1
Add your tasksType them in directly, or paste rows from a spreadsheet to populate the chart in one step.
2
Set dates and durationsEach task becomes a bar on the timeline, positioned and sized to match its schedule.
3
Add milestones and dependenciesMark key deliverables and link tasks that depend on one another finishing first.
4
Export your finished chartSave your polished timeline to share with your team or attach to a report.

Pair this with our Work Breakdown Structure Generator to plan your task list before building the timeline, or our To-Do List Online for day-to-day task tracking alongside your project schedule.


Frequently Asked Questions

Common questions about building and using Gantt charts

A Gantt chart is a horizontal bar chart showing project tasks against a timeline, with each bar representing a task's start, duration and end date — giving an at-a-glance view of overlaps and dependencies.

Add your tasks with start dates and durations, and the timeline bars generate automatically. Adjust directly on the canvas, then export — no installation or subscription required.

Yes. Paste task rows directly from a spreadsheet and the tool converts that data into a visual timeline.

A task list shows what's left to do; a Gantt chart adds the time dimension — duration, overlaps, milestones and dependencies between tasks.

Yes. Milestones mark key dates on the timeline, and dependencies link tasks so the chart reflects what must finish before the next step begins.

Yes. Students plan dissertation timelines and research phases the same way teams plan sprints and delivery schedules — the chart format works the same either way.

Yes, once your chart is finished you can export it to share or embed outside the tool.

Lilly
Here to help you find a tool
Search tools Search blogs
Try me to find a tool! 👋