Laravel
Skip to main content

Admin driver schedules

← Back to Help

Manage home time policies, driver schedules, and dispatcher approvals from People & access → Driver schedules (when the driver schedules feature is enabled). Use the section tabs on that page for Directory, Approval queue, Policies, Home terminals, and Capacity.

Home terminals

Define yards/terminals on the Home terminals tab (name, address, IANA timezone). Assign each driver's Home terminal on their Profile. Schedule dates in the UI use that timezone; the database stores UTC instants. A terminal is required before generating a schedule.

Schedule policies

Open the Policies tab to define OTR minimums, earned home days, and lifecycle versions. Activate a policy version before generating schedules.

Schedule directory

The Directory tab lists each driver's published and draft versions. Generate new drafts and publish after policy evaluation from there. The dispatcher system role has the same schedule tools as admin (including publish-with-violations override) except Schedule policies (create/edit home time rules), Delete schedule, and schedule audit. Dispatchers on custom roles without admin.schedules.view_any only see drivers currently assigned to them on Dispatcher assignments (not the legacy schedule-row column alone).

When generating a draft, choose an OTR cycle start date and Planning horizon (days) (default 365). The system builds alternating OTR and earned home windows through that period.

Schedule detail (published view)

Open a driver from the directory to see the same read-only timeline drivers see on My schedule: OTR cycle start, policy version, home time accrual, and a Timeline with List and Calendar views. Version history and danger-zone actions (discard draft, delete schedule) appear below the timeline.

Modify a published schedule

When a published version exists and no driver change request is pending approval, use Modify schedule to copy the published segments into the draft editor. Adjust segments, Save & review, then publish from the preview (same flow as a new draft). The prior published version is superseded. If a draft already exists, Modify schedule asks for confirmation before replacing it with a copy of the published schedule. Continue editing draft opens the in-progress draft without resetting it.

While a request is in the Approval queue with status Pending, modify is blocked until you approve, deny, or modify that request.

Draft editor

Open a draft to adjust segment dates. Each segment heading shows its type and inclusive day count (for example, Segment 1 — OTR for 21 days). Changing a home or OTR window automatically shifts all following segments so there are no gaps or overlaps. Optional policy override per segment requires a reason of at least 10 characters. Live Policy status groups violations by rule and lists the UTC home-period dates for each affected cycle. When a segment violates policy, its heading and fieldset border turn red, and the offending date is highlighted in red so you can spot the problem quickly. Minimum-OTR violations highlight the OTR segment that is too short (its end date). When home time starts before the minimum OTR period ends, the home segment start date is highlighted instead. Save & review saves segments and opens the publish preview (policy check before you publish). Back without saving leaves the draft unchanged (pressing Enter in a date field does not save). Discard draft on the draft editor removes the draft; for draft-only schedules that removes the row from the directory. Delete schedule (full removal) is on the schedule detail page, not the draft editor.

Approval queue

When a driver submits a change that violates home time policy, the request lands in Approval queue with a before/after segment diff. Before and After columns use different background colors. Each side shows the segment type, UTC dates, and inclusive day count (for example, Home · 2026-06-12 → 2026-06-14 (3 days)). Changed rows are emphasized; After cells that violate policy get a red highlight.

Use one Note to driver and three actions:

  • Approve and Publish — accept the driver's proposal and publish (policy-violating approvals require a note of at least 10 characters).
  • Modify Request — open the full draft editor with the driver's proposed segments, live policy validation, save/review, and publish preview (same flow as editing a schedule draft).
  • Deny Request — reject the change.

Filter the queue by policy status, driver name, dispatcher, or request status. Status defaults to Pending; choose All to list every change request.

Resolved requests show Approved or Denied. Approved rows include a detail label when applicable: Auto approved (policy), As proposed, or Modified by dispatch.

Delete and discard draft

From the Schedule directory or a driver's schedule detail page, admins with admin.schedules.delete can Delete schedule (removes all versions and change requests; cannot be undone). With admin.schedules.generate, admins can Discard draft to remove only the current draft; if there is no published version, the schedule row is removed from the directory too. Confirm dialogs warn when a published version or pending change requests will be affected.

Capacity rules

Open the Capacity tab (or go to /admin/schedules/capacity) to set tenant defaults:

  • Max concurrent home drivers — warning when too many drivers are scheduled at home at the same time.
  • Max home percent of active — warning when the share of active fleet drivers at home exceeds the limit.

Capacity checks appear as evaluation warnings (not hard blocks). JSON snapshot: GET /admin/schedules/capacity-check.