Deucalion Docs
Scheduler Reference
ReferenceAn information-oriented lookup resource. Use it to find specific values and definitions.
adminschedulerfiltersurl-statereferencepostcoderegionequipment

Filters and URL State Reference

Complete reference for all scheduler filter parameters, URL state management, focus tabs, and mutual-clearing behaviour.

Before you start

  • You are familiar with the scheduler layout and filter bar from the views guide.

Expected outcome

You understand every filter parameter, how they interact, and how URL state enables bookmarking and sharing of scheduler views.

Filter parameters

All filters are applied server-side in getSchedulerData() and reflected in the URL query string.

ParameterFormatExampleBehaviour
startISO 8601 date2026-04-14Window start; defaults to current week
endISO 8601 date2026-04-20Window end; defaults to current week
engineerIdUUIDabc-123-defExact match on assigned engineer
siteIdStringsite-456Exact match on site
jobTypeStringinspectioninspection, work_order, or task
statusStringpendingpending, in_progress, completed, cancelled
qStringsmoke ventCase-insensitive search across multiple fields
regionCSVLondon,ScotlandExpanded to constituent postcode areas
postcodeAreaCSVSW,E,MExact match on extracted postcode area (uppercase)
equipmentCSVmewp,scaffoldNormalised to lowercase; OR semantics
oohBoolean stringtrueStrict boolean comparison on outOfHours

Geographic filter details

Postcode area

Postcode areas are extracted from site postcodes using the pattern ^([A-Z]{1,2}) — the first 1-2 letters of a UK postcode. For example, SW1A 1AA yields area SW.

The 67 Royal Mail postcode areas are mapped to 11 UK regions:

RegionPostcode areas
ScotlandAB, DD, DG, EH, FK, G, HS, IV, KA, KW, KY, ML, PA, PH, TD, ZE
Northern IrelandBT
North EastDH, DL, NE, SR, TS
North WestBB, BL, CA, CH, CW, FY, L, LA, M, OL, PR, SK, WA, WN
Yorkshire & HumberBD, DN, HD, HG, HU, HX, LS, S, WF, YO
East MidlandsDE, LE, LN, NG, NN, PE
West MidlandsB, CV, DY, HR, ST, SY, TF, WR, WS, WV
East of EnglandAL, CB, CM, CO, EN, HA, HP, IG, IP, LU, MK, NR, RM, SG, SS, UB, WD
LondonBR, CR, DA, E, EC, KT, N, NW, SE, SM, SW, TW, W, WC
South EastBN, CT, GU, ME, OX, PO, RG, RH, SL, SO, TN
South WestBA, BH, BS, DT, EX, GL, PL, SN, SP, TA, TQ, TR
WalesCF, LD, LL, NP, SA

Mutual-clearing behaviour

Region and postcode area filters are mutually clearing:

  • Selecting a region clears any active postcode area selection
  • Selecting a postcode area clears any active region selection

This prevents contradictory filters (e.g. "London" region with "AB" postcode area).

Equipment filter

Equipment values are normalised to lowercase and matched with OR semantics:

  • ?equipment=mewp,scaffold matches jobs that require MEWP or scaffold (or both)
  • Query values are trimmed and lowercased before comparison

The 7 canonical equipment values: mewp, scaffold, tower_scaffold, ladder, cherry_picker, rope_access, harness.

Search filter

The search field (q parameter) performs case-insensitive substring matching against a concatenated haystack:

Searched fieldSource
Job titlejob.title
Job subtitlejob.subtitle
Site namejob.siteName
System namejob.systemName
Engineer namesjob.engineerNames (space-joined)
Postcodejob.postcode

URL state parameters

Beyond filters, the scheduler stores view and panel state in the URL:

ParameterPurposeValues
viewActive planner viewboard, day, week, map
listPlanner list visibilitytrue, false
listModeList display modefull, compact
filtersFilter panel visibilitytrue, false
guidanceGuidance rail visibilitytrue, false
guideActive guidance sectioncapacity, routes, deployment, changes
panelActive detail panelVarious panel identifiers
selectedSelected job keysCSV of entityType:id keys
focusActive focus taball, blocked, flagged, unassigned, unscheduled, draft, ready, deployed, awaiting, acknowledged
timelineDateTimeline dateISO date
timelineModeTimeline modeday, week

localStorage persistence

These preferences persist across sessions in the browser:

KeyWhat it stores
Active viewLast-used planner view (board, day, week, map)
Timeline modeDay or week
Panel statesGuidance rail open/closed, list visible/hidden

Focus tabs

Focus tabs apply an additional client-side filter on top of the server-side filtered job set:

TabFilter logic
AllNo additional filter
Blockedjob.validationWarnings.some(w => w.severity === "blocking")
Flaggedjob.validationWarnings.length > 0
Unassignedjob.engineerIds.length === 0
Unscheduledjob.scheduledDate === null && job.targetMonth === null
Draftjob.deploymentState === "draft"
Readyjob.deployReady === true
Deployedjob.deploymentState === "deployed"
Awaitingjob.deploymentState === "deployed" && !job.engineerAcknowledgedAt
Acknowledgedjob.deploymentState === "deployed" && Boolean(job.engineerAcknowledgedAt)

Sort order

Results from the server are sorted by:

  1. scheduledDate ascending (scheduled jobs first)
  2. title A-Z (alphabetical within the same date)

Unscheduled jobs (null date and null target month) appear after all scheduled jobs.

On this page