Skip to main content
IoTFlows - Return to homepage

Command Palette

Search for a command to run...

View as Markdown

Plan jobs on the scheduler board

Five views of the same schedule, and how to move work between machines and people.

The scheduler board holds every production work order your plant has open. It is one dataset drawn five ways, and switching views changes nothing about the schedule, only what you can see and what you can grab. This page covers all five views, the controls they share, and the Gantt-only controls that make dates on the board mean the same thing as dates in the plant.

Before you start

  • Production Scheduler is part of the Scheduling Engine module. The tab strip renders for every organization, so seeing the Scheduler tab is not proof you are entitled to it. If you are not sure, contact IoTFlows.
  • You need membership of the scheduler board. That is a board-level permission rather than an organization role. See Give people access to a scheduler board.
  • The board schedules operations, so your parts need routings before anything can land on it. See Create parts and operations.

Open the board

Go to Production, then the Scheduler tab, at /production?select=scheduler.

Three words carry the whole page. A job is the order: a part and a quantity, like 400 of MS-7420 Manifold. A task is one operation of that job on one machine, like OP20 Mill on Haas VF-2, and tasks are what you see on the board. A board is the scheduler itself, with its own member list.

The board opens in whichever view you used last. On a first visit that is Table. The view is remembered in your browser rather than in the URL, so a link you paste to a colleague opens on their view, not yours.

The Scheduler tab of the Production page, full width. A control bar across the top holds a search button, a view pill and a group-by pill, both drop-downs, a compact-mode toggle, a three-part status filter with Active selected, and on the right Import, Jobs, Invite and Create buttons. Below it, rows of work orders sit under collapsible machine headings reading HAAS EC-1600 with seven tasks and HAAS VF-2 with thirteen, each row carrying a work-order number, a title, a due date that turns red once it has passed, an operation name, a status chip and a time.The scheduler board at /production?select=scheduler, in List view. The same schedule is available in five views from the view pill in the control bar.

Which view answers which question

ViewBest forDrag to reassignEdit in placeDependencies
ListReading the backlog top to bottom, groupedNoStatus onlyNot shown
TableComparing fields across many tasks, and exportingYes, rows between groupsMost columnsDependent on column
GanttSequence, overlap, dependencies and capacityYes, bars between lanesDates and durations, by draggingArrows between bars
KanbanMoving work between machines, jobs or peopleYes, cards between columnsTitle, time estimate, status, assigneeDependencies card field
CalendarSeeing the week the way the floor sees itNoDates and durations, by draggingNot shown

Use Gantt when sequence and dependencies are the problem, Kanban when the question is who or which machine owns a task, and Table when you are about to export. Calendar is the one to open when somebody asks what Tuesday looks like.

List view

List is the flattest view: one row per task, under a heading for each group. A row carries its status chip, title, operation, assignees and due date, and turns its due date red once it has passed.

Clicking the status chip changes the status without opening anything. Nothing else on the row is editable, and you cannot drag a row anywhere. Open a task by clicking it, and it fills the panel on the right.

Table view

Table is the default view and the only one with a CSV button. Each row is a task and each column is a field, with the columns you are not using turned off rather than deleted.

The always-on columns are Workorder, Assigned To, Operation, Required Qty, Machine and Part of Job. Every other column is optional, and only Quantity Progress and Status are on out of the box. Turn the rest on from the column control, drag the headers into the order you want, and both choices are remembered in your browser.

Most cells edit in place. Click a cell, change it, and the board writes the work order as you leave the cell.

The scheduler in Table view, full width, grouped by asset. A machine heading row reads Haas EC-1600, and the seven rows beneath it carry columns headed Workorder, Assigned To, Operation, Required Qty, Machine, Part of Job, Quantity Progress and Status. Each row starts with a drag handle, and the assignee names are redacted. A CSV button sits at the right of the control bar above the table.Table view, grouped by asset. Each row is one task and each column a field; this is the only view with a CSV button.

Column meanings are in Job and scheduler fields, which is also the column list for the export.

Gantt view

Gantt draws each task as a bar on a time axis, in a lane per machine, job or person. It is the only view that shows how work overlaps, and the only one that draws dependencies as arrows.

A bar's right edge is its due date, which is the anchor. The start is worked backwards from the duration, so shortening a task moves its start and leaves its due date alone. A task with no duration of its own is treated as an hour long.

Drag a bar to move it, drag either edge to resize it, and drag it into another lane to reassign it. Click selects; double-click or right-click then View work order opens the panel. Hold Ctrl and click a bar to select everything up and down its dependency chain.

The scheduler in Gantt view, full width, with the machine filter set to two machines. A left rail lists the Line 10 and Press 4 lanes, each with a name, a machine identifier and a task count, and one row per task beneath it. The plot to the right shows task bars under a two-tier date header running Thursday 17 to Saturday 26 September, with a red NOW line through Saturday 19. A grey connector elbows from the OP10 PL-3080 Cover Plate bar on Press 4 up to the OP20 bar on Line 10, and a violet arrow traces it. A toolbar above the chart holds Sequence, Working hours, Work sessions and Optimize pills, an issue count and Simulations.Gantt view, grouped by asset, with dependency arrows drawn between bars. Use it when sequence and dependencies are the problem.

Three surfaces live on the Gantt and have pages of their own. Schedule issues lists everything wrong with the board, and is there even at zero: see Find and fix schedule problems. Optimize proposes a replanned schedule you can review before applying: see Optimize the schedule. Simulations turns the board into a draft that writes nothing until you commit it: see Try a schedule change without saving it.

Kanban view

Kanban draws one column per group and one card per task. The columns are the grouping, not the status: grouped by asset you get a column per machine, grouped by operator a column per person. A task's status is a chip on the card that you click to change, and there is no status-column board.

Drag a card to another column to reassign it. Click the title or the time estimate on a card to edit it in place.

The scheduler in Kanban view, full width, grouped by asset. Four columns are headed with a machine picture and name: Line 2, DMG MORI DMU 80 - SenseAi Embedded, Line 10 and Line 4. Each holds a stack of cards, and a card carries its work-order number, a priority chip, a group chip, a status chip reading On Hold, In Progress or Not Started, an assignee avatar, the task title, the machine and the job it belongs to. Cards on tasks that have made parts also carry a quantity-progress bar reading 2400 made against 6000 required.Kanban view, grouped by asset: one column per machine, and status as a chip on each card rather than as a column.

Calendar view

Calendar places each task on the day and time its due date falls, and is the only view with no grouping at all. Drag an event to move it and drag its edge to resize it, and both write the due date and the duration.

The scheduler in Calendar view, full width, showing the September 2026 month grid with a Today button, back and forward arrows and a Month, Week, Day switch. The first two weeks are empty and the last two carry a stack of task entries on each weekday, each a single line with a status icon and the task title, and a plus-three-more link where a day holds more than five. The control bar above shows Machines and Operations filter pills and no group-by pill.Calendar view, two weeks of the schedule placed by due date. It is the only view with no grouping control.

You probably do not want Calendar as your planning view. It has no lanes, so two tasks on the same machine at the same time look no different from two on different machines. Plan on the Gantt and use Calendar to answer date questions.

Group by asset, job or operator

The group-by pill sets what the rows, lanes and columns mean. It applies to List, Table, Gantt and Kanban, and carries in the URL as scheduler_group_by.

Group byThe question it answers
AssetWhat is this machine doing next
JobHow far through this order are we
OperatorWho is overloaded
NoneOne flat list of everything

Grouping by operator answers "who is overloaded"; grouping by asset answers "what is that machine doing next". Switch between the two rather than picking one, because a board that looks balanced by machine is often piled onto two people.

Regrouping is free. It does not reload the board and it cannot change what the board thinks is wrong: double-bookings and rule violations are read off each work order, not off the lane it happens to be sitting in, so the issue count is the same in all four groupings.

A cropped detail of the scheduler control bar. The group-by pill, an icon-and-chevron drop-down, is ringed in violet, and its open menu lists Asset, Job, Operator and None with a blue tick beside Operator. The view pill sits to its left, filled blue.The group-by pill set to Operator. Grouping by operator answers who is overloaded; by asset, what that machine does next.

Reassign by dragging

Dragging a task into another group reassigns it, and what gets written depends on the grouping: the machine when grouped by asset, the parent job when grouped by job, and the assignee when grouped by operator.

The write is optimistic. The task appears in its new home straight away, and goes back if the server refuses.

Two machine lanes of the Gantt, cropped: Line 10 with four task rows above, Press 4 below. The OP10 PL-3080 Cover Plate bar is held mid-drag out of the Press 4 lane, with a dashed path rising from it to a ringed ghost bar in a highlighted Line 10 row and a chip beside it reading Sep 24, 12:00 AM to Sep 24, 3:00 AM, then Line 10. A violet arrow traces the same path.A task mid-drag from one machine lane to another. Dropping it writes the new machine onto the work order.

Two limits are worth knowing before you try. On the Gantt, lane dragging reassigns only when the board is grouped by asset or job; grouped by operator the bars stay put, and you reassign the person from the Kanban, the Table or the task panel. And dropping anything into an Unassigned lane does nothing, because there is no machine or job to write. Clear the field from the task panel instead.

Edit in place

Most edits happen on the board rather than in a form. Every one of them writes a single work order immediately, and there is no Save button anywhere on this page.

WhereWhat you can change
Table cellTitle, assignees, quantity, machine, job, due date, time estimate, status, dependency, budget, notes and the other optional columns
Kanban cardTitle, time estimate, status, assignees
List rowStatus
Gantt barStart, duration and, by lane, machine or job
Calendar eventDue date and duration
Task panelEvery field, including the ones no view exposes

When a write fails, the board puts the old value back on screen and tells you. That is the behavior to rely on: if the value is still there after the toast, it did not save.

A cropped detail of Table view with the Due Date column turned on. A toast pinned to the top of the window, ringed in violet, carries a red cross and reads Issues updating due date. Three rows show below it under headings Part of Job, Due Date, Quantity Progress and Status, and the Due Date cell on the JOB-2784 row still reads Oct 1, 1:00 PM, the value it held before the edit.An inline edit that the server refused. The board reverts the change on screen and raises a toast naming the field.

Link dependent tasks

A dependency says one task cannot start until another finishes. Each task holds at most one.

On the Gantt, hover a bar, then drag from the small handle at its right edge onto the bar that follows it. The line turns invalid while you are over a target that would close a loop, and dropping it there raises That link would create a circular dependency and writes nothing.

Elsewhere, set it from the Dependent on column in Table or from the task panel. Remove a link by right-clicking the bar and choosing Remove dependency, or by clearing the field.

Dependencies drive the red bars. A task turns red when its own due date has passed, or when an unfinished predecessor cannot finish in time for it to start. A predecessor that is merely still open, but on schedule, leaves its dependents alone.

Schedule work that has no dates

A task with no due date is unscheduled. It is not hidden: on the Gantt it keeps a tinted row in the left rail, marked with a crossed-out calendar where the date would be, and a chip pinned down the left edge of the chart, inside its own machine, job or operator group. The group header counts them in a badge carrying the same icon.

Drag a chip onto the chart to schedule it. It snaps to the next sensible slot, after its predecessor or after the last task on that lane, and a task dragged in with no time estimate of its own takes a default duration of one hour. Set a real estimate afterwards, or the board is planning against a number nobody chose.

Chips select like bars, so you can schedule a backlog in one gesture: click one, Shift-click another to take the range, or use the group header's orange calendar pill to take every date-less task in that group, then drag the lot in. They land back to back from the drop point. Dragging a scheduled bar back over the left rail unschedules it again, and so does Clear date in its right-click menu.

The left portion of a Gantt board grouped by asset. The DMG MORI DMU 80 lane header carries a badge of a crossed-out calendar and the number 2, and the two amber-tinted rows below it end in that same crossed-out calendar icon where a date would be. Each of those rows carries a small chip pinned just right of the left rail, with a grip handle and the operation name. A violet arrow runs from the upper chip rightwards onto the chart, to a green dashed ghost bar marking the drop point, and a card beneath it reads Sep 16, 8:00 PM, finishes Sep 16, 9:00 PM, assigns to DMG MORI DMU 80 - SenseAi Embedded.Unscheduled work floats as chips down the left of the Gantt until you drag it onto the chart. Work dragged in with no time estimate takes a one-hour default duration.

Read the Gantt in Sequence view

Three pills above the Gantt change what the bars mean rather than what is on the board. All three remember their setting.

Gantt display modes

ModeShowsDisabled whenPersisted
SequenceEqual-width bars in execution order, with no time axisNeverYes
Working hoursDurations that consume shift time onlyNo shifts are set up for the organizationYes
Work sessionsA strip under each bar carrying what operators loggedSequence is onYes, and on by default

Sequence strips the time axis out and gives every task the same width, in the order the work runs. It answers "what comes after what" on a board where a three-day job and a twenty-minute one are otherwise incomparable. It is read-only: dragging a bar there has no time to write, so nothing moves. Zoom, the work-sessions strip and the capacity lane all switch off with it, because each of them is drawn against a time axis that Sequence does not have.

A Gantt board with the Sequence pill filled blue in the toolbar and ringed in violet. The header above the plot reads EXECUTION ORDER over numbered columns one to ten instead of dates, and every bar is the same width, placed in the column matching its position in the run order. The Work sessions and Optimize pills beside the Sequence pill are dimmed, as is the zoom bar. One bar is drawn in red with a dashed red link running to the task that depends on it.Sequence view: equal-width bars showing execution order only. There is no time axis, so work sessions and Optimize are unavailable here.

Turn on Working hours

Working hours makes durations consume shift time only. With it off, a 14-hour job started at 8am finishes at 10pm whether or not anybody is in the building.

Turn on Working hours before you trust any Gantt date. Without it a 14-hour job on an 8-hour shift finishes overnight on the board and tomorrow afternoon in the plant.

The pill is disabled until your organization has shifts, with the tooltip Set up work shifts in Organization Settings to enable working-hours scheduling. See Shifts and timezone. Once shifts exist, the board shades the off-shift stretches and every drag, resize and optimizer run respects them.

A cropped detail of the Gantt toolbar and the top of the chart. The Working hours pill, carrying a clock icon, is filled blue and ringed in violet, with the Sequence pill beside it inactive and Work sessions active. The plot below lays diagonal hatching over every off-shift stretch, and the task bars sitting inside those stretches carry the same hatch and a warning triangle. The issue count beside the pills reads 13 issues.The Working hours pill, on. Durations consume shift time only, so a 14-hour job on an 8-hour shift spans into the next day.

Compare the plan with what was logged

A work session is a stretch of time an operator clocked against a task, carrying the parts they made in it. The Work sessions pill draws those sessions as a strip under each bar, and it is on by default.

The strip is drawn in absolute time, not relative to the bar, which is the whole point: a session that started before the planned start hangs left of the bar, and one that ran past the due date hangs right of it. Blue is worked time, green means a session is running right now, amber means it finished past the due date, and the hatched gaps are idle stretches between sessions.

Click a segment to open that session's history, or right-click a bar and choose Work sessions. Unscheduled tasks get a strip too, because work gets logged against tasks nobody dated.

Two Gantt rows of one job, cropped. Under each planned bar sits a thin strip of logged session blocks. The top strip starts left of its bar and runs two blue blocks reading 180 and 220, either side of a hatched idle gap, ending in an amber tail past the bar's right edge. The bottom strip runs a blue 150 block, a hatched gap, then an In Progress block capped in green that reaches the red NOW line. A violet arrow runs from the top planned bar down onto the overrunning end of its strip.The work-sessions strip under each bar: what operators actually logged, against what was planned.

Read the capacity lane

The capacity lane is a band docked below the Gantt, drawn on the same time axis as the bars. It has no on-off switch. It appears when the board has something to put in it, and it holds two independent sections that fold separately from the lane's own header.

Capacity lane rows

RowShowsComes fromAppears when
ToolingHow many units of a reusable tool are left on the shelf over time, stacked by the work order holding themA reusable inventory item reserved on a task's required partsAny task on the board reserves that tool, or a task returns units of it
Projected output, partFinished parts of one part number over time, opening at what is on the shelf todayThe Create/Release Parts lines on each operationA work order on the board declares that it creates that part
Projected output, operationThe buffer waiting between one step and the nextThe scheduled quantities on each step of the routingThe part has more than one operation, for every step but the last

Tooling rows answer more than how many are taken at 2pm. Because the columns are stacked by work order, they also say which job is holding them and when it gives them back. A row crossing below zero is a shortage, drawn in rose.

Projected output is declared, never guessed. It is computed from the Create/Release Parts field on the operation, so a part nothing on the board declares gets no row, and a board that declares nothing gets no output section at all. That is the payoff for binding materials in the first place. See Link required and created parts to an operation and How work orders move stock.

The capacity lane docked below a Gantt board, its tooling row ringed in violet. The label cell reads FX-220 Vise Jaw Set over 8 of 10 sets left, and the plot beside it is a step chart drawn on the same time axis as the bars above: it opens at a dashed capacity line of 10, drops to 8 when a job takes two sets, dips to 7 and back to 8 twice as other jobs take and return theirs, and climbs back to 10 when the last job hands its sets in. Above the lane sit three Y841070 Bracket tasks and one MS-7420 Manifold task, the work those steps belong to.The capacity lane's tooling rows: units in use over time, stacked by work order, so you can see which job holds them and when it gives them back. The capacity lane docked below a Gantt board, whose Robot Line 3 lane holds two OP30 Hugo Benzing Ring rows. The lane opens with a Tooling capacity header over a thin FX-220 Vise Jaw Set heat strip, then a Projected output header. Under that, a part header row carries a round gear picture, the name Hugo Benzing Ring and the line 0 on hand, 10,000 by Sep 29, beside a green cumulative curve that climbs dashed and settles solid with the running total 6,000 printed on it. Two amber operation rows, OP10 and OP20, sit indented beneath. A violet arrow drops from the first OP30 bar on the board straight down to the point where the output curve steps up.The projected output row. It is computed from the Create/Release Parts field on an operation, so the curve forecasts finished parts across the scheduled work.

Zoom and move around

The bar along the bottom of the Gantt holds the navigation. Zoom in and out with the plus and minus buttons, jump to a density with the Hour, Day, Week and Month presets, fit the whole schedule on screen, or jump to now. The board opens on Day, and on the planned work rather than on wherever the history starts.

Hold Ctrl or Cmd and scroll to zoom at the cursor, which on a trackpad is a pinch. Plain horizontal scroll pans. The zoom controls are all inert in Sequence view.

Select bars and the same bottom bar grows a second half: nudge the selection an hour or a day either way, align every start to the earliest, distribute one after another honoring setup time and dependencies, or clear the dates entirely. Esc clears the selection.

Undo and redo

Every edit the board makes is undoable with Ctrl+Z, and Ctrl+Shift+Z puts it back. The undo button's tooltip names the change it is about to reverse, so you can check before you press it. The history holds the last 50 changes and is cleared when you enter or leave a Simulation.

Deleting is the exception and cannot be undone here. A deleted work order goes to trash on the server for 30 days, which is a different thing from a schedule change the board can invert, so it never enters the undo history.

Filter and search

Filters and search change what the board loads, not what it hides, so they apply to all five views at once and their settings live in the URL.

ControlFilters byShown when
MachinesDepartment and machineGrouped by asset or none, and always in Calendar
Parts and operationsPart and operationGrouped by job or none, and always in Calendar
Completion statusActive, Completed or All, with a lookback period on the last twoAlways

The status filter defaults to Active, which covers Not Started, In Progress and On Hold. Completed and All ask you for a period, because completed work goes back as far as your history does. The 1 day, 7 day, 30 day and 90 day periods are open to everyone; 1 year and 5 years need an Enterprise plan.

Search sits behind the magnifier in the control bar and matches work orders on the server. Filters that do not apply to the current grouping are dropped from the URL when you switch, so a machine filter does not quietly survive a move to operator grouping.

Compact mode and card fields

Two display controls narrow the board without changing it.

Compact tightens the rows. It is available on List, Table and Kanban, and each one remembers its own setting, so a compact table does not force a compact kanban. List starts compact; the other two do not.

Card fields decides what a kanban card carries, and only appears on Kanban. The list of fields follows the grouping, since a card in an operator column has no use for a person's name. Out of the box a card shows its part picture, job, assignee, machine, details and quantity progress. Reset puts the defaults back.

The card-fields gear button on the Kanban control bar, ringed blue, with its popover open beneath. The popover is headed SHOW FIELDS with a Reset link, and lists thirteen fields in two columns: Hero Image, Assignee, Qty Progress, Description, Operation, Asset, Quantity, Job, Due Date, Dependencies, Details, Timeline and Budget. Hero Image, Assignee, Qty Progress, Asset, Job and Details are filled blue; the rest are grey.The card-fields menu on Kanban, where you choose which fields each card carries. The list of fields follows the current grouping.

Export the table

The CSV button sits at the right of the control bar in Table view, and the Gantt toolbar repeats it as a download icon. No other view has one.

The file mirrors the table: it carries the columns you have turned on, in the order you dragged them, and ignores the grouping entirely, writing one flat list of every task the filters loaded. It adds one column the table does not have, a Part column immediately after Operation, because the screen renders both in a single cell.

Twenty-four columns are available in total, so a default export is nine of them and a fully expanded one is all 24. The file is named scheduler-tasks- and today's date, and it is written UTF-8 with a byte-order mark so Excel opens accented part names correctly. The column list is in Job and scheduler fields, and every other export in the product is in Exports reference.

A cropped detail of the right end of the scheduler control bar in Table view, showing a bordered pill button with a download icon labeled CSV, next to Import, Jobs and Invite buttons.The CSV button in Table view. It writes the columns the table is showing, in their current order, plus a Part column the table does not have.

When an edit fails

What you didWhat you seeWhat happened
Dragged a dependency onto a task that already feeds the first oneThat link would create a circular dependencyNo link was made
Moved, resized or reassigned one bar on the GanttUpdate failed, revertedThe bar went back where it was
Moved a selection of bars3 of 8 updates failed, revertedThe three that failed went back; the other five saved
Resized an event in CalendarResize reverted: Issues updating work orderThe event snapped back to its old length
Dragged an event in CalendarIssues updating work orderThe event snapped back to its old day
Changed a field in the task panelIssues updating due date, Issues updating asset, Issues updating priority, Issues updating group or Issues updating tasksThe field went back to its old value
Deleted from the GanttDelete failed, or 2 of 5 work orders could not be deletedThose rows are still on the board
Hovered a disabled Working hours pillSet up work shifts in Organization Settings to enable working-hours schedulingThe organization has no shifts yet

A generic Something went wrong or An error occurred means the request failed and nothing was saved. Try the edit again, and if it keeps failing, contact IoTFlows.

See also