Release Notes - Scheduling Module

Release Notes - Scheduling Module

In order to provide you with more detailed information on our updates, we have broken the Release Notes down by module. 


Enhancements

Personnel API - DELETE Support

What - The Personnel API now includes DELETE endpoint functionality, providing complete CRUD (Create, Read, Update, Delete) capabilities for personnel record management through programmatic API calls. This endpoint maintains consistency with existing GET and PATCH operations by using the same data structure, authentication patterns, and authorization controls to enable permanent removal of personnel records via API.

Why - This enhancement was implemented due to customer request to provide complete lifecycle management of personnel data through the API, eliminating the need for manual database intervention when removing personnel records from integrated systems.

How - To delete personnel records via API:

  • Authenticate using the same credentials as existing Personnel API endpoints (API key or OAuth token)
  • Obtain the personnel ID of the record to be deleted using a GET request to /fd-api/v1/personnel/{personnel_id}
  • Send DELETE request to the endpoint: DELETE /fd-api/v1/personnel/{personnel_id}

Notes
Note: Deletion is permanent and cannot be undone through the API. Appropriate permissions are required to delete personnel records. Users currently assigned as training instructors, in incident reports, or in EPCR cannot be deleted.

Use Case - A fire department integrating FirstDue with their HR system needs to maintain synchronized personnel records across both platforms. When an employee separates from the department, the HR system can now programmatically remove that individual's personnel record from FirstDue through a DELETE API call, ensuring data consistency without requiring manual administrative intervention in the FirstDue interface.


Off Roster Approval Routing with Work Type Subtypes

What - Administrators can now configure off roster approval routing with granular control by selecting specific work type subtypes in addition to work types. This enhancement allows organizations to direct off roster requests to the appropriate approvers based on both work type and subtype combinations, providing more precise approval workflow management. The subtype selector appears dynamically when a single work type with available subtypes is selected, and supports multiple subtype selections within that work type.

Why - This feature was added due to customer request for more flexible approval routing that accounts for specialized work categories within broader work types, ensuring off roster requests reach the most appropriate approver based on the specific nature of the work.

How - To configure subtype-based approval routing:

  • Navigate to SCHEDULING → SET UP → OFF ROSTER
  • Select a single work type from the available options
  • If the work type has subtypes, a subtype dropdown will appear below the work type selection
  • Select one or multiple subtypes as needed for this routing rule
  • Save the configuration to apply routing to the selected work type and subtype combinations



NotesNote: This feature only affects NEW approval routing configurations; all existing configurations remain unchanged. Subtype selection is only available for single work type configurations; selecting multiple work types automatically disables subtype selection and applies routing to all subtypes.

Use Case - A fire department has an "Administrative" work type that includes subtypes for "Training," "Equipment Maintenance," and "Community Outreach." With this enhancement, the department can route training-related off roster requests to the Training Chief for approval, equipment maintenance requests to the Apparatus Officer, and community outreach requests to the Public Information Officer—all under the same "Administrative" work type but with appropriate approver assignments based on the specific subtype.


New Rotation Patterns

What - The scheduling system now supports additional rotation patterns to accommodate diverse shift scheduling requirements across public safety organizations. New patterns include: 1 on / 1 off / 1 on / 9 off, 1 on / 19 off, 1 On / 26 Off, 1 on / 4 off / 1 on / 8 off, various 2-day on/off combinations, multi-week patterns including PD 28 Weeks, and complex extended rotation sequences with alternating on/off periods.

Why - These rotation patterns were added due to customer request to support specialized scheduling needs across different public safety agencies with unique operational requirements and staffing models.

How - To use the new rotation patterns:

  • Navigate to SCHEDULING → SET UP → ROTATIONS → RULES
  • Include the desired new rotation rules for your organization (new rotation rules are excluded by default)
  • Associate the rotation rules with a rotation configuration
  • Apply the rotation on the Shift Board as needed
  • Note: These rotation patterns can also be used when adding Kelly Days (based on rules) to user rotations
  1. 1 on / 1 off / 1 on / 9 off
  2. 1 on / 19 off
  3. PD 28 Weeks
  4. 6 on / 2 off / 5 on / 2 off / 5 on / 2 off / 5 on / 2 off / 6 on / 2 off / 5 on / 2 off / 5 on / 2 off / 5 on / 2 off / 6 on / 2 off / 5 on / 2 off / 5 on / 2 off / 5 on / 3 off / 5 on / 2 off / 5 on / 2 off / 5 on / 2 off / 5 on / 3 off / 5 on / 2 off / 5 on / 2 off / 5 on / 2 off / 6 on / 2 off / 5 on / 2 off / 5 on / 2 off / 5 on / 2 off / 6 on / 2 off / 5 on / 2 off / 5 on / 2 off / 5 on / 2 off / 5 on / 2 off 
  5. 1 On / 26 Off
  6. 1 on / 4 off / 1 on / 8 off
  7. 2 on / 2 off / 2on / 3off / 2on / 3 off
  8. 2 on / 3 off / 2on / 2 off / 2on / 3 off 
  9. 1 on / 2 off / 2 on / 2 off / 1 off /1 off / 2 on / 3 off
  10. 2 on / 3 off / 1on / 2 off / 2 on / 1 off / 1 on / 2 off
  11. 1 on / 1 off / 3on / 2 off

Use Case - A police department operating on a specialized 28-week rotation cycle can now accurately schedule their personnel using the PD 28 Weeks pattern, which alternates between 5-day and 6-day work periods with 2-3 day rest periods throughout the cycle. This ensures proper staffing coverage while maintaining compliance with their collective bargaining agreement and allows accurate tracking of work hours and rotation positions for all officers.


Time Clock Incident Window Restrictions

What - Administrators can now enforce time-based restrictions on when users can clock into incidents by defining a specific time window (in minutes, hours, or days) after a selected CAD dispatch status timestamp occurs. This feature validates clock-in attempts in real-time and prevents users from clocking into incidents outside the configured allowable time frame, displaying a clear error message when the window has expired or when the required CAD status timestamp is missing.

Why - This enhancement was implemented due to customer request to maintain accurate incident time tracking by preventing late or retroactive clock-ins that fall outside the operational window of an incident, ensuring payroll accuracy and compliance with time reporting requirements.

How - To configure incident clock-in windows:

  • Navigate to Time Clock settings
  • Toggle ON the clock-in window restriction setting
  • Select the CAD status from the "Clock In Window Based On Status" dropdown that will trigger the clock-in window (e.g., "En Route" or "Dispatched")
  • Enter the time frame value and select the unit (minutes, hours, or days) for how long after the status timestamp users can clock in
  • Save the configuration (all required fields must be completed)


Notes
Note: This restriction applies ONLY to incident-based clock-ins; all other time clock entry methods remain unaffected.
The incident list continues to display all current and previous day incidents; users only see errors when attempting to clock in outside the allowed window

Use Case - A fire department configures a 2-hour clock-in window based on the "Dispatched" CAD status. When an incident is dispatched at 2:00 PM, firefighters can successfully clock into that incident until 4:00 PM. If a firefighter attempts to clock in at 4:30 PM (outside the window), they receive an error message and cannot create a time punch, preventing inaccurate retroactive time entries and ensuring all incident time is captured within the actual operational period of the emergency response.


Availability Tab Filtering

What - Users can now filter the available personnel list in the Availability tab using multiple criteria simultaneously to quickly identify the right staff for shift assignments. The filtering system supports six categories (Group, Station, Shift, Rank, Division, District) that can be applied together using AND logic, with visual indicators showing the number of active filters and a one-click reset option to restore the full user list.

Why - This enhancement was implemented due to customer request to streamline workforce management and reduce the time required to locate appropriate personnel when making shift assignments, particularly for larger departments with extensive rosters.

How - To filter available personnel:

  • Navigate to SCHEDULING → Shift Board → Availability tab (right side panel)
  • Click the "Filters" button to open the filter drawer
  • Select desired criteria from one or more filter categories (Group, Station, Shift, Rank, Division, District)
  • Click Apply/Done to activate filters
  • The availability list updates to show only users matching all selected criteria
  • The Filters button displays a badge indicating the number of active filters
  • To clear filters: Click "Reset" or "Clear Filters" to restore the full user list



Use Case - A battalion chief needs to fill an unexpected vacancy on Engine 5's A-Shift and wants to find a qualified firefighter from Station 3 who holds the rank of Firefighter II. Using the filter system, they select "Station 3," "A-Shift," and "Firefighter II" rank, immediately narrowing the available personnel list from 50+ employees to 3 qualified candidates who meet all criteria, significantly reducing assignment time and ensuring appropriate staffing.


Chat Interface Close Button Restoration

What - The chat interface now includes a restored close button (X) in the interface header, allowing users to dismiss the chatbot when needed to prevent interface obstruction and enable seamless navigation within the product. The close button provides intuitive control over chat visibility with one-click dismissal while preserving conversation context for future interactions.

Why - This enhancement was implemented due to customer request after users reported difficulty navigating the product with the chatbot remaining open and obstructing access to other features.

How - To close the chat interface:

  • Locate the 'X' button in the top corner of the chatbot interface header
  • Click the 'X' button to dismiss the chatbot window from view
  • To reopen: Click the standard chat trigger button/icon to resume your conversation




Self-Service Shift Board Editing

What - Users can now edit and delete their own shift board entries without requiring administrator intervention through a new "Can edit self from shift board" permission with separate Edit and Delete sub-functions. This self-service capability allows users to modify entry times for individual days and remove entries, with automatic integration into existing time off and off roster approval workflows when users move themselves to those statuses.

Why - This enhancement was implemented due to customer request to empower users with greater schedule autonomy while reducing administrative workload and allowing faster schedule adjustments for individual personnel.

How - To enable self-service editing:

  • Admin Configuration: Navigate to user permissions in the Shift Board section
  • Enable "Can edit self from shift board" permission
  • Select desired sub-functions: Edit (modify entries) and/or Delete (remove entries)
  • User Workflow: Users will see pencil (edit) and delete icons only on their own shift board entries
  • To edit: Click the pencil icon → Modify time (date is locked) → Save changes for that single day only
  • To delete: Click the delete icon → Confirm deletion → Entry removed for that day only
  • Note: Users can only modify single-day entries; recurring entries cannot be edited
  • Note: Right-click context menus are disabled for all users with this permission
  • Note: Users cannot add themselves to vacant positions (future enhancement)

Use Case - A firefighter realizes they need to adjust their shift start time by 15 minutes for a single day due to a personal appointment. Instead of contacting their supervisor or administrator, they click the edit icon on their shift board entry, adjust the start time from 8:00 AM to 8:15 AM, and save the change. If they need to request time off instead, they can move themselves to time off status, which automatically triggers the department's standard time off approval workflow.




Bug Fixes

Vacation Bid Submission with Prior Time Off Entries

What - Resolved a critical validation error that prevented users and administrators from submitting vacation bids when users had prior Time Off entries on their rotation schedule. The system was incorrectly rejecting valid rotation assignments with false "Rotation does not occur on [date]" errors, blocking the entire vacation bidding workflow.

Why - This fix was implemented due to customer request after users with legitimate rotation assignments were unable to complete vacation bid submissions, causing workflow disruptions during vacation bidding periods.

How - The fix applies automatically to all vacation bidding workflows:

  • Users must be assigned to a rotation on the shift board for the requested vacation dates
  • Navigate to the vacation bidding interface and create a bid with vacation dates
  • Submit the bid through the standard workflow
  • The system now properly validates rotation assignments by correctly accounting for Time Off entries on adjacent dates
  • Bids are successfully saved and submitted without console errors, regardless of prior Time Off entries

Use Case - A firefighter assigned to A-Shift rotation submits a vacation bid for March 15-20. They previously used a Kelly Day (Time Off) on March 10. Before this fix, the system incorrectly flagged the March 15 rotation date as invalid due to the earlier Time Off entry, preventing bid submission. Now the system properly recognizes the valid rotation assignment for March 15-20 and allows the vacation bid to be submitted successfully.


Shift Board Drag-and-Drop Validation for Overnight Activities

What - Corrected the Shift Board's validation logic when dragging and dropping unassigned personnel to assignments by evaluating actual activity time frames instead of calendar dates. The system now properly assesses time overlap, allowing users to schedule personnel accurately regardless of calendar date boundaries—especially for activities spanning midnight.

Why - This fix was implemented due to customer request after users encountered false validation errors when scheduling overnight shifts, preventing valid personnel assignments that crossed midnight into the next calendar day.

How - The fix applies automatically to drag-and-drop operations:

  • Locate unassigned personnel in the Shift Board with the desired availability window
  • Identify the target assignment you want to schedule them to
  • Drag and drop the unassigned personnel entry onto the assignment
  • The system automatically validates based on actual time frame overlap, not calendar dates
  • If time frames overlap, assignment proceeds successfully
  • If no time overlap exists, the system prevents assignment with a validation error
  • Note: For partial assignments, the system correctly splits unassigned personnel entries and validates remaining slots

Use Case - A paramedic has unassigned availability from 6:00 PM on Monday to 6:00 AM on Tuesday (overnight shift). A supervisor needs to assign them to an ambulance that operates from 2:00 AM to 6:00 AM on Tuesday morning. Before this fix, the system incorrectly rejected this assignment because the calendar dates didn't match, even though the times overlapped. Now the system correctly recognizes the 2:00 AM - 6:00 AM window falls within the paramedic's 6:00 PM - 6:00 AM availability and allows the assignment.


Rotation End Date Updates with Multiple Consecutive Positions

What - Resolved an issue that prevented users from updating rotation end dates when a user had multiple consecutive assignments to different vacancy positions within the same shift board assignment using identical rotations. The system now properly handles scenarios where users fill different positions across the same assignment, allowing seamless rotation management without error messages.

Why - This fix was implemented due to customer request after users encountered validation errors when attempting to update rotation end dates for personnel assigned to multiple consecutive vacancy positions.

How - The fix applies automatically to rotation management:

  • Navigate to SCHEDULING → SETUP → ROTATIONS
  • Select the rotation used for multiple consecutive vacancy positions
  • Update the end date to a new future date
  • Click SAVE
  • The system now successfully saves the updated end date without displaying error messages
  • Note: Prerequisites include active assignments with defined first occurrence dates and configured rotations

Use Case - A firefighter is assigned to fill Position 1 (January 1-15) and Position 2 (January 16-31) within the same engine company assignment, both using the same 24-hour rotation pattern. The department needs to extend the rotation end date from January 31 to February 28. Before this fix, attempting to update the rotation end date generated a validation error. Now the system properly recognizes both consecutive position assignments and allows the rotation end date to be updated successfully.


Multi-Role User Permission Detection for Approval Routing

What - Corrected critical issues in the approval routing logic for Time Off and Shift Trade requests when users are assigned to multiple roles with varying permissions. The system now accurately evaluates permissions across all user roles and properly routes approval requests to on-duty users, ensuring that users with at least one qualifying role receive notifications and appear in approver selection dropdowns as intended.

Why - This fix was implemented due to customer request after users with multiple roles and appropriate permissions in at least one role were not receiving approval notifications or appearing as available approvers in the system.

How - The fix applies automatically to Time Off and Shift Trade workflows:

  • For Time Off: Navigate to SCHEDULING → Time Off → Request
    • The "Send request to" dropdown now displays only users with "Scheduling - Approve/deny time off" permission in at least one role
    • If "Notify on-duty" is enabled, on-duty users with the required permission in at least one role receive notifications
  • For Shift Trade: Navigate to Shift Trade → Request
    • The "Send approve request to" dropdown now displays only users with "Scheduling - Routing trade approval" permission in at least one role
    • If "Notify on-duty" is enabled, on-duty users with the required permission in at least one role receive notifications

Use Case - A battalion chief holds two roles: "Operations Chief" (with Time Off approval permissions) and "Training Officer" (without approval permissions). Before this fix, the system incorrectly excluded them from receiving on-duty approval notifications because not all their roles had the permission. Now the system correctly recognizes they have the required permission in their Operations Chief role and properly routes Time Off approval requests to them when they are on duty.


Vacation Bid Date Selection Across Non-Sequential Months

What - Resolved a bug that prevented users from selecting vacation bid dates across multiple months when chosen in non-chronological order. Users can now freely select dates from any months in any sequence without encountering errors, improving flexibility in the date selection workflow while maintaining the 1-year maximum range validation.

Why - This fix was implemented due to customer request after users encountered blocking errors when naturally selecting vacation dates based on their needs rather than calendar order.

How - The fix applies automatically to date selection:

  • Navigate to SCHEDULING → TIME OFF → Vacation BID
  • Open the date selection interface
  • Select dates from any month in any order (e.g., December → July → January)
  • Continue selecting additional dates from any months as needed
  • The system correctly processes all selections regardless of chronological order
  • Complete the date selection and save
  • Note: The 1-year maximum selection range constraint remains enforced

Use Case - A firefighter wants to use vacation time strategically throughout the year, selecting December 20-25 for holidays, then jumping to July 4-10 for summer vacation, then back to January 2-5 for New Year's. Before this fix, this non-sequential month selection triggered an error and prevented bid submission. Now the system accepts all date selections regardless of the order in which months are chosen, and the vacation bid is successfully saved.


Call Shift Ranking Tie Breaker Logic

What - Corrected the call shift ranking system to properly apply the "last date worked" tie breaker rule when multiple users have identical hours. The system was incorrectly sorting tied users by User ID instead of prioritizing users based on when they last worked, which prevented fair distribution of call shift assignments according to configured business rules.

Why - This fix was implemented due to customer request to ensure equitable rotation of call shift assignments by properly prioritizing users who worked furthest in the past when multiple users have the same accumulated hours.

How - The fix applies automatically to existing call shift rules:

  • When a call shift rule uses Hours Based ranking with "last date worked" tie breaker, the system ranks users by accumulated hours (lowest hours = highest priority)
  • When users have identical hours, the system applies the tie breaker by comparing "last date worked" timestamps
  • The user who worked furthest in the past (oldest date) ranks higher
  • The user who worked most recently (newest date) ranks lower
  • Note: Existing call shift rules automatically reflect correct rankings without requiring manual updates

Use Case - Three paramedics are tied at 24 accumulated call shift hours: Brandon last worked January 1, Sarah last worked January 15, and Mike last worked January 20. Before this fix, the system incorrectly ranked them alphabetically by User ID. Now the system correctly ranks Brandon #1 (oldest work date), Sarah #2, and Mike #3 (most recent work date), ensuring Brandon receives priority for the next call shift assignment as intended by the department's fair rotation policy.



    • Related Articles

    • Mobile App: Release Notes (May 2025)

      In order to provide you with more detailed information on our updates we have broken the Release Notes down by module. Video Current iOS Version 5.8.4 Current Android Version 6.9.4 New Features (iOS) Fire Investigations Menu Integration What: Fire ...
    • Release Notes - Scheduling Module

      In order to provide you with more detailed information on our updates, we have broken the Release Notes down by module. Feature Enhancements Cloning of Vacation Bids What: You can now clone vacation bids. Why: This was done to improve your experience ...
    • Release Notes - Scheduling Module

      In order to provide you with more detailed information on our updates, we have broken the Release Notes down by module. Enhancements Add Ability to Edit Ranking Number • What - Administrators can now directly edit call shift rankings by entering ...
    • Release Notes - Scheduling Module

      In order to provide you with more detailed information on our updates we have broken the Release Notes down by module. Feature Enhancements Qualifiers can be used multiple times. What: You are now able to use Qualifiers across multiple Call Shift ...
    • Release Notes - Scheduling Module

      In order to provide you with more detailed information on our updates we have broken the Release Notes down by module. Feature Enhancements Admin Entered Trades What: Administrators can now enter trades for end users. Why: This allows for greater ...