Schedule firefighters, paramedics, and EMTs across 24/7 shifts and stationsâwithout the scheduling chaos
Fire departments run 24-on/48-off shifts with Kelly days, EMS runs 12-hour or 24-hour shifts across multiple stations. Without firefighter scheduling software and EMS scheduling software, manually tracking who works which platoon, when Kelly days fall, and maintaining minimum staffing per apparatus is a spreadsheet nightmare.
When a paramedic calls in sick 2 hours before shift, paramedic scheduling software and ambulance crew scheduling systems help find a qualified replacement immediately or the ambulance can't run. Calling through seniority lists at 4am while managing active incidents is impossible.
Union contracts specify mandatory overtime rules, minimum rest periods, and shift trade procedures. Every apparatus needs specific certificationsâcan't put non-paramedic on ALS unit using first responder workforce management systems. Tracking all this manually without emergency medical services scheduling tools creates grievances and safety issues.
When next shift is short-staffed, current crew gets held over creating fatigue and morale issues. Without fire station scheduling software and emergency services shift scheduling systems, by the time you realize staffing pattern has created 15 mandatory holdovers this month, crew morale is tanking and you're struggling to maintain minimum staffing.
Create Locations for Each Station
Set up Station 1, Station 2, Station 3 as separate locations. Assign firefighters and paramedics to their home stations. Schedule shows which apparatus at which station needs staffing.
Define Roles by Apparatus and Certification
Create roles: "Engine Operator", "Ladder Operator", "Paramedic", "EMT-B", "Captain". Each shift specifies required rolesâEngine 1 needs 1 Captain + 3 Firefighters, Medic 1 needs 2 Paramedics.
Build Recurring Shift Templates
Create 24-hour shift templates (6am-6am) for each apparatus. Set recurring pattern: A Platoon works Mon, Thu, Sun (24 on / 48 off). System automatically generates entire year respecting the pattern.
Track Kelly Days and Vacation Automatically
System calculates Kelly days based on your department's schedule. When firefighter requests vacation, calendar shows coverage impact across all apparatus before approval. No double-booking.
Employee Submits Call-Off via App
Paramedic Mike feels sick at 4am, opens XShift AI app, submits call-off for 6am-6pm shift on Medic 2. Takes 30 seconds. System removes his assignment and alerts dispatch.
Automatic Notification to Qualified Personnel
XShift AI emails all paramedics not currently scheduled, not on vacation, who are qualified for ALS: "URGENT: Medic 2 6am-6pm shift available today at Station 2." Respects seniority list order if configured.
First Available Responder Gets Shift
Sarah (paramedic, off today) sees notification at 4:15am, accepts via app. Battalion Chief approves on phone. Sarah assigned, everyone else notified shift is filled. Total time: 8 minutes. Medic 2 in service on time.
Avoid Mandatory Holdover Costs
Without replacement, current crew would've been held over at time-and-a-half. Finding volunteer replacement via app saved $480 in overtime (12 hours Ă 2 paramedics Ă 1.5x rate vs straight time).
Assign Multiple Roles to Each Employee
Mark Jake as "Firefighter/Paramedic", Sarah as "Paramedic only", Tom as "Captain/Paramedic". System knows who can fill which positions. Can't accidentally schedule EMT-B on ALS-required apparatus.
Configure Union Contract Rules
Set minimum rest period between shifts (8 hours) and other union contract rules. System warns before creating violations.
Shift Trade Workflow with Approval
Firefighter requests trade with another firefighter for same role/apparatus. Both submit request, Captain approves or denies. Trade documented in system with approval chain for union grievance protection.
Audit Trail for Compliance Reviews
Schedule History shows every shift assignment, every call-off, every replacement, every tradeâwith timestamps and approvals. Perfect documentation for union grievances or state EMS audits.
See exactly how departments schedule 24/7 emergency services
Creating 24/48 schedule with Kelly days across A, B, and C platoons
Riverside Fire Department has 3 stations with 45 career personnel running 24-on/48-off schedule. Each station needs: Engine (1 Captain, 3 Firefighters), Ladder (1 Captain, 3 Firefighters at Station 1 only). Platoons rotate: A Platoon Mon/Thu/Sun, B Platoon Tue/Fri, C Platoon Wed/Sat. Kelly days every 9th shift to balance 24-hour shifts into yearly calendar. Need to schedule January with all Kelly days calculated correctly.
Battalion Chief spends 4-5 hours with Excel template passed down from previous chief. Manually counts shifts for each platoon to calculate Kelly daysâJan 3 is A Platoon's 9th shift so Kelly day Jan 4, recalculates entire pattern. Types each firefighter's name into each shift cell. Makes errorâaccidentally scheduled Jake for Jan 15 but he's on A Platoon and Jan 15 is B Platoon day. Prints 3 copies for each station, posts. Jake shows up Jan 15, supervisor says "you're not scheduled", discovers error. Creates grievance.
Dec 20 (2 weeks before): Battalion Chief logs into XShift AI. Creates 3 locations: Station 1, Station 2, Station 3. Creates roles: Engine Captain, Firefighter, Ladder Captain.
Dec 20 (cont): Creates recurring shift templates: "Station 1 Engine 6am-6am (1 Engine Captain + 3 Firefighters)" recurring every 3 days starting Jan 1 for A Platoon. Repeats for B Platoon (Jan 2 start) and C Platoon (Jan 3 start). Does same for Station 2, Station 3, and Station 1 Ladder.
Dec 20 (cont): Assigns each firefighter to their apparatus, location, and platoon. System generates entire year of shifts automatically following 24/48 pattern. Kelly days auto-calculated every 9th shift for each platoon.
Dec 22: Runs auto-assign for January to fill all apparatus with specific personnel. Algorithm assigns: each Engine needs 4 personnel (1 Captain + 3 FF), Ladder needs 4, all positions filled respecting platoon assignments.
Dec 23: Reviews January schedule. Kelly days automatically shown: A Platoon Kelly day Jan 4, B Platoon Kelly day Jan 8, C Platoon Kelly day Jan 12, etc. Verifies coverage, publishes schedule.
Dec 23 3pm: All 45 personnel receive email/app notification: "Your January schedule is ready." Each firefighter sees their specific shifts, Kelly days marked clearly, can view from phone or print their personal schedule.
52 minutes to create complete monthly schedule for 45 personnel across 3 stations (vs 4-5 hours manual Excel work). Zero platoon assignment errorsâsystem enforces A/B/C rotation automatically. Kelly days calculated perfectly for entire yearâno manual counting. Published 2 weeks early giving personnel advance notice for family planning. Eliminated scheduling grievancesâevery assignment respects platoon rotation and contract rules. Saved 4 hours monthly (48 hours yearly), reduced admin burden on Battalion Chiefs who can focus on operations instead of spreadsheets.
Finding ALS-certified replacement in 8 minutes to keep Medic 2 in service
Tuesday 4:23am. Paramedic Mike (scheduled for Medic 2, 6am-6pm shift at Station 2) wakes up with severe stomach pain, can't work. Medic 2 is an ALS unit requiring 2 paramedics. Without Mike, unit will only have 1 paramedicâcan't run ALS calls, would need to downgrade to BLS only (losing critical advanced care capability) or take unit out of service entirely. Battalion Chief is on scene of a structure fire, can't spend an hour making phone calls.
Mike texts Battalion Chief at 4:23am: "Can't work today, stomach issues, sorry." BC is at active fire scene, asks Captain to handle it. Captain starts calling off-duty paramedics at 4:30am. First 3 calls go to voicemail (everyone's asleep). Fourth call, Sarah answers but worked yesterday, would be working 3 days in a row, declines. Fifth call, Tom answers at 5:05am but he's 45 minutes away, can't make 6am start. Finally reaches Jake at 5:22amâhe can come in but won't arrive until 6:35am. Medic 2 goes out of service for 35 minutes during morning rush hour. Delayed response to chest pain callâpatient waited extra 8 minutes for next available ALS unit.
4:23am: Mike opens XShift AI app while still in bed, navigates to his shift "Medic 2 6am-6pm Station 2", clicks "Call Off Shift", selects "Illness", confirms. Takes 45 seconds.
4:24am: XShift AI automatically sends urgent notifications (email + push notification) to all paramedics who are: (1) not currently scheduled for 6am-6pm, (2) not on vacation/Kelly day, (3) qualified for ALS/Paramedic role. 8 paramedics receive notification: "URGENT: Medic 2 Paramedic 6am-6pm available TODAY at Station 2. First to respond gets shift."
4:26am: Sarah wakes up to notification on phone, opens app, sees she can pick up shift for extra overtime. Checksâshe's off today and tomorrow, not too tired. Clicks "I'm Available" button in app.
4:27am: Battalion Chief's phone buzzes with notification: "Sarah Martinez responded to Medic 2 calloff." BC clicks "Approve" while sitting in command vehicle at fire scene. Sarah instantly assigned, receives confirmation: "You're scheduled for Medic 2 6am-6pm today at Station 2." All other paramedics receive: "Medic 2 shift filled."
4:31am: Sarah texts dispatch: "Got the call, I'll be there 5:50am." Battalion Chief radios dispatch: "Medic 2 will be in service on time, coverage confirmed." Returns focus to fire scene. Medic 2 goes in service 6:00am as scheduledâzero downtime, zero delayed responses.
8 minutes from call-off to replacement confirmed (vs 90+ minutes of phone tag at 4am). Medic 2 stayed in service with zero downtimeâmaintained full ALS capabilities during morning rush hour. Battalion Chief handled staffing from fire scene without leaving command vehicleâstayed focused on emergency. Sarah responded voluntarily for straight-time payâsaved department $288 vs mandatory holdover of current crew at time-and-a-half (12 hours Ă $24/hr Ă 0.5 overtime premium Ă 2 medics). Perfect documentationâcall-off and replacement timestamped for union compliance and audit trail. City avoided negative press "ambulance out of service during rush hour due to staffing."
Processing approved shift trade with complete documentation
Jake (A Platoon, Engine 1 Firefighter) has daughter's wedding on Saturday Jan 20âa day he's scheduled to work 24-hour shift (6am Jan 20 - 6am Jan 21). Tom (B Platoon, Engine 1 Firefighter) is willing to work Jake's shift if Jake works Tom's shift on Friday Jan 26. Both are same rank, same apparatus, same stationâlegitimate trade under union contract. Need to document trade with approvals per contract Article 12.3 "all shift trades require Captain approval."
Jake asks Tom in person: "Can you work my Saturday Jan 20 if I work your Friday Jan 26?" Tom agrees. Jake handwrites shift trade form, both sign it, gives to Captain for approval. Captain approves, files form in drawer. Battalion Chief manually crosses out Jake's name on Jan 20 schedule, writes Tom's name, crosses out Tom on Jan 26, writes Jake. Makes similar change on his Excel file. Forgets to update backup schedule posted in stationâshows old assignments. Payroll week comes, admin office has original schedule showing Jake worked Jan 20 (he didn't), Tom worked Jan 26 (he didn't). Paycheck errors for both. Takes 2 weeks to fix with manual adjustment. Tom files grievance for pay error.
Jan 8: Jake opens XShift AI app, navigates to his Jan 20 shift, clicks "Request Shift Trade". Searches for Tom Rodriguez, selects his Jan 26 shift to offer in exchange. Enters reason: "Family wedding." Submits request.
Jan 8 (5 min later): Tom receives notification: "Jake Harrison requested to trade shifts: He works your Jan 26 if you work his Jan 20. Reason: Family wedding." Tom reviews both shifts in appâsame 24-hour duration, same apparatus, same station, he's free both days. Clicks "Accept Trade Request."
Jan 8 (10 min later): Captain Johnson receives notification: "Shift trade pending your approval: Jake Harrison â Tom Rodriguez, Jan 20/26, both Engine 1 FF." Captain verifies: both same rank, same qualifications, trade is within same pay period (good for payroll), complies with contract. Clicks "Approve Trade."
Jan 8 (immediately): System automatically swaps assignments: Tom now scheduled Jan 20, Jake now scheduled Jan 26. Both receive confirmation: "Your shift trade has been approved by Capt. Johnson." Schedule updates everywhereâcalendar view, mobile app, reports. Posted station schedule auto-updates when printed.
Jan 21 (after shifts worked): Payroll runs Hours Report for Jan 15-28 pay period. Shows: Tom worked Jan 20 (24 hours), Jake worked Jan 26 (24 hours). Paychecks accurate first time. Schedule History documents: "Trade approved by Capt. Johnson on 1/8 per Contract Article 12.3" with full timestamp trail.
Shift trade processed in 12 minutes with full union compliance (vs 2+ days of paperwork and manual schedule changes). Zero payroll errorsâsystem knew who actually worked which shifts. Complete audit trailâtrade request, acceptance, approval all timestamped with electronic signatures. Captain verified compliance before approvingâsystem showed both firefighters' qualifications, ensured trade met contract requirements. Jake attended daughter's wedding, Tom earned extra overtime willinglyâwin-win. Eliminated union grievancesâall trades documented per contract Article 12.3. Battalion Chief didn't waste time manually updating schedulesâsaved 45 minutes of administrative work per trade (department processes ~8 trades/month = 6 hours monthly saved).
Ensuring only qualified personnel operate specialized apparatus
Station 1 Ladder requires certified Aerial Operator plus 3 firefighters. Only 12 of 45 department personnel are certified to operate aerial ladder. When scheduling or covering call-offs, must ensure at least one certified operator is on Ladder every shift. State fire marshal conducting quarterly inspection will verify all Ladder apparatus had certified operators on duty for past 90 days.
Battalion Chief maintains list of 12 aerial-certified operators on whiteboard in office. When creating schedule, manually checks: "Is someone certified on Ladder Jan 15? Let me check...Jake is certified, he's on A Platoon, Jan 15 is A Platoon day, so yes." Misses Jan 22âscheduled 4 firefighters but none are aerial certified. Nobody catches it until Jan 22 morning when crew realizes problem. Pulls firefighter from Engine to cover Ladderânow Engine understaffed. State inspector reviews records, finds 3 shifts in November where Ladder had no certified operator. Cites department for violation, requires corrective action plan and re-inspection.
Setup (one time): Battalion Chief creates role "Ladder Operator - Aerial Certified" in XShift AI. Assigns this role to all 12 certified personnel. Creates Ladder shift template requiring "1x Ladder Operator - Aerial Certified + 3x Firefighter" per shift.
During scheduling: When running auto-assign for January, system ensures every Ladder shift has at least one aerial-certified operator. If trying to manually assign uncertified person to Ladder Operator position, system shows error: "Tom Rodriguez does not have required role: Ladder Operator - Aerial Certified."
During call-off: Aerial operator calls off for Ladder shift. Call-off notification goes ONLY to the 12 certified operators (not all 45 firefighters). First certified operator to respond gets the shift. Impossible to accidentally fill with non-certified person.
Quarterly compliance check: State fire marshal arrives Dec 15 for inspection. Requests proof Ladder had certified operators Oct 1 - Dec 15. Battalion Chief generates Schedule History report filtered to "Station 1 Ladder" for that date range. Exports to PDF (78 days of shifts). Report shows every shift had certified operator assignedânames listed with certification role shown. Inspector reviews in 10 minutes: "Perfect compliance, no violations found."
Zero certification violationsâsystem enforces apparatus requirements automatically, impossible to schedule uncertified operator. Passed state inspection with perfect complianceâavoided potential $5,000 fine and negative media coverage. Call-off replacement notifications targetedâonly notifying qualified personnel saves confusion and speeds response time. Battalion Chief confident in complianceâno more worrying "did I accidentally schedule wrong person?" Department expanded system to track other certifications: Hazmat Tech (6 certified), Technical Rescue (8 certified), Wildland (15 certified). Chief now tracks certification expiration dates in systemâreceives alerts 60 days before renewal needed, ensures no gaps in coverage.
Managing 24/48 schedule Kelly days with approved vacation time
Jake (A Platoon) wants to take vacation March 18-25 (8 days) for family trip. His normal shifts during that week are March 19 and March 22 (24-hour shifts). March 23 is his Kelly day. He submits vacation requestâshould be charged for 2 shifts (48 hours vacation time) but Kelly day doesn't count against vacation bank. Need to verify Engine 1 can operate with Jake gone those dates without creating mandatory overtime for other A Platoon members.
Jake submits paper vacation request form: "March 18-25". Captain counts: March 19, 22 = 2 shifts = 48 hours vacation. Approves form. Files it in drawer. Forgets to check if March 23 Kelly day causes coverage issue. Also forgets to update schedule. March schedule comes out, Jake still shows scheduled March 19/22 because Captain forgot to remove him. Jake sees schedule: "I'm on vacation those days!" Discovers mistake. Now scrambling to cover 2 shifts last-minute. Also discovers Sarah (also A Platoon Engine 1) already approved vacation March 20-27ânow 2 Engine 1 A Platoon members gone same week. Creates mandatory overtime for remaining A Platoon firefighters. Union files grievanceâcontract limits mandatory OT.
Feb 28: Jake opens XShift AI app, navigates to Time Off â Request Time Off. Enters: Start Date March 18, End Date March 25, Type: Vacation. System automatically calculates: Jake is scheduled March 19 (24hrs) and March 22 (24hrs) during this range = 48 hours vacation time. March 23 Kelly day shown but noted "Does not count against vacation bank."
Feb 28 (cont): Before submitting, system shows warning: "Sarah Martinez (Engine 1, A Platoon) has approved vacation March 20-27 overlapping your request. Approving both will reduce Engine 1 A Platoon coverage by 2 firefighters during this period." Jake sees this, decides to proceed anywayâfamily trip already booked.
March 1: Captain reviews Jake's vacation request in app. System shows: (1) Jake scheduled 2 shifts during range (48hrs), (2) Conflict with Sarah's vacation, (3) Impact assessment: "Engine 1 A Platoon will need 2 coverage personnel for March 19 and 22 shifts." Captain sees this early, has 3 weeks to plan coverage.
March 1 (cont): Captain approves vacation, immediately posts to department: "Need Engine 1 A Platoon coverage for March 19 & 22 (Jake vacation). Volunteer for overtime or trade shiftsârespond by March 8." Three firefighters volunteer for straight-time coverage. Captain assigns them in system.
March 10: March schedule published with Jake marked "VACATION" March 19/22, replacement coverage assigned. Auto-assign respected Jake's approved vacationânever tried to schedule him. Jake receives schedule showing his vacation marked clearly. Goes on family trip stress-free, no last-minute confusion.
Vacation correctly calculatedâ48 hours vacation time charged (2 shifts), Kelly day excluded per department policy. Coverage conflict identified 3 weeks earlyâgave time to find volunteers instead of forcing mandatory OT. Saved $576 by getting volunteers at straight time instead of mandatory holdovers at 1.5x ($24/hr Ă 48 hrs Ă 0.5 premium). Zero schedule errorsâJake never appeared on March schedule during vacation, replacements assigned correctly. Prevented union grievanceâno mandatory OT violations because coverage planned proactively. Kelly day auto-calculatedâno manual counting "is March 23 his 9th shift?" Firefighter morale improvedâvacation requests processed smoothly without last-minute chaos or family trip cancellations.
Join fire departments and EMS agencies who maintain proper coverage across all shifts
No more manual 24/7 schedules or call-off chaos. Just ask the AI Copilot and get instant answers about your first responder scheduling.
Generate 24-on/48-off shift patterns for 3 fire platoons across next month
"Generate 24/48 schedule for all platoons next month"
â AI creates rotating shift pattern with Kelly days automatically
15 minutes vs 5 hours manually
Saved 4h 45min
Paramedic called sick 2 hours before shift, ambulance can't run without replacement
"Find available paramedic to cover Medic 1 today 0600-1800"
â AI notifies qualified paramedics instantly via SMS and email
8 minutes vs 90 minutes calling
Ambulance runs on time
Calculate when each firefighter's Kelly day falls in the rotation
"Show Kelly days for A-shift next 3 months"
â AI displays Kelly day calendar with automatic calculations
Instant vs 45 minutes manually
Zero calculation errors
Compile hours worked for all personnel across 3 stations for bi-weekly payroll
"Export hours for all staff last 2 weeks"
â AI generates CSV with total hours by employee and station
10 minutes vs 4 hours manually
Accurate payroll data
Verify Engine 2 crew has required certifications: 1 Captain, 3 FF-1, 1 Driver/Operator
"Check Engine 2 crew certifications for tomorrow"
â AI verifies all assigned staff have required certs
Instant verification
Prevents compliance issues
Two firefighters want to swap shifts per union contract procedures
AI handles swap request workflow with supervisor approval
â System verifies qualifications, notifies supervisor, updates schedule
Automated approval process
Union contract compliant
21-day free trial ⢠No credit card required