Deucalion Docs
Scheduler Reference
ReferenceAn information-oriented lookup resource. Use it to find specific values and definitions.
adminschedulerdrawersdialogsquick-viewbulk-updateday-runreference

Drawers and Workflows Reference

Reference for scheduler drawers, dialogs, and workflows — Quick View, Bulk Update, Task, slots, day planning, arrival windows, recurring work, deployment, warnings, and field resources.

Before you start

  • You are familiar with scheduler operations from the how-to guides.

Expected outcome

You can identify every scheduler drawer, dialog, and workflow, understand what it does, and know its fields, validation rules, and keyboard shortcuts.

Quick View drawer

Trigger: Click any job card in the work queue, board, or timeline.

Component: SchedulingJobQuickViewDialog.jsx

Sections

SectionContent
HeroTitle, site, system, entity type icon, current warnings
Latest changeWho changed what, when (from scheduler history)
Validation warningsBlocking and non-blocking warnings with explanations
Site scheduling rulesAccess windows, contact requirements, parking notes
Edit fieldsAssignees, scheduling intent, duration, status, priority, booking status, engineer visibility, and arrival window
Action buttonsClose, Full edit, optional Open record, task reopen/cancel, and Save quick edits

Editable fields

FieldInputConstraints
AssigneesMulti-select engineer pickerOnly canBeScheduled engineers; inspections cannot clear every assignment
Scheduling intentToggle: exact date vs target monthMutually exclusive
Scheduled dateDatetime pickerISO format
Target monthMonth pickerYYYY-MM format
DurationNumber input15-1440 minutes
Arrival windowAutomatic, none, or a named workspace windowExact-dated visits can use automatic matching or an explicit reusable window.
Booking statusDropdownProvisional, date offered, confirmed, or do not move.
Engineer visibilityFrom/until datetime inputsOptional; until cannot be before from.
StatusDropdownTasks only: pending, in_progress, completed, cancelled
PriorityDropdownWork orders and tasks: low, normal, high, urgent

Save behaviour

  • Sends a single-job update to the server
  • Validates against scheduling constraints and blocking warnings
  • Refreshes the overview on success
  • Closes the drawer on success

Bulk Update drawer

Trigger: Select jobs → click Bulk edit in the selection dock.

Component: SchedulingBulkUpdateDialog.jsx

Capacity: 1-100 jobs.

Toggle switches

Each field group has an independent toggle. Only toggled-on fields are sent to the server.

ToggleFieldInputConstraints
AssigneesCrew assignmentKeep current, clear, or set an explicit list of canBeScheduled engineers
DateScheduling intentToggle + datetime/month pickerMutually exclusive date vs month
Booking statusCustomer booking stateDropdownProvisional, date offered, confirmed, or do not move.
Engineer visibilityField visibility windowFrom/until datetime inputsOptional; until cannot be before from.
DurationEstimated durationNumber input15-1440 minutes
WindowSchedule windowStart/end datetime pickersDisabled when target month selected
FlexFlex toleranceNumber input0-120 days; disabled when target month selected
PriorityPriority levelDropdownlow, normal, high, urgent
StatusStatusDropdownTasks only
Crew sizeCrew requiredNumber input1-50
EquipmentAccess equipment7 checkboxesmewp, scaffold, tower_scaffold, ladder, cherry_picker, rope_access, harness
Out of hoursOOH flagToggleBoolean

Prepopulation

  • Single job selected: Form fields prepopulate from that job's current values. Toggles remain off.
  • Multiple jobs selected: Form fields use defaults (crew: 1, equipment: [], OOH: false). Toggles remain off.

Validation

  • At least one toggle must be enabled
  • At least one job must be selected
  • If the update would introduce new blocking warnings, the server rejects it
  • Inspection status cannot be changed via bulk update
  • Work order status cannot be changed via bulk update

Accessibility

All three operational toggle rows use aria-labelledby linking the toggle label to its checkbox input. The crew-size input uses htmlFor/id association.


Task dialog

Trigger: Click New (create) or edit an existing task.

Component: SchedulingTaskDialog.jsx

Fields

FieldRequiredInputConstraints
TitleText input2-200 characters
TypeDropdownsurvey, dilapidation, remedial, maintenance, other
DescriptionTextareaUp to 5,000 characters
SiteSearchable dropdownPopulates system options when selected
SystemDropdown (populated after site)Requires site selection first
AssigneeEngineer dropdowncanBeScheduled engineers only
StatusDropdownpending, in_progress, completed, cancelled
Scheduling intentToggleExact date or target month (mutually exclusive)
Scheduled dateDatetime pickerISO format
Target monthMonth pickerYYYY-MM format
DurationNumber input15-1440 minutes
WindowStart/end datetimeDisabled when target month selected
FlexNumber input0-120 days

Day Run Builder dialog

Trigger: Click Build day run in the page header, or select jobs for one engineer and click Build run in the selection dock.

Component: SchedulingDayRunDialog.jsx

Inputs

FieldInput
EngineerDropdown of canBeScheduled engineers
DateDate picker

Algorithm

The day-run builder scores candidate jobs:

FactorPointsDescription
Unscheduled+14No date or target month
Unassigned+12No engineer assigned
Urgent priority+18Priority is urgent
High priority+12Priority is high
Window urgency+12-16Near end of scheduling window
Same postcode area+10Shares area with previous stop
Distance proximity+3-10Inversely proportional to haversine distance

Travel: haversine at 32 km/h + 10 min overhead per stop.

Output

An ordered route of stops with estimated travel times. The user can reorder stops before applying.

Apply

Sets the scheduled date for each stop. Existing crews are preserved; the chosen engineer is added only when a stop is otherwise unassigned.


Propose Slots dialog

Trigger: Select jobs and click Propose slots.

Choose a date range, optional engineer constraints, and whether to keep current assignments. The preview ranks suggestions for every selected job. Changing the selection or any form input invalidates the old preview. Decline unwanted rows individually, then accept the remaining suggestions through the guarded bulk update. A successful apply offers undo.


Re-plan Day dialog

Trigger: Open the day replanning action for a planner date.

Choose whether to redistribute the day or shift it. Review affected customers, the proposed crew/date changes, and any unplaced work before applying. The workflow preserves unaffected crew and offers undo after a successful apply.


Arrival Windows manager

Trigger: Click Arrival windows in the Scheduling header.

Arrival windows are reusable customer promises interpreted in Europe/London time. Equal start and end times mean all day; an end earlier than the start means overnight. Labels are unique within the workspace. A window already referenced by work, or used by an undo record, cannot be edited or deleted; archive it and create a replacement. Quick View can use the automatic site/default window or a manual window for the individual job.


Batch Inspection dialog

Trigger: Click Batch schedule visits in the page header.

Component: SchedulingBatchInspectionDialog.jsx

Fields

FieldRequiredInput
SiteSearchable dropdown
SystemsMulti-select (populated after site)
Inspection typeAnnual or 6-monthly
EngineerEngineer dropdown
Scheduling fieldsDate, duration, window, flex

Capacity: Up to 50 inspections per batch.

Preview: Shows inspection count before creation.


Recurring Import dialog

Trigger: Click Import recurring work in the page header.

Component: SchedulingRecurringImportDialog.jsx

Steps

  1. Upload a CSV file with required columns
  2. Review the preview (creates, updates, skips)
  3. Choose conflict policy:
PolicyBehaviour
SkipLeave existing jobs untouched
UpdateOverwrite existing job scheduling
RebalanceDistribute work evenly across the period
  1. Apply the import

Deploy Preview and Apply

Trigger: Select jobs → click Deploy in the selection dock.

Preview

Shows each selected job with its deployment readiness:

  • ✓ Ready to deploy (passes all checks)
  • ✗ Blocked (with reason — e.g. "no engineer assigned")

Apply

  • Sets deploymentState to deployed
  • Records deployedAt and deploymentBatchId
  • Clears engineerAcknowledgedAt (resets acknowledgement so the engineer must re-acknowledge)
  • Queues email notifications to assigned engineers
  • Logs the action for audit and undo

After deployment, badges show Deployed ○ (awaiting acknowledgement). When the engineer opens their day run, badges update to Deployed ✓.


Warnings dialog

Trigger: Click warning icon or "Explain warnings" in Quick View.

Component: SchedulingDialogs.jsx

Shows the full list of validation warnings for a job or selection with severity, description, and resolution guidance.


Field Resources dialog

Trigger: Click Field resources in the page header.

Component: SchedulingDialogs.jsx

Manages field-work eligibility, competency requirements, and scheduling capacity for engineers in the workspace.

On this page