Gantt Chart
The Gantt timeline holds every active task across every project you can see. You scan packed rows of colored bars and your eye picks out the busy weeks, the dependencies that cross projects, and the gaps where nothing is planned yet. The chart is a working surface, not a read-only report. You drag bars to reschedule, drop one on another to chain them, and right-click a day to mark it as PTO.
Anatomy of the Gantt
Every visual element on the Gantt encodes one specific thing. Once you know the vocabulary, a scroll across the timeline tells you most of what you need at a glance.
- One colored bar per task. Bar color is the project's color. Bar start and length are the task's start date and duration. Tasks pack into rows automatically (the chart is not grouped by project), so non-overlapping tasks share a row to keep the chart dense.
- Dependency stripes. A short top stripe in a contrasting color marks tasks in a dependency chain. Every bar in the same chain shares the same stripe color, so you can trace a chain visually across rows. Standalone tasks show a dimmer per-experiment stripe.
- Type icons. A horizontal-lines icon on the right plus a thicker white left edge marks a list task. A dollar-sign icon and a diagonal stripe mark a purchase task.
- High-level tasks. Render in muted amber and sit at the top of the packed rows so they read as overlays on the regular schedule.
- Completion state. Completed tasks desaturate and go partially transparent with a checkmark on the right edge. A partial fill on the left of a bar shows sub-task completion progress.
- Shared badges. A small bracketed initial like
[K]on a bar means this task is shared. The bar still uses the project's color, not the owner's. - Edge fade. Bars that start before or end after the visible window fade to black on that edge to signal that they continue offscreen.
- PTO stripes. Days you have marked as PTO render with sky-blue diagonal stripes plus a small dot in the day header. Cascades skip these days when computing dependent task dates.
- Weekend hash. Saturday and Sunday columns read as light grey background. Tasks belonging to a 5-day project overlay weekend portions with a diagonal hash so you know work does not actually happen on those days. A 7-day project draws solid across weekends.
The toolbar
The toolbar at the top of the page is where you scope and zoom the chart. The 2026-05 redesign collapsed the old per-project pill row into a single multi-select dropdown so a lab with many projects can keep the chrome compact.
- Projects dropdown (multi-select). Click it to open the project list. Every project starts checked, so the default chart shows everything. Untick a project to hide its bars. Two quick actions sit at the top. Select all restores the everyone-checked default, and Unselect all clears the list so you can re-tick only the project you want.
- Tag chips. When any task or project has tags, a row of tag chips appears next to the project dropdown. Toggle a chip to narrow the chart to tasks matching that tag.
- Shared toggle. A small share-icon switch that hides or shows tasks others have shared with you.
- Zoom segmented control. Eight buttons:
1W,2W,3W,1M,3M,6M,1Y,All. Shorter zooms keep day-level detail. Longer ones span many weeks. All currently shows an 8-week window starting from the current Monday, not a full-history view.Zoom segmented control and week navigator. The eight zoom levels set how many days each column represents. The navigator steps or jumps to any Monday. - Week navigator on the right. Step the visible window back and forward one week at a time, with a date picker for jumping to a specific Monday and a Today link that snaps back to this week.
- + Task and + Goal buttons at the far right of the toolbar to add a task or a high-level goal without leaving the chart.
Reschedule by dragging
Grab any bar and drag it to a different day. On drop, the task's start date moves to that day and its duration stays the same. Any downstream tasks linked through a dependency recompute their dates to keep their constraints valid. An FS (start-after) child of a moved parent slides forward to start the day after the new parent end.
Most cascades apply silently. The orange "This change will affect N task(s)" modal only opens when an SF (finish-before) chain would shift a task to start in the past. The modal lists every affected task with its old and new dates and a per-task warning line for the past-date conflicts. Apply Changes commits the cascade, and Cancel leaves the chain alone.
Chain two tasks with a dependency
A dependency captures the idea that one piece of bench work cannot sensibly begin (or end) until another one reaches a certain point. On the Gantt you express that by dragging one bar and dropping it on top of another. A popup then asks how the two tasks should be linked.
- Start at same time (SS). Both tasks begin on the same day. On the chart they line up at the same left edge.
- Start after (FS). The dragged task starts the day after the target finishes, so the two sit back to back with no overlap.
- Finish before (SF). The dragged task finishes the day before the target starts. This is a strict gap, where the predecessor clears the calendar entirely before the successor begins, so the two never share a day even when the predecessor is a single-day task.
Once you pick a relationship, the dragged task's start date snaps to whatever the dependency requires. Tasks in the same chain share the same colored top stripe, so you can trace a chain across bars. Drag a bar in the chain and downstream tasks shift with it.
See a whole chain at once with hover-highlight
Because bars pack into rows by date rather than by chain, the members of one dependency chain can end up scattered across the timeline. Two cues help you read them as a group. The first is always on. Each bar in a chain carries small chain-colored dots in its corner, where the dot count matches the chain length and the fully-opaque dot marks this task's position in the order.
The second cue is the hover treatment. Move your cursor over any bar that belongs to a multi-member chain and the whole chain lights up. Every bar in that chain stays at full strength and picks up a ring in the chain's color, while every bar outside the chain dims back so the group reads as one unit. Move off and the chart returns to normal. Solo tasks (a chain of one, with no peers) do not trigger the effect.
Filter with the multi-select project dropdown
The redesigned toolbar replaced the long pill row with a single dropdown. Here is how it works.
- Click Projects to expand the list.
- The default is all checked. The chart shows every project until you uncheck something.
- Select all at the top of the dropdown restores the everyone-checked default (useful after a long Unselect-and-pick session).
- Unselect all clears every checkmark in one click, so you can quickly re-tick only the one or two projects you want to focus on.
- The dropdown stays open while you click, so you can stage the right filter set without dropdown-bounce.
Standalone tasks have no project to filter by
Not every task belongs to a project. A quick experiment you spin up without filing it under a research question lives in the "Miscellaneous" standalone slot, with no project attached. Those orphan tasks used to vanish the moment you scoped the chart to a specific project, since they have no project key to match against.
The bottom of the Projects dropdown now carries a Standalone row (set off by a dashed divider and marked with a hollow dashed swatch and a small "no project" hint) whose tooltip reads "Toggle visibility of experiments with no project." Tick it to fold your standalone tasks back into the view alongside whatever projects you have checked, or untick it to hide them while you concentrate on real projects. It composes with the project checkboxes rather than replacing them, so you can show one project plus your standalone bucket at the same time.
To move a task into or out of that bucket, open the task and use the project dropdown in its detail popup. Alongside your real projects it lists a Standalone (no project) option. Picking it drops the task off every project, and picking a real project files an orphan task back under it.
Gantt for PIs
PIs land on the same Gantt UI as every member, but the timeline pulls from a wider pool. The project dropdown on the left of the toolbar now spans every member's projects across the lab, not just the PI's own. One scroll of the chart shows the whole lab's work side by side.
That changes what the page is for. For a member, the Gantt is a personal schedule. For a PI, it becomes a coordination surface. Dependency chains can stretch across users, the project dropdown doubles as a per-member filter (untick a student's projects to focus on a co-PI's timeline), and rescheduling a bar cascades downstream tasks regardless of who owns them. The interaction model stays identical, but the decisions you make on the chart land on more people at once.
Attach an image to a task
To file a gel image or a microscope snap, click the bar to open the task, then drag the image file from Finder onto the open popup card. The drop works anywhere on the card, so you do not have to aim at a specific field. The image saves to the task's Images folder and shows up in the image strip, and a toast confirms it was added to Lab Notes.
Dropping a file does not splice a reference into the notes body. That stays your call. When you want the image to appear inline in your notes, drag it out of the strip and into the notes editor, and ResearchOS places the reference where you drop it.
Mark a day as PTO
Right-click any day cell in the date grid to open a context menu with a Mark as PTO / Unmark PTO option. Marked days render with sky-blue diagonal stripes and a small dot in the day header so they stand out at a glance. When a cascade computes new dates for chained tasks, PTO days are skipped, so dependent tasks slide past your time off automatically.
PTO marks are per-user (your time off is private), so a labmate looking at the same chart will not see your stripes unless they are viewing through a PI dashboard that aggregates across members.
Goals on the timeline
Goals appear in two places. Above each week's day headers, every active goal that overlaps the week renders as a thin colored bar (longer goals sit lower). Hover one for a tooltip showing the goal name and days remaining (or overdue). Click a bar to open the goal editor.
The Goal sidebar on the right lists active goals as cards. Each card surfaces SMART subgoals as checkboxes so you can tick them off without leaving the chart. Use the + Goal button in the toolbar to add a new high-level goal.
Open a task
Click a bar to open the task detail popup, where you can edit name, dates, tags, attached methods, notes, results, and subtasks. The popup is the same one used by the Workbench and the calendar, so changes here sync everywhere.