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

Off Roster and Accrued Time Off Update

What - This enhancement enables immediate processing of work type-based accruals when off-roster entries are approved, eliminating the previous delay where accruals were only processed during the midnight batch job and ensuring accruals are added to employee banks in real-time rather than waiting until the next day.

Why - This improvement was implemented due to customer request to provide immediate feedback on accrual calculations and reduce the delay between shift approval and bank updates that could impact payroll accuracy and employee visibility into their earned time.

How - To utilize this enhancement:

  • Ensure off-roster work types are configured with accrual rules in your system settings
  • Verify that employees have appropriate accrual banks set up in their profiles
  • Use the standard off-roster approval workflow through the Shift Board interface
  • Upon approval, the system automatically calculates and adds accruals to employee banks with built-in duplicate prevention

Use Case - When a firefighter works an off-roster overtime shift on Monday and the administrator approves it Tuesday morning, the employee's vacation or sick time accruals are immediately added to their available balance rather than waiting until the next day's batch processing, allowing for accurate real-time tracking of earned benefits.



Notification Settings Update

What - This enhancement allows users to customize how they receive notifications by selecting specific delivery methods including App Notification, Email Notification, and Notification Center for different notification types, enabling users to manage notification fatigue while ensuring they never miss critical updates.

Why - This feature was developed due to customer request to provide granular control over notification delivery methods and reduce notification overload while maintaining reliable communication for essential updates.

How - To configure notification preferences:

  • Navigate to User Profile → Notifications tab → Scheduling Options section
  • Use the three-column toggle interface to enable/disable delivery methods for each notification type
  • Ensure at least one delivery method remains enabled for each notification type (system validation prevents disabling all methods)
  • Click the Save button to persist your preferences



Use Case - A fire captain can choose to receive time-off notifications only via email while receiving trade notifications through both app and email channels, allowing them to customize their communication preferences based on the urgency and type of information while ensuring they remain informed of all critical scheduling updates.



Time Clock - Own Punches vs Employees

What - This enhancement addresses the filtering logic for time clock punches to ensure proper data access control by correctly filtering Own Punches to display only the logged-in user's records and restricting Employee Punches visibility based on appropriate permissions.

Why - This improvement was implemented due to customer request to enhance data security and ensure users only see time clock information they are authorized to access, preventing unauthorized viewing of other employees' punch data.

How - This feature works automatically based on user permissions:

  • Own Punches section displays automatically for all users with basic time clock access
  • Employee Punches section requires the Scheduling - Time Clock - View Time Clock Employees permission
  • Users without the employee viewing permission will see 0 rows in the Employee Punches section
  • No additional configuration is required beyond standard permission assignment



Use Case - A firefighter can view their own punch records in the Own Punches section to verify their time entries, while only supervisors with appropriate permissions can access the Employee Punches section to review and manage time clock data for their entire crew, ensuring proper data security and role-based access control.



Add Pending Off Roster to My Shifts

What - This enhancement improves shift visibility by displaying pending off-roster entries alongside approved entries in the My Shifts view, allowing users to easily track the status of their overtime submissions and ensure timely payroll processing without navigating between multiple views.

Why - This feature was developed due to customer request to consolidate shift information in one location and improve user experience by eliminating the need to check multiple screens for complete shift status information.

How - This enhancement works automatically:

  • Navigate to the My Shifts view as usual
  • Pending off-roster entries now display with clear Pending status indicators
  • Approved off-roster entries show with Approved status
  • All entries remain visible until payroll processing is complete
  • No additional configuration or permissions are required



Use Case - A firefighter who submitted overtime for three different shifts can now view all their regular scheduled shifts plus see which overtime requests are still pending approval and which have been approved, allowing them to follow up with supervisors on pending items and confirm their total expected hours for the pay period.



Update Call Shift Setting - Call Shift Rotation

What - This enhancement modifies call shift rotation behavior to honor contract-specified timing by allowing users to rotate to the bottom of the ranking list on the actual day of their shift rather than when they accept it, providing more accurate rotation timing that aligns with organizational contracts and ensures fair distribution of call shift responsibilities.

Why - This improvement was implemented due to customer request to align rotation timing with existing labor contracts and ensure fair distribution of call shift opportunities by preventing users from losing their ranking position simply by accepting shifts in advance.

How - To enable this feature:

  • Administrator must enable the call_shift_rotate_when_day_shift_arrives setting in Schedule Settings
  • Ensure call shift rotation rule is set to Last Date Worked (not Last Date Accepted)
  • The system automatically processes rotation changes on the morning of the actual shift date using local timezone calculations
  • Only affects call shifts using Last Date Worked rotation rules

Use Case - When a firefighter accepts a call shift on Monday for a Thursday shift, they maintain their current position in the rotation ranking until Thursday morning arrives, at which point they automatically rotate to the bottom of the list, ensuring their ranking reflects the actual work date rather than the acceptance date and providing fair rotation opportunities for all personnel.



Count Call Shifts towards Vacancies

What - This enhancement improves staffing visibility by incorporating unassigned 24-hour call shifts into the global vacancy count on the shift board, providing administrators with more accurate real-time staffing numbers by treating unassigned call shifts as potential coverage for vacant positions.

Why - This feature was developed due to customer request to provide more comprehensive vacancy tracking that reflects actual available coverage options and improves situational awareness for staffing decisions.

How - This enhancement works automatically:

  • System automatically identifies call shifts with exactly 24-hour duration
  • Unassigned 24-hour call shifts reduce the global vacancy count by 1
  • When call shifts are assigned or unassigned, vacancy counts update in real-time
  • Only 24-hour call shifts are included; partial shifts under 24 hours are excluded
  • No additional configuration is required

Use Case - When a fire station shows 5 vacant positions but has 2 unassigned 24-hour call shifts available, the vacancy display shows 3, giving the shift commander a more accurate picture that two positions could potentially be covered by call shift personnel if needed for emergency response.


Time Clock - Early Clock-In Configuration

What - A new time clock feature allows organizations to enable early clock-in capability with a configurable time window of 1-60 minutes before scheduled shift start times. Administrators can control this functionality through Time Clock settings with a simple toggle and numerical input, while the system preserves actual clock-in times for accurate payroll and reporting purposes. The feature includes validation controls that prevent clock-ins outside the allowed window and provides clear error messaging when users attempt to clock in too early.

Why - This enhancement was implemented due to customer request to accommodate operational needs where personnel may need to arrive and begin preparations before their official shift start time, while maintaining policy compliance and accurate time tracking for payroll purposes.

How - To configure early clock-in capability:

  • Navigate to Settings > Time Clock
  • Locate the "Allow Early Clock In" setting
  • Toggle the feature ON to enable early clock-in
  • Enter the desired early clock-in window (1-60 minutes)
  • Hover over the information icon to view the tooltip: "Allow users to clock in before their scheduled shift start time"
  • Save the configuration - settings persist across sessions and apply organization-wide
  • Note: System validates input and displays an error if the value exceeds 60 minutes
  • Note: When the feature is disabled, users will see the current behavior (no early clock-in option)



Use Case - A fire department configures a 15-minute early clock-in window for their 8:00 AM shift. Firefighters arriving at 7:50 AM can clock in immediately to begin equipment checks and station preparations. If a firefighter attempts to clock in at 7:40 AM (25 minutes early), the system displays an error explaining the early clock-in limit. The system records the actual clock-in time of 7:50 AM for payroll accuracy, rather than adjusting it to the 8:00 AM scheduled start time.



Time Clock - Day Total Source Selection

What - A new configuration setting has been added to the time clock module that allows organizations to select which source (Time Card or Time Clock entries) is used to calculate daily hour totals. This enhancement resolves double-counting issues for organizations using both time card and time clock entries simultaneously, while maintaining complete visibility and editability of both entry types. The setting is configured through a single-select dropdown on the time clock configuration page, and the selection applies organization-wide.

Why - This feature was developed due to customer request to address the issue where organizations with both time card and time clock entries were experiencing double-counted hours in their day totals, creating inaccurate payroll calculations and reporting discrepancies.

How - To configure the Day Total Source:

  • Navigate to the time clock configuration page (admin access required)
  • Locate the "Day Total Source" setting
  • Select either "Time Card" or "Time Clock" from the dropdown menu
  • Save the configuration
  • Note: Organizations with existing time clock functionality enabled will automatically default to "Time Clock" as their Day Total Source
  • Note: All other organizations will default to "Time Card" as their Day Total Source
  • Note: Both time card and time clock entries remain fully visible and editable regardless of which source is selected, but only edits to the selected source type will update the day total



Use Case - A fire department uses both shift board scheduling (time card entries) and biometric time clocks (time clock entries) for their personnel. Previously, when a firefighter worked a 24-hour shift and clocked in/out on the biometric system, the day total showed 48 hours (24 from the shift board + 24 from the time clock). After configuring the Day Total Source to "Time Clock," the system correctly displays 24 hours in the day total while both the shift board entry and biometric clock entry remain visible and editable when viewing time card details.



Compound Rotations - Accurate Start Date Calculation

What - The compound rotation creation process has been enhanced to calculate start dates based on the actual first occurrence of each rotation's recurrence pattern, rather than using artificial date offsets. The system now includes intelligent filtering that prevents users from selecting compound rotations when the first rotation doesn't occur on the selected start date, ensuring rotations appear on the shift board exactly when intended according to their frequency patterns.

Why - This enhancement was implemented due to customer request to address issues where compound rotations were not aligning with their actual recurrence patterns, causing rotations to appear on incorrect dates on the shift board and creating scheduling confusion.

How - The enhancement operates automatically during compound rotation creation:

  • When a user selects a start date for their user rotation, the system fetches available compound rotations
  • The system performs two-step validation to only display compound rotations where the first rotation occurs on the user's selected start date
  • Users select from the filtered list, ensuring their rotation will appear on the shift board as expected
  • Note: This change affects the underlying calculation logic but maintains backward compatibility with existing compound rotations

Use Case - A battalion chief creates a compound rotation with a start date of January 15th for a firefighter. The first rotation in the compound pattern follows a weekly recurrence (every Monday), and January 15th is a Wednesday. Previously, the system would create both rotations starting January 15th with an artificial offset, causing the second rotation to appear on incorrect dates. Now, the system calculates that the first Monday occurrence is January 20th and either filters out this compound rotation from the selection list or calculates the proper start dates, ensuring the firefighter's shifts appear on the shift board aligned with the actual weekly pattern.



Active Call Shift Polling - Performance Optimization

What - The polling interval for active call shift data has been optimized from 5 seconds to 30 seconds, and intelligent tab visibility detection has been implemented to ensure data only refreshes when users are actively viewing the page. The system automatically pauses polling when users switch away from the call shift tab and immediately refreshes data with current information when they return, reducing server load while maintaining data accuracy.

Why - This update was implemented due to customer request to improve system performance and reduce unnecessary server load caused by frequent polling requests, particularly when users had call shift details open in background tabs.

How - The feature operates automatically with no configuration required:

  • Active call shifts (with pending, scheduled, accepting, or denying statuses) automatically refresh every 30 seconds while the tab is visible
  • When a user switches away from the call shift tab to another browser tab or window, automatic polling pauses
  • When the user returns to the call shift tab, the system immediately fetches fresh data and resumes the 30-second polling cycle
  • Note: Closed call shifts (filled or unfilled) and "Ready For Awarding" call shifts continue to not poll for updates
  • Note: No configuration changes or user action required; feature is automatically enabled for all users

Use Case - A shift commander opens call shift details to monitor personnel acceptance status for an emergency staffing need. While waiting for responses, they switch to another browser tab to review incident reports. During this time, the system pauses polling requests, reducing server load. When the commander switches back to the call shift tab 10 minutes later, the system immediately displays the most current acceptance status and resumes 30-second polling, allowing them to see updated information without manually refreshing the page.


Time Clock - Manual Punch Entry

What - Administrators can now manually add time clock punches for users through both the Time Clock Management page and the Shift Board interface. This feature includes built-in validations to prevent duplicate entries, respects organizational early clock-in settings, supports shifts that cross midnight, allows optional notes up to 80 characters, and provides specific error messaging to guide proper entry. The system validates all entries against existing active punches and shift parameters to ensure accurate time tracking.

Why - This feature was developed due to customer request to provide administrators with the ability to create time punches for users who forget to clock in, ensuring proper shift tracking and allowing personnel to clock out normally at the end of their shift.

How - To manually add a time punch:

  • Navigate to Scheduling > Time Card > Time Clock History
  • Click the "Add Time Punch" button



  • Select a user from the shift board roster (system automatically checks for active entries)
  • Enter date: From Shift Board, only today's date can be selected; from Management Page, any valid date can be selected
  • Enter time in standard format (e.g., "03:40am") within the shift parameters
  • Add notes (optional, up to 80 characters)
  • Submit the entry



  • Note: A new permission "Time Clock - Can Add Time Punch" has been created and is automatically enabled for any user with "Can Edit Time Clock" permission
    • If user already has an active entry, an error displays: "[User Name] already has an active time clock entry. Please clock out the existing entry before creating a new one"
    • Time must fall between shift start and end times for regular shifts, or within the shift period for midnight-crossing shifts
    • Early clock-in times are validated against configured early minutes threshold

Use Case - A firefighter forgets to clock in at the start of their 8:00 AM to 6:00 PM shift. At 10:00 AM, the shift supervisor receives a call from the firefighter explaining they forgot to clock in. The supervisor navigates to the Time Card page, clicks "Add Time Punch," selects the firefighter from the roster, enters today's date and time as "08:00am," adds a note "Forgot to clock in - called supervisor at 10am," and submits the entry. The system validates the entry, creates the punch record, and the firefighter can now clock out normally at 6:00 PM without any timekeeping discrepancies.



Show Unavailable Users Toggle - Availability Tab

What - A new "Show unavailable" toggle has been added to the Availability tab that allows authorized users to view unavailable users within their results when needed. The feature is controlled by both a user-level permission (can_view_unavailable_users) and a system-level configuration setting in Scheduling Settings. The toggle state persists across sessions, unavailable users are visually distinguished when displayed, and backend validation ensures only authorized users can access unavailable user data. The toggle is dependent on 'Available' filters being active.

Why - This feature was implemented due to customer request to provide greater visibility into the full user roster when authorized personnel need to view both available and unavailable users for operational planning and decision-making purposes.

How - To configure and use the Show Unavailable feature:

  • Administrator Configuration:
    • Navigate to Scheduling > SET UP > Settings
    • Locate the "Show unavailable users feature" configuration option
    • Enable the setting to make the feature available to authorized users



  • Authorized User Access:
    • Navigate to the Availability tab within the Scheduling module
    • Ensure 'Available' filters are active (toggle dependency)
    • If you have the required permission and the feature is enabled, a "Show unavailable" toggle will appear
    • Click the toggle to enable it - the system will display both available and unavailable users (unavailable users will be visually distinguished)



  • Note: User must have can view unavailable users permission assigned

Use Case - A battalion chief planning coverage for an upcoming holiday period needs to see both available and unavailable personnel to understand the full staffing picture. With the "Show unavailable" toggle enabled in Scheduling Settings and the can_view_unavailable_users permission granted, the chief navigates to the Availability tab, activates the available filters, and clicks the "Show unavailable" toggle. The system displays all personnel with unavailable users visually distinguished (perhaps marked with approved vacation time), allowing the chief to identify gaps and plan callback assignments. The toggle preference is saved, so when the chief returns to this tab later, the view remains consistent with their previous selection.



Call Shift - On Duty Personnel Filter

What - A new "On Duty" toggle filter has been added to the call shift creation and edit interface that allows administrators to filter personnel lists to show only those whose scheduled shift ends at the exact time the call shift begins. The filter automatically updates when toggled or when the call shift start time is changed, the toggle state persists with the call shift configuration, and all existing eligibility rules (max hours, time off, exclusion rules) continue to apply to the filtered results.

Why - This enhancement was implemented due to customer request to streamline the call shift assignment process by automatically identifying personnel who are transitioning from their regular shift, making it easier to staff call shifts with on-duty personnel who are already present and available at the station.

How - To use the On Duty filter:

  • Navigate to the call shift creation or edit page
  • Locate the "On Duty" toggle control near other filtering options
  • By default, the toggle is OFF and displays all eligible personnel per existing call shift rules
  • Click the toggle to ON to activate the filter



  • The system displays only users whose scheduled shift end time matches the call shift start time
  • Hover over the toggle to see tooltip: "Show only personnel whose scheduled shift ends at this call shift's start time"
  • Change the call shift start time to automatically update filtered results
  • Toggle OFF to return to viewing all eligible personnel
  • Save the call shift to persist the toggle state for future edits
  • Note: Personnel shown must meet ALL criteria including no max hours restrictions, no approved time off conflicts, and not excluded by any applicable exclusion rules
    • If no users have shifts ending at the selected call shift start time, the system displays: "No on-duty personnel available for this time"

Use Case - A fire department needs to staff a call shift starting at 6:00 PM for a special event. The shift supervisor creating the call shift activates the "On Duty" toggle and sets the start time to 6:00 PM. The system automatically filters the personnel list to show only firefighters whose regular shift ends at exactly 6:00 PM, displaying five A-shift members who are transitioning off duty at that time and already present at the station. This allows the supervisor to quickly identify and assign personnel who require no travel time and are familiar with current station operations, rather than scrolling through the entire roster of 50+ eligible personnel.



Personnel API - Comprehensive Data Management

What - New API endpoints have been introduced for personnel data management, providing programmatic access to view, create, and update personnel records through RESTful operations. The API supports GET requests for retrieving individual personnel records, POST requests for creating new personnel records, PATCH requests for partial updates of specific fields, and PUT requests for full record updates requiring complete object structure. All operations validate client authorization and maintain data integrity through structured request/response patterns.

Why - These API endpoints were developed due to customer request to enable integrated systems to programmatically manage personnel data, streamlining data synchronization workflows and reducing manual data entry requirements for organizations using multiple systems.

How - To use the Personnel API endpoints:

  • GET (Retrieve Personnel): Send GET request to /fd-api/v1/personnel/{personnelId} to retrieve individual personnel record
  • POST (Create Personnel): Send POST request to /fd-api/v1/personnel with complete personnel object structure in request body
  • PATCH (Partial Update): Send PATCH request to /fd-api/v1/personnel/{personnelId} with only the fields to be updated (one or more fields can be updated without requiring the entire object structure)
  • PUT (Full Update): Send PUT request to /fd-api/v1/personnel/{personnelId} with complete personnel object structure (all fields must be present even if only updating specific fields)
  • Note: The system validates client code authorization for all operations
  • Note: Appropriate permissions must be configured for API access
  • Note: All endpoints use standard RESTful conventions and return structured JSON responses

Use Case - A fire department uses a separate HR management system for employee onboarding and needs to synchronize new hire data with the scheduling system. When a new firefighter completes onboarding, the HR system automatically sends a POST request to the Personnel API with the complete personnel record (name, employee number, hire date, certifications, emergency contacts). The scheduling system creates the personnel record and returns a confirmation with the new personnel ID. Later, when the firefighter completes additional certifications, the HR system sends a PATCH request updating only the certifications field without requiring the entire personnel record, keeping both systems synchronized automatically without manual data entry.



Emergency Contact Editing - My Personnel View

What - Employees can now update their own emergency contact information directly from the My Personnel view when granted the appropriate permissions. The feature includes a new Save button that persists changes to all three emergency contact sections (Emergency Contact Info #1, #2, and Medical Contact Info), a Cancel button with confirmation prompt for unsaved changes, field validation for phone number formats and required fields, and clear success messaging. The emergency contact fields become editable only when users have the "Emergency Contacts - Self Access → Update" permission enabled.

Why - This enhancement was implemented due to customer request to enable employees to maintain their own emergency contact information directly, reducing administrative burden on personnel staff and ensuring contact information remains current without requiring ticket submissions or administrator intervention.

How - To configure and use emergency contact editing:

  • Administrator Configuration:
    • Grant "Personnel Record - Self Access → Allow" permission for My Personnel visibility
    • Grant "Emergency Contacts - Self Access → Read" permission for viewing emergency contacts
    • Grant "Emergency Contacts - Self Access → Update" permission to enable editing and saving
  • Employee Workflow:
    • Navigate to My Personnel section
    • Access the Emergency Contacts tab
    • If Update permission is granted, all emergency contact fields become editable and a "Save" button appears
    • Make desired changes to Emergency Contact Info #1, Emergency Contact Info #2, or Medical Contact Info fields
    • Click "Save" button (system validates required fields and phone number formats)
    • If validation fails, error messages display; if validation passes, changes save and success message displays
    • Alternatively, click "Cancel" to discard changes (system prompts for confirmation if unsaved changes exist)
  • Note: Phone numbers must follow format: ##########
  • Note: Admin users accessing My Personnel screens will also see the Save button when the permission is enabled
  • Note: No audit trail entry is created for cancelled changes

Use Case - A firefighter recently got married and their spouse's phone number has changed. Instead of submitting a personnel update request and waiting for an administrator to process it, the firefighter logs into the system, navigates to My Personnel, clicks the Emergency Contacts tab, updates Emergency Contact #1 with their spouse's new phone number, and clicks Save. The system validates the phone number format, saves the changes immediately, and displays a success confirmation. If the firefighter had changed multiple fields and then clicked Cancel, the system would prompt for confirmation before discarding all unsaved changes and reverting to the original values.


Support Excel and CSV Files in Personnel Import Wizards

What - The Personnel Emergency Contacts and NEMSIS Licensure/Certifications Import Wizards now support both Excel (.xlsx) and CSV file formats, allowing users to directly upload Excel templates without requiring manual conversion to CSV and streamlining the import process while maintaining template validations and formatting rules.

Why - This enhancement was implemented due to customer request to eliminate the extra step of converting Excel templates to CSV format and reduce potential conversion errors that could impact data integrity during personnel imports.

How - To use the enhanced import functionality:

  • Navigate to Personnel → Emergency Contacts → Import Wizard or Personnel → NEMSIS Licensure/Certifications → Import Wizard
  • Click Choose File and select either .xlsx or .csv files
  • For Excel files, the system automatically processes data from the first worksheet tab
  • Review data preview and mapping as usual, then complete the import process
  • Unsupported file types will display clear error messages

Use Case - HR personnel can now directly upload the Excel template they use for collecting emergency contact information from new firefighters without having to save it as a CSV file first, reducing the risk of formatting errors and streamlining the onboarding process while preserving dropdown validations and data formatting rules.



Add Work Sub Type for Pending Time Cards

What - This enhancement improves administrative oversight by displaying work type and time-off type subtypes during the time card approval process, providing administrators with complete context that was previously limited to viewing only the main category during approval decisions.

Why - This improvement was implemented due to customer request to provide complete visibility into time card details during the approval process, enabling more informed approval decisions with full context of the work performed.

How - This enhancement works automatically:

  • Subtypes selected on the shift board or modified in time cards display in the approval interface
  • Navigate to the time card approval interface to view enhanced entry details
  • Review time card entries with both main categories and associated subtypes visible
  • Process approvals using the standard workflow with enhanced visibility
  • No additional configuration is required



Use Case - When reviewing pending time cards, a fire chief can now see that overtime was worked specifically for "Training - Hazmat Certification" rather than just "Training," allowing them to make more informed approval decisions and better track specialized training costs and compliance requirements.


Enhanced Audit Log Integration

What - The Scheduling module has been integrated with the platform's global audit log system, providing a unified audit experience across all platform modules while maintaining robust scheduling-specific audit capabilities. All 144 scheduling actions are now written to both the legacy scheduling audit log and the new global audit log simultaneously, ensuring comprehensive audit trails and enhanced visibility for administrators and compliance teams.

Why - This enhancement was implemented due to customer requests for consolidated audit tracking across multiple modules, enabling compliance teams to review platform-wide activities in a single interface while maintaining backwards compatibility with existing scheduling audit workflows.

How -

  • Navigate to ADMIN → Audit Logs to access the global audit log interface
  • Use the module filter to view scheduling-specific events or view all platform events together in a unified view
  • Utilize enhanced date filtering options to narrow down audit trails by specific time ranges and severity levels (high/low)
  • Note that both audit systems run in parallel with no configuration changes required and no performance impact

 


Use Case - A fire department's compliance officer needs to review all system changes made during a specific pay period for audit purposes. They can now access the global audit log, filter for scheduling module events, and see all 144 tracked scheduling actions alongside other platform activities such as personnel changes and administrative updates, providing a complete picture of system modifications without switching between multiple interfaces.


Excel File Support for Accruals Hours Import

What - The Accruals Hours Import Wizard now supports native Excel (.xlsx) file uploads in addition to the existing CSV format. Users can import data directly from provided Excel templates without the extra conversion step to CSV, and the system automatically detects the file type and processes data from the first worksheet tab with clear error messaging for unsupported file formats.

Why - This enhancement was implemented due to customer requests to streamline the import process and reduce potential errors from manual file conversions, allowing departments to work directly with the Excel templates provided without additional formatting steps.

How -

  • Navigate to ADMIN → IMPORT WIZARD and select Personnel - Accrual Hours
  • Click the file upload button and choose either an .xlsx file (Excel format, recommended for provided templates) or a .csv file (legacy format, still fully supported)
  • The system automatically detects the file type and processes accordingly, extracting data from the first worksheet tab for Excel files
  • If an unsupported file type is uploaded (such as .xls, .ods, or .json), the system displays an error message specifying that only .xlsx and .csv formats are accepted
  • Review and confirm the import following standard Accruals Hours import procedures

Use Case - A fire department administrative assistant receives the monthly accrual hours update in the provided Excel template format. Instead of opening the file, converting it to CSV, and verifying the conversion was successful, they can now directly upload the Excel file to the Import Wizard, reducing the import process time and eliminating the risk of data corruption during file format conversion.


Excel File Support for Accruals Profile Import

What - The Accruals Profile Import Wizard now supports native Excel (.xlsx) file uploads in addition to the existing CSV format. Users can import data directly from provided Excel templates without the extra conversion step to CSV, and the system automatically detects the file type and processes data from the first worksheet tab with clear error messaging for unsupported file formats.

Why - This enhancement was implemented due to customer requests to streamline the import process and reduce potential errors from manual file conversions, allowing departments to work directly with the Excel templates provided without additional formatting steps.

How -

  • Navigate to ADMIN → IMPORT WIZARD and select Personnel - Accrual Profile
  • Click the file upload button and choose either an .xlsx file (Excel format, recommended for provided templates) or a .csv file (legacy format, still fully supported)
  • The system automatically detects the file type and processes accordingly, extracting data from the first worksheet tab for Excel files
  • If an unsupported file type is uploaded (such as .xls, .ods, or .json), the system displays an error message specifying that only .xlsx and .csv formats are accepted
  • Review and confirm the import following standard Accruals Profile import procedures

Use Case - When implementing new accrual policies for probationary firefighters versus veteran personnel, the HR coordinator can prepare the accrual profiles in the provided Excel template with different accumulation rates and carryover rules for each group, then directly upload the .xlsx file to update all personnel profiles in a single import operation without converting to CSV format.


Additional Rotation Patterns Available

What - New custom rotation patterns have been added to the scheduling system, providing additional flexibility for shift assignments and workforce scheduling. 

Why - These rotation patterns were added due to customer requests for scheduling configurations that match specific departmental staffing models and operational requirements not covered by existing rotation options.

How -

  • Navigate to Setup → Rotations → Rules and include the desired new rotation rules for your agency
  • Once the rules are included, associate them with a rotation through the standard rotation configuration process
  • The rotation patterns can then be used on the Shift Board for personnel assignments
  • These rotation patterns can also be applied when adding Kelly Days based on rules to user rotations
  • 48 on / 120 off
  • 1 on / 3 off / 1 on / 9 off
  • 2 on / 14 off / 5 on / 28 off
  • 1 on / 23 off / 1 on / 17 off
  • 1 on / 1 off / 1 on / 3 off
  • 2nd Shift 2025
    • 7 on / 2 off / 8 on / 4 off / 5 on / 1 off / 3 on / 1 off / 7 on / 2 off / 2 on / 2 off / 3 on / 1 off / 1 on / 1 off / 5 on / 2 off / 7 on / 2 off / 7 on / 4 off / 5 on / 1 off / 3 on / 1 off / 5 on / 2 off / 4 on / 2 off / 7 on / 1 off / 1 on / 3 off
  • 1st Shift 2025
    • 5 on / 3 off / 7 on / 2 off / 6 on / 1 off / 2 on / 2 off / 3 on / 1 off / 5 on / 2 off / 7 on / 3 off / 5 on / 3 off / 6 on / 2 off / 7 on / 1 off / 2 on / 2 off / 4 on / 1 off / 5 on / 2 off / 6 on / 3 off / 5 on / 2 off / 3 on / 1 off / 6 on / 2 off / 6 on / 3 off
  • 1st Shift SOC 2025
    • 7 on / 2 off / 6 on / 1 off / 2 on / 2 off / 5 on / 3 off / 6 on / 2 off / 6 on / 1 off / 3 on / 2 off / 5 on / 3 off 
  • 2nd Shift SOC 2025
    • 7 on / 2 off / 8 on / 2 off / 1 on / 1 off / 3 on / 1 off / 4 on / 2 off / 7 on / 4 off 
  • 1 on / 3 off / 1 on / 3 off / 1 on / 3 off / 1 on / 3 off / 1 on / 3 off / 1 on / 3 off / 1 on / 31 off
  • 1 on / 1 off / 1 on / 1 off / 1 on / 3 off / 1 on / 1 off / 1 on / 1 off / 1 on / 2 off
  • 1 on / 5 off / 1 on / 42 off
  • 1 on / 4 off / 1 on / 16 off / 1 on / 4 off / 1 on / 4 off / 1 on / 5 off / 1 on / 5 off / 1 on / 4 off
  • 1 on / 1 off / 1 on / 1 off / 1 on / 3 off / 1 on / 1 off / 1 on / 1 off / 2 on / 7 off
  • 1 on / 3 off / 1 on / 9 off

  • 3 on / 46 off

  • 5 on / 44 off

  • 2 on / 14 off / 5 on / 28 off

  • 1 on / 23 off / 1 on / 17 off

  • 2 on / 7 off / 3 on / 7 off / 2 on / 7 off

  • 3 on / 7 off / 2 on / 7 off / 2 on / 7 off

  • 1 on / 1 off / 1 on / 1 off / 1 on / 3 off / 1 on / 1 off / 1 on / 1 off / 1 on / 1 off

  • 1 on / 2 off / 2 on / 3 off / 2 on / 2 off / 2 on

  • 3 on / 6 off / 3 on / 2 off

  • 6 week 48/96

    • 2 on / 4 off / 2 on / 4 off / 2 on / 4 off / 2 on / 4 off / 2 on / 4 off / 2 on / 4 off / 2 on / 46 off


Use Case - A fire department transitioning to a new staffing model that requires a 48 on/120 off rotation pattern for their emergency response teams can now select this pre-configured rotation rule instead of attempting to create a custom workaround. The scheduler includes the new rotation rule, associates it with the appropriate shift, and assigns personnel to the rotation, ensuring accurate schedule generation and Kelly Day calculations that align with the new staffing agreement.


Configurable Early Clock-In Window

What - Organizations can now configure how early employees can clock in before their scheduled shift start time through a new Time Clock setting. Administrators can set an organization-wide early clock-in window of up to 60 minutes, allowing employees to clock in for legitimate pre-shift activities while ensuring accurate time tracking that reflects actual clock-in times rather than scheduled shift start times.

Why - This feature was implemented due to customer requests to accommodate pre-shift activities such as equipment checks, briefings, and station preparations without requiring manual workarounds or shift board adjustments, while maintaining accurate time records that align with contractual and policy requirements.

How -

  • Navigate to SCHEDULING → SET UP → Time CARD - Clock configuration section
  • Locate the "Allow Early Clock In" setting and toggle the feature ON to enable early clock-in capabilities
  • Enter the desired early clock-in window (1-60 minutes) in the input field
  • System validates that the value is between 1-60 minutes; values over 60 will trigger an error message
  • Hover over the information icon to view the tooltip explanation: "If enabled, users can clock in early within the time frame selected"
  • Save the configuration, which applies immediately to all users organization-wide
  • Note that when enabled, users within the configured time window before their shift can clock in, and their time entry will reflect the actual clock-in time, not the scheduled shift start time



Use Case - A fire department requires all apparatus operators to arrive 15 minutes before shift start to perform equipment checks and inventory before going in service. The administrative chief enables the early clock-in feature with a 15-minute window, allowing operators to clock in when they arrive for their pre-shift duties. An operator scheduled for an 8:00 AM shift arrives at 7:45 AM, clocks in immediately upon arrival, and their timecard accurately reflects 7:45 AM as the start time, ensuring proper compensation for all pre-shift work performed.


Custom Rotation Scheduling for Assignments

What - Assignment scheduling capabilities have been expanded to allow administrators to apply custom rotation recurrence rules directly to assignments during creation. This enhancement works with both AWT (Advanced Workforce Tracking) and regular assignment types, and assignments appear on the shift board only on dates matching the selected recurrence pattern, automatically hiding them on non-applicable days to minimize blank space.

Why - This enhancement was implemented due to customer requests for more sophisticated assignment scheduling that aligns with specific rotation patterns, enabling departments to schedule specialized assignments that follow the same rotation cycles as their shift schedules without creating duplicate entries or manual workarounds.

How -

  • Navigate to the assignment creation interface in Scheduling
  • Locate the custom rotation scheduling section below existing recurrence options
  • Select the desired custom rotation recurrence rule from the dropdown menu of available patterns configured for your agency
  • Complete standard assignment fields (name, type, users, etc.) and choose between AWT or regular assignment types as needed
  • Note that the selected recurrence rule cannot be excluded after assignment creation
  • Assign individual users to the rotation-based assignment using standard scheduling methods
  • The assignment will appear on the shift board only on dates matching the custom rotation schedule, with automatic visibility updates based on the rotation calendar



Use Case - A fire department operates a specialized Technical Rescue Team that follows a 48 on/96 off rotation pattern matching their A Shift schedule. The training coordinator creates a "Tech Rescue Standby" assignment and applies the 48/96 rotation recurrence rule during creation. The assignment now automatically appears on the shift board only during the 48-hour on-duty periods for A Shift, and personnel assigned to this specialized duty can be scheduled accordingly without the assignment cluttering the schedule on off-duty days, providing clear visibility of when the team is available for deployment.


Personnel API - Create New Personnel Records

What - The Personnel API now includes POST functionality, enabling programmatic creation of new personnel records through the API. This enhancement completes the full suite of CRUD operations (Create, Read, Update) for personnel management using a consistent data structure across all endpoints, with each successful POST request automatically generating a unique personnel ID and real-time validation against existing client data.

Why - This functionality was added due to customer requests for complete API-based personnel management capabilities, allowing external systems and integrations to create new user records alongside the existing GET and PATCH capabilities without requiring manual data entry through the web interface.

How -

  • Ensure your organization has Personnel API permissions enabled and valid API authentication credentials configured
  • Use the POST endpoint at the URL: https://[your-environment].firstdue.com/fd-api/v1/personnel/
  • Construct the request body using the same data structure as GET and PATCH endpoints, including desired field combinations for the new personnel record
  • Execute the POST request; if referenced data (departments, stations, ranks, etc.) does not exist in your instance, the API returns validation errors in the response
  • Upon successful creation, the response includes the newly generated personnel ID
  • Use GET requests with the personnel ID to retrieve the created record: https://[your-environment].firstdue.com/fd-api/v1/personnel/[personnel-id]
  • Use PATCH requests with the personnel ID to update specific fields as needed: https://[your-environment].firstdue.com/fd-api/v1/personnel/[personnel-id]

Use Case - A fire department uses an external HR system that manages new hire information and needs to automatically create corresponding user accounts in the scheduling system when new firefighters complete orientation. Their IT department develops an integration that uses the POST Personnel API endpoint to create new personnel records when the HR system triggers a "new hire onboarding complete" event, automatically populating department, station, rank, and other relevant fields. The API returns the new personnel ID, which the HR system stores for future updates, eliminating manual data entry and ensuring immediate scheduling system access for new personnel.


Multi-Module Time Clock Support

What - The time clock kiosk has been expanded to support clocking in for Activities/Events, Training, and Incidents in addition to the existing Shift Board functionality. Users can now select from four module options when clocking in and accurately log their time across multiple operational areas without being required to appear on the shift board, with the system displaying relevant options based on the selected module (all activities available for the current day, training classes assigned to the user for the current day, or open incidents from current and previous day).

Why - This enhancement was implemented due to customer requests for comprehensive time tracking across all department activities beyond scheduled shifts, allowing accurate logging of time for training exercises, special events, and incident responses while maintaining consistent data structure and reporting across all time clock functions.

How -

  • Access the time clock kiosk interface
  • Select the desired module from four available options: Shift BoardActivities/EventsTraining, or Incidents
  • View the dropdown list of available options specific to the selected module (activities available for the current day, training classes assigned to you for the current day, open incidents from current/previous day, or shift board assignments)
  • Select the specific activity, training class, incident, or shift from the dropdown menu
  • Clock in successfully; the system records the time entry with the Location field populated according to module type
  • Clock out using the standard time clock process when your activity is complete
  • Note that shift board validation is removed for Activities, Training, and Incidents modules, while Shift Board clocking continues to use existing validation

Use Case - A firefighter arrives at the station for a scheduled hands-on training class on vehicle extrication techniques. Instead of clocking in through the shift board (where they are not scheduled that day), they access the time clock kiosk, select "Training" from the module options, choose "Vehicle Extrication Class - October 15" from the dropdown of their assigned training classes, and clock in. Their time entry accurately reflects attendance at the specific training class with the class name recorded in the Location field. Later that day, if they respond to an actual vehicle accident, they can clock in again by selecting "Incidents" and choosing the specific incident, ensuring separate and accurate time tracking for both the training activity and the emergency response.


Improved Shift Assignment Availability Tracking

What - The shift assignment process now includes intelligent availability duration tracking that accurately calculates and displays remaining availability based on whether shifts consume full or partial availability windows. When users are assigned to shifts, the system determines if the assignment uses their complete availability window (such as a 24-hour shift for 24-hour availability) or only a portion (such as an 8-hour shift for 24-hour availability), and the Availability tab updates in real-time to reflect remaining unassigned hours.

Why - This enhancement was implemented due to customer requests for real-time visibility into partial availability after shift assignments, enabling schedulers to identify personnel who remain available for additional assignments rather than removing them completely from the availability pool when they still have unassigned hours.

How -

  • Navigate to SCHEDULING → SHIFT BOARD to access the scheduling interface
  • Check the AVAILABILITY tab on the right-hand side to view users available for assignment, including those marked "Available for call"
  • To assign a user to a shift with full availability match: select a user with 24-hour availability and drag and drop them to a 24-hour shift; the user is completely removed from the Availability tab with no remaining hours
  • To assign a user to a shift with partial availability match: select a user with 24-hour availability and drag and drop them to a shorter duration shift (such as an 8-hour shift); the user remains in the Availability tab with adjusted availability showing remaining unassigned hours
  • Note that if the assigned user lacks required qualifiers for the shift, a warning message appears but the assignment proceeds
  • The Availability tab automatically refreshes to reflect current availability status after each assignment

Use Case - A scheduler is staffing multiple units for an anticipated busy day and sees that a paramedic has indicated 24-hour availability. The scheduler assigns the paramedic to an 8-hour shift on the primary ambulance. Instead of disappearing from the Availability tab completely, the paramedic remains visible with 16 hours of remaining availability displayed. Later in the scheduling process, when a different unit needs coverage for a 12-hour period, the scheduler can easily identify and assign the same paramedic to fill that shift, maximizing utilization of available personnel without having to manually track who has partial availability remaining.





Bugs

Allow Trades to be Edited for Unassigned

What - This fix resolves a critical issue where trade acceptors were being incorrectly removed from the Unassigned Person section after editing Trade Time Off records, ensuring proper maintenance of trade acceptor visibility and status throughout the entire trade lifecycle for accurate personnel tracking and workflow continuity.

Why - This fix was implemented due to customer request to address data integrity concerns in the trade management workflow where personnel visibility was being lost during routine record maintenance activities.

How - This fix works automatically:

  • Trade acceptors remain visible in the Unassigned Person section regardless of Time Off record modifications
  • Users can safely edit Trade Time Off records (Project Code, Notes, etc.) without affecting personnel visibility
  • All trade-related records maintain proper relationships throughout the process
  • Complete audit trail is preserved throughout the trade lifecycle
  • No additional configuration is required

Use Case - When a firefighter who accepted a trade has their Time Off record edited to add project codes or update notes, they remain visible in the Unassigned Person section, ensuring supervisors can continue to track their availability and the trade remains properly documented in the system without losing personnel assignment visibility.


Time Off Request - Initiated Date Preservation

What - This fix resolves a critical bug where editing Time Off Requests incorrectly updated the Initiated date to the current timestamp instead of preserving the original creation date, ensuring accurate reporting and maintaining proper audit trails for approval workflows.

Why - This fix was implemented due to customer request to address reporting accuracy issues that were causing confusion in approval workflows and impacting audit trail integrity for time off management.

How - This fix works automatically:

  • The original Initiated timestamp is preserved when editing Time Off Requests
  • Only modified fields are updated during the edit process
  • The Initiated field continues to display the original creation date regardless of subsequent edits
  • Reporting and approval workflows reference accurate initiation timestamps
  • No additional configuration is required

Use Case - When a firefighter submits a vacation request on January 15th and later edits it on January 20th to add additional notes, the system continues to show the Initiated date as January 15th, ensuring accurate reporting of request timing and proper audit trails for administrative review and approval processing.


Timecard Copy Week Function Error Resolution

What - This fix resolves a console error that occurred when switching users and attempting to copy week data on the time card page, ensuring seamless user switching functionality and eliminating browser console errors that previously disrupted the copy week workflow.

Why - This fix was implemented due to customer request to address data handling issues that could have led to data integrity problems or unexpected behavior during timecard management operations.

How - This fix works automatically:

  • Users can now switch between different employees using the dropdown menu without generating console errors
  • The copy week functionality executes successfully for all accessible users
  • Enhanced backend processing ensures proper user context management during operations
  • All copy week operations complete without browser console errors
  • No additional configuration is required

Use Case - When a supervisor needs to copy the previous week's timecard data for multiple firefighters, they can switch between different personnel using the user dropdown and use the copy week function without encountering system errors, ensuring reliable timecard management across all employees under their supervision.


User Role Permission Detection for Time Off Approval

What - This fix resolves a critical issue where the system failed to properly detect users with APPROVE/DENY TIME OFF permissions when those users were assigned to multiple roles with mixed permission sets, ensuring users with required permissions are correctly identified and available for time off approval workflows regardless of which specific role grants them the permission.

Why - This fix was implemented due to customer request to address approval workflow bottlenecks where eligible approvers were not available for assignment despite having the correct permissions through their assigned roles.

How - This fix works automatically:

  • System now scans all roles assigned to a user to identify permission grants
  • Navigate to Scheduling → Setup → Time Off → Specific Users to view all users with detected permissions
  • Users with required permissions through any assigned role can be successfully added as specific approvers
  • Enhanced permission logic evaluates all user roles for eligibility determination
  • Also applies to Scheduling - Routing trade approval permissions

Use Case - A fire captain who has both "Station Officer" and "Training Coordinator" roles, where only the Station Officer role includes time off approval permissions, will now correctly appear in the list of available approvers, ensuring they can be assigned to approve vacation requests and other time off for their personnel without permission detection failures.


Maximum Consecutive Hours Validation for Split Shift Rotations

What - This fix resolves a critical validation issue where users on rotation for split shifts could exceed configured maximum working hours when being assigned to call shifts, ensuring proper enforcement of hour limits across all shift types and rotation statuses for compliance with configured work time restrictions.

Why - This fix was implemented due to customer request to ensure consistent application of maximum hour limits regardless of shift assignment status and prevent scheduling violations that could impact personnel safety and regulatory compliance.

How - This fix works automatically:

  • System continuously monitors total hours worked across all shift types including work shifts, rotations, and call shifts
  • Users who have reached configured hour limits are automatically excluded from contactable user lists for call shifts
  • Maximum hours and break periods must be configured in Scheduling → Setup → Settings
  • Start of day time must be properly set to ensure accurate hour calculations across day boundaries
  • Split shift scenarios now properly track cumulative hours across alternating assignments

Use Case - A firefighter working alternating morning and afternoon rotations who has accumulated 36 hours over several days will be correctly excluded from available call shift assignments if the maximum consecutive hours is set to 39 hours with a 9-hour break requirement, ensuring compliance with fatigue management policies and preventing over-scheduling.


Call Shift Maximum Hours Calculation Fix

What - This fix resolves a critical issue where users were incorrectly excluded from call shifts due to faulty consecutive work hours validation, ensuring the system properly calculates maximum consecutive work time including partial shifts and break periods so that eligible users are correctly available for assignment.

Why - This fix was implemented due to customer request to address scenarios where users were being incorrectly marked as unavailable for shifts despite having adequate break time and not exceeding actual consecutive work hour limits.

How - This fix works automatically:

  • System correctly computes consecutive work time across partial and full shifts
  • Validates sufficient break periods (equal to or greater than configured minimum) between work periods
  • Handles consecutive hour calculations that span multiple days
  • Users are marked available when consecutive hours don't exceed configured maximum and they have adequate break time
  • Ensure maximum consecutive hours and minimum break time are configured in system settings

Use Case - A firefighter who worked 24 hours on November 8th, 8 partial hours on November 9th, and 24 hours on November 10th (totaling 56 total hours but only 32 consecutive hours) followed by a 48-hour break period will now be correctly available for shifts on November 13th since their consecutive hours (32) are below the 48-hour maximum and they had adequate break time, rather than being incorrectly excluded from assignment.


Job Board Daily Digest Notification Delivery

What - This fix resolves a critical issue where Job Board notifications were not being sent to users at their scheduled times, ensuring that when Job Boards are created with daily notification settings, users receive timely SMS and email notifications as configured for improved operational reliability in call shift management.

Why - This fix was implemented due to customer request to address notification delivery failures that were impacting operational communication and call shift coordination when Job Board functionality was enabled.

How - This fix works automatically:

  • Configure Job Board settings by navigating to Scheduling → Setup → Call Shift Rules → Job Board and enable Job Board with Daily notification setting
  • Create Call Shifts using Scheduling → Call Shift → New Call Shift and use the Add Job Board button
  • System now properly queues and sends notifications at scheduled times via configured methods (SMS/email)
  • All notification activities are logged in Scheduling → System Log for troubleshooting
  • Requires Twilio integration for SMS notifications and valid user notification methods

Use Case - When a fire department creates a Job Board for available overtime shifts with daily notifications scheduled for 8:00 AM, all eligible firefighters now receive their SMS and email notifications reliably at the configured time, ensuring proper communication about available opportunities and maintaining operational readiness for call shift coverage.


48/96 Rotation Calendar Display Correction

What - The system now correctly calculates and displays off-days for 48/96 rotation schedules in the My Shifts view, ensuring users see the expected 4 days off in their rotation cycle rather than an incorrect 3-day display. This fix addresses a calendar display inconsistency that occurred specifically when a 48/96 rotation rule was deactivated and subsequently reactivated, causing the calendar calculation logic to lose sync with the rotation parameters.

Why - This fix resolves a data integrity issue affecting 48/96 rotation schedules where the calendar display did not match the shift board after rotation rule activation changes, causing confusion for personnel trying to plan their schedules around the correct rotation cycle.

How -

  • No configuration changes or user action is required; the fix automatically recalculates rotation schedules based on current active rule parameters
  • The system now maintains consistent rotation parameters even after rule deactivation and reactivation cycles
  • Users viewing their My Shifts calendar will see the correct number of off-days (4 days) for 48/96 rotations across all platforms (web browsers and mobile devices)
  • Calendar calculations remain accurate regardless of rotation rule activation history

Use Case - A fire department temporarily deactivates their 48/96 rotation rule during a pay period transition and then reactivates it at the start of the new pay period. A firefighter on B Shift checks their My Shifts calendar to plan a family event during their upcoming off-duty period and now correctly sees 4 consecutive days off (96 hours) following their 48-hour shift, allowing them to accurately plan their time off without confusion. Previously, the calendar would have shown only 3 days off, potentially causing the firefighter to miss a day of their actual off-duty time or incorrectly believe they had duty on a day they were actually off.


Call Shift Availability with Deleted Time Off Types

What - The system now correctly maintains Time Off scheduling restrictions for call shifts even when the associated Time Off type has been deleted from the system. Users with active Time Off periods remain properly excluded from contactable lists for call shifts, honoring the original "Include in Call Shift" configuration regardless of whether the Time Off type still exists.

Why - This fix resolves a critical scheduling issue where users with deleted Time Off types were incorrectly appearing as contactable for call shifts during their off dates, due to the system losing Time Off context when the relationship was severed by type deletion.

How -

  • No configuration changes or user action is required; the fix operates automatically in the background
  • When creating call shifts, the system now properly validates users' Time Off status against scheduled dates regardless of Time Off type deletion
  • Users with active Time Off periods are automatically excluded from the contactable list based on the preserved original "Include in Call Shift" setting
  • Time Off assignments and their scheduling restrictions remain intact even after the associated Time Off type is removed from the system

Use Case - A fire department reorganizes their Time Off type structure and deletes the legacy "Personal Leave" category after migrating active requests to a new "Discretionary Time Off" type. A battalion chief creates a call shift for emergency coverage on a date when several personnel had previously been approved for Personal Leave (before the type was deleted). The system correctly excludes these personnel from the contactable list for the call shift, preventing them from being contacted during their approved time off and maintaining the integrity of the original Time Off approval, even though the Personal Leave type no longer exists in the system.


Mandatory Ranking Page Console Error Resolution

What - Console errors that were occurring during basic interactions on the Mandatory Ranking page have been eliminated. The errors previously appeared when selecting options from the STATUS dropdown menu and when clicking the RESET button, and have been resolved to ensure stable page performance without changing any visible functionality or user workflows.

Why - This fix was implemented to address underlying technical errors that could have potentially led to system instability or performance degradation over time, ensuring reliable operation of the Mandatory Ranking page even though users were not experiencing broken features.

How -

  • No configuration changes or user action is required; the fix operates automatically
  • Users will continue to interact with the STATUS dropdown menu and RESET button exactly as before
  • The page now operates error-free during all standard interactions including filtering and resetting mandatory ranking data

Use Case - A training coordinator accesses the Mandatory Ranking page to review certification compliance across all personnel and uses the STATUS dropdown to filter for only those with expired certifications, then clicks RESET to view all personnel again. These interactions now occur without generating console errors, ensuring the page operates reliably during daily certification tracking and compliance reporting activities without any technical issues affecting system performance.


Time Off Edit Functionality Consistency

What - Time off editing functionality is now consistent across different navigation paths within the system. Users can now edit time off entries and adjust time frames (including START TIME and END TIME fields) from both the Shiftboard → Scheduling Deputy → Time off interface and the Time off → Review interface, providing the same level of control regardless of the access path used.

Why - This fix resolves an inconsistency where users could only edit time off entries and adjust time frames from the Time off → Review interface, while the same editing capability was unavailable in the Shiftboard → Scheduling Deputy → Time off view due to START TIME and END TIME fields not being displayed.

How -

  • Navigate to time off entries using either path: SCHEDULING → Shiftboard → Scheduling Deputy → Time off OR SCHEDULING → Time off → Review
  • Locate the time off entry you wish to modify and click to edit the entry
  • Adjust the START TIME and END TIME fields as needed (now visible and functional in both interfaces)
  • Save the changes to update the time off entry

Use Case - A deputy chief reviewing the shift board for the upcoming week notices that a firefighter has a vacation day scheduled but needs to adjust the start time from 0800 to 1200 to allow the firefighter to work a partial shift in the morning. Instead of navigating away from the shift board to the Time off → Review section, the deputy chief can now edit the time off entry directly from the Shiftboard → Scheduling Deputy → Time off view, adjusting the START TIME field and saving the change without disrupting their scheduling workflow.


iCal Calendar Feed Synchronization Fix

What - The iCal calendar feed now properly synchronizes updated assignment names to external calendar applications after user assignment modifications. When users are removed from shift assignments and those assignments are subsequently modified, the changes now immediately reflect in both the MY SHIFTS view and the iCal calendar feed, ensuring consistent scheduling data across all platforms and eliminating discrepancies between internal views and external calendar applications.

Why - This fix resolves a critical synchronization issue where the iCal calendar feed displayed outdated assignment names in external calendar applications despite the MY SHIFTS view showing correct updated information, due to the iCal feed generation logic not properly refreshing assignment data after user deletion events.

How -

  • No configuration changes or user action is required; the fix operates automatically
  • When assignments are modified on the Shift board (ADD/EDIT/DELETE of user rotations, work shifts, or unassigned entries), the system immediately updates the iCal feed data
  • Navigate to MY SHIFTS and copy your iCal link as usual
  • Paste the iCal link into external calendar applications (Google Calendar, Apple Calendar, etc.) to display current, accurate assignment information
  • Refresh your external calendar application if you experienced the issue prior to this fix to see updated data

Use Case - A firefighter is initially assigned to "Engine 5 - A Shift" but is later moved to "Ladder 3 - A Shift" by the scheduler. The firefighter uses the iCal feed to sync their schedule with their personal Google Calendar for family planning purposes. Previously, their Google Calendar would continue showing "Engine 5 - A Shift" despite the MY SHIFTS view correctly displaying "Ladder 3 - A Shift," causing confusion when they arrived at the wrong station. With this fix, when the assignment change is made on the Shift board, the iCal feed immediately updates, and upon the next refresh cycle, their Google Calendar accurately displays "Ladder 3 - A Shift," ensuring they arrive at the correct assignment location.


Maximum Consecutive Working Hours Validation for Call Shifts

What - The system now properly validates and enforces maximum consecutive working hours rules when assigning users to call shifts. The validation calculates total consecutive working hours across all shift types and automatically excludes agents who have worked up to or beyond the configured maximum consecutive hours threshold from subsequent shifts until they complete the required minimum break period. The system displays clear exclusion reasons during call shift initiation and universally applies the validation across regular shifts, call shifts, and other shift categories.

Why - This fix was implemented due to customer request to address a scheduling validation gap that was allowing personnel to be assigned to consecutive shifts without adequate rest periods, potentially violating rest period requirements and contributing to personnel fatigue and burnout.

How - The validation operates automatically during call shift assignment:

  • Configuration Prerequisites: Ensure system rules are configured with maximum consecutive hours threshold (e.g., 19 hours) and minimum break hours requirement (e.g., 5 hours)
  • Automatic Validation Process:
    • When a call shift is created, the system identifies eligible agents
    • The system examines each agent's recent shift history and calculates cumulative consecutive working hours without breaks
    • The system validates whether assigning the new shift would cause the agent to exceed the maximum consecutive hours threshold
    • Agents who would exceed the threshold are automatically excluded from the assignment pool
    • The system logs the exclusion reason for administrator visibility
    • Excluded agents automatically become eligible again once they complete the minimum break period from their last shift end time
  • Note: During call shift initiation, administrators can see which agents were excluded and the specific reason (consecutive hours violation)
  • Note: Validation applies consistently across all shift types

Use Case - A firefighter works an overnight shift from 6:00 PM on January 9th to 8:00 AM on January 10th (14 hours). Later that morning, a call shift becomes available from 8:00 AM to 6:00 PM (10 hours). Previously, the system might have allowed assignment to this call shift, resulting in 24 consecutive working hours, exceeding the department's 19-hour maximum consecutive hours policy. With this fix, the system calculates that accepting the call shift would result in 24 consecutive hours, automatically excludes the firefighter from the available personnel pool, displays "Maximum consecutive hours exceeded" as the exclusion reason to administrators, and the firefighter becomes eligible for new assignments again at 1:00 PM (after the required 5-hour break period from their 8:00 AM shift end time).


Call Shift Processor - Performance Enhancement

What - The Call Shift Processor cron job has been enhanced with time-based filtering to prevent processing of outdated or stuck Call Shifts that remain in a pending status indefinitely. The enhanced SQL filtering now identifies and excludes pending Call Shifts that started beyond a defined threshold, skips Call Shifts without a start time that were created long ago, de-prioritizes or skips tiered Call Shifts during standard processing, and continues to properly process future-scheduled Call Shifts when their scheduled time arrives.

Why - This enhancement was implemented due to customer request to eliminate performance degradation caused by the processor repeatedly attempting to process old, irrelevant Call Shift records that were stuck in pending status from weeks, months, or years ago and would never complete, while ensuring legitimate Call Shifts continue to process without interruption.

How - The enhancement operates automatically through the Call Shift Processor:

  • The enhanced SQL filtering automatically identifies Call Shifts based on time-based conditions
  • Pending Call Shifts that started beyond a defined threshold are skipped
  • Call Shifts without a start time but created long ago are excluded
  • Future-scheduled Call Shifts with start times in the future continue to be processed when their scheduled time arrives
  • Tiered Call Shifts are now recognized and de-prioritized or skipped during standard processing, relying on the previous Call Shift's completion to trigger them
  • Note: No configuration changes required; enhancement operates automatically
  • Note: Active and properly scheduled Call Shifts continue to process without interruption

Use Case - A fire department has several Call Shifts from two years ago that became stuck in pending status due to a system migration issue, and the Call Shift Processor has been attempting to process these irrelevant records every cycle, degrading performance. After this enhancement, the processor automatically identifies these outdated records based on their start dates and creation timestamps, excludes them from processing, and focuses only on current and future Call Shifts. The processor performance improves immediately, processing cycles complete faster, and a Call Shift scheduled for next month continues to process normally when its scheduled time arrives, ensuring no disruption to standard operations.



Vacation Bid - Stability Improvements

What - Several technical corrections have been implemented to improve user experience and system stability in the Vacation Bid module. These backend fixes address console errors when clicking pause, resolve runtime errors during vacation bidding operations, and correct a TypeError related to null parameter handling in the time off auction bid time validation function. No functional changes have been made to vacation bidding processes or user workflows.

Why - These corrections were implemented due to internal identification of technical issues that were causing console errors and runtime exceptions, which degraded user experience and system stability during vacation bidding operations.

How - The improvements operate automatically with no configuration or user action required:

  • Console error when clicking pause has been resolved
  • Runtime errors during vacation bidding operations have been fixed
  • Null parameter handling in time validation function has been corrected
  • Note: No functional changes to vacation bidding processes
  • Note: No user action or configuration changes required

Use Case - During a vacation bidding period, a shift supervisor was monitoring the bidding process and clicked the pause button to temporarily halt bidding while addressing a personnel question. Previously, this action would trigger a console error that could potentially disrupt the bidding interface. With these stability improvements, the pause function operates smoothly without errors, the bidding session pauses as expected, the supervisor addresses the question, resumes the bidding session, and the process continues without any technical disruptions or unexpected behavior.




    • 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 ...