Gantts
The Gantts studio is where staffing plans and roadmaps live — visual project timelines with milestones, phases and dependencies laid out on a week grid. You don't draw them by hand: you describe the people and the work in chat, and the layout engine schedules everything so nobody is ever double-booked. Then you open the studio to drag it around, and it deconflicts as you go.
You feed it resources and work; it does the scheduling. Rows are people; blocks are work-streams. Lay down the hard commitments — on-call and vacation — and project work automatically flows around them into the earliest free weeks. Give a work-stream its dependencies and the engine computes the critical path for you. You never hand-pack a conflict-free schedule.
■ Never double-books
On-call and vacation hold their weeks; work flows around them automatically.
■ Auto-schedules
Leave a start open and each work-stream drops into the earliest free slot.
■ Computes the critical path
Finish-to-start dependencies are sequenced and the driving path is highlighted.
■ Drags & deconflicts
Rearrange visually in the studio; it re-solves conflicts on the fly.
What it is#
A Gantt in Zimac is a plan on a week grid (weeks anchor to Mondays): a set of rows — the people or resources doing the work — and a set of blocks — the work-streams, on-call rotations and time off that occupy their weeks. It's the tool for a staffing plan, a capacity view, or a delivery roadmap, and it's built to be edited: change the inputs and the engine re-solves the schedule rather than making you re-pack it by hand.
How a plan is made#
You build a plan by describing it to Sage (or asking her to build a staffing plan), and she assembles the rows and blocks and hands back a ganttBlock card that renders the plan inline in the chat. From there you can open it in the studio to drag things around. The whole loop is conversational — you talk about people and work, not grid cells.
Rows & work-streams#
Each row is a person or resource — and you can add placeholder rows (like INC2) for seats you haven't filled yet, so a plan can show the headcount you'd need, not just the headcount you have. Each block is a stretch of weeks: a work-stream with a label, a colour, and a duration (at least one week). Distinct work-streams get distinct colours so the plan reads at a glance.
On-call & vacation#
Blocks come in three kinds, and two of them are hard commitments that the schedule bends around:
Lay down on-call rotations and time off first — they hold their weeks no matter what. When a work-stream would overlap a commitment, the work pauses for those weeks and resumes after (no idle gap before it), so a person is never scheduled to do project work while they're on-call or away.
Auto-scheduling#
You don't have to place blocks by hand. Omit a work-stream's start and the layout engine drops it into the earliest free run of weeks on that person's row — wrapping around their on-call and vacation. Pin a start only when a stream has a real fixed date. Either way the guarantee holds: no two blocks ever share a week on the same row, so nobody is double-booked.
Dependencies & critical path#
Give a work-stream its dependencies — the streams it has to wait on — and the engine schedules it finish-to-start: it starts only after everything it depends on has finished. From that dependency graph it computes the critical path — the chain of work-streams that actually drives the finish date — and marks it, so you can see which work, if it slips, slips the whole plan. You never hand-sequence a roadmap.
Progress & milestones#
Each block can track progress from 0 to 100%, so an in-flight plan shows how far along each stream is. And a plan can carry milestones — deadlines or launches pinned to a specific week or date — that render as markers across the grid, so the dates that matter sit right alongside the work that has to hit them.
Dragging in the studio#
Open the plan in the Gantts studio and you can drag work-streams around the week grid directly. The studio deconflicts as you go — it re-solves the row so two blocks never end up sharing a week, keeping on-call and vacation fixed while the work rearranges. It's the hands-on complement to the conversational build: describe the shape in chat, then fine-tune it by hand.
Reading the plan#
Ask about a plan and you get a read-only analysis — no tokens, no changes: per-person utilisation (busy vs idle weeks), the plan's end date, the dependency critical path, and risk warnings like idle people, fully-booked people, or work that overruns a milestone. It's how you answer "who's the bottleneck?", "when does this finish?", and "who has room?" straight from the plan.
Plans & projects#
A staffing plan and a tracked project are two views of the same work, and they link in one step. Turn a plan into a project and each work-stream's end-of-week becomes a completion milestone (on-call and vacation are skipped); go the other way and Zimac drafts an editable plan straight from a project's dated items. Once linked they stay in sync — change one and you can push the dates onto the other — so the roadmap and the delivery board never drift apart. See Projects →
Managing plans#
You can keep several plans and manage them all from chat: list your saved plans, open or read one, edit it (the change re-renders as an updated ganttBlock card), or delete one you no longer need. Because plans are stored in a stable, byte-for-byte form, an edit only touches what you changed — the rest of the plan stays exactly as it was.