From the dawn of Emergency Medicine, the tradition of schedule creation has been an arduous task handed down from chief to chief. Only the most masochistic of individuals dared to rise to the challenges inherent in planning shift coverage around the concerts, reunions, and weddings of their closest peers. Luckily, as design and technology continue to advance, an increasing number of software options have become available to help assist the Scheduler in his or her duties. The software options have dramatic variations in price, interface, and capabilities. The inaugural ALIEM Chief Resident Incubator team hopes to shed some light on the various options, to help you pick the right tool for your program.
* Disclaimer: We have no affiliations (financial or otherwise) with the software scheduling platforms.
At Drexel, we use Google Docs to make our schedule. This works well for our program but may not work as well for others. Our schedule is based on a fixed 8-10 day rotating schedule (i.e. 6 days on, 2 days off or 6 days on, 4 days off); therefore it is easy to add individuals schedule to a predetermined template that is easily translated into a spreadsheet. This system works well if there is not a lot of variety in how many shifts you need to fill and the type of residents who fill them. However, each schedule is entered by hand with no automatization of the scheduling process. One particular advantage of using Google Docs, is that we have created a separate public folder with links to important documents, and articles, all accessible in one central location.
For the scheduler
To initially set up the spreadsheet takes some time. We have multiple ways to view the schedule, including one sheet for each rotation site, and another sheet broken down by residency class. This allows both the residents and faculty to quickly identify both an individual resident’s location that month as well as the resident schedule at each particular site. Once up and running it is easy to navigate and viewable from multiple platforms.
While Google Sheets is obviously not a scheduling program. There are some features that make it work well for this function. You can easily add additional sheets to each file to allow for multiple schedules in one place. The schedules can easily be color coded for ease of reading and organization. The file can also be shared with a link for viewing purposes or can be shared for editing purposes for all chiefs or administrators. The schedule is automatically set up to be viewed and edited easily across platforms; so editors can work on the schedule at home or on the go with a tablet or smartphone.
For the residents
Fairly easy to navigate, but can be bulky to look at so many schedules in one file. There is no easy way to separate individuals schedules out from the entire file. But you can search a spreadsheet by using control+F. You also cannot export the schedule out to a 3rd party calendar program, like Apple Calendar.
This is an example of the R1 yearlong schedule. Each resident has a letter and rotate through the blocks. (i.e. Resident A starts in the CCU then moves to HUH (our main hospital) and so on.) On the left are the rotation sites and across the top are dates ranges for each block. Along the bottom is a sheet for each class and each hospital site.
This is an example of the schedule at two of our community sites. The dates are on the left and the shifts and locations are across the top. Each resident rotates through the shifts (7a-7p, 12p-12a)
Works well on all systems: Macs, PCs, phones, and tablets
Easy to view on multiple platforms (phone, computer, printed)
Easy to share with other departments through a link (do not need a separate login or password to another program)
Can give people access to view or edit – including residents, attendings, off service rotators or edit chiefs, PD, APDs, program coordinators
Allows residents to see everyone’s schedules to help make switches possible
Less utility in a residency program that has a more random schedule
All swaps, trades, or requests need to be done individually by scheduling chief
No way to generate reports for each resident regarding number of shifts worked, holidays worked or type of shifts worked
No built in way to communicate possible trades
All schedules are hand entered – which can increase the risk for errors and uneven scheduling
Google Docs is a free solution that is a viable option best suited for EM programs with a regular and repeating scheduling pattern. It is limited by its lack of any scheduling-specific features. The diversity and ubiquity of the Google ecosystem also makes this a great option for those who are using other Google tools.
Here at Sinai-Grace, we are using MedRez for the first time. In prior years, schedules were done in Excel, which former chief’s report required 40+ hours just to develop the baseline schedule. When exploring scheduling software options, I was drawn to MedRez for the advertised randomizer, as well as the price of $395/year. Our residents staff 3 teams in our ED with 3 different shifts (as well as some coverage at a 4th site, our rural/community site). Scheduling is also complicated by our grand rounds on Thursday morning, which essentially mandate individuals working Wednesday afternoon or night shift to attend grand rounds and remain unable to work clinically on Thursday.
For the scheduler
Initial setup with MedRez can be a bit cumbersome. Before you can do any scheduling for an individual block you will need to setup resident names, block dates, block names, annual rotation schedule, shifts, and tallies (which tag the shifts as ‘day’, ‘night’, etc) Some of these parameters have to be created in a specific order, which you don’t find out until you run into an error message (or do a detailed pre-reading of the help documentation).
Once up and running, the interface still takes a little getting used to, but does work quite efficiently. There are tools for batch selection and deletion. For example, removing all PGY-II residents from afternoon shifts for the block can be easily accomplished. As you schedule shifts, the software will attempt to highlight individuals who could fill the shift, based on your programmed duty hours. Conversely, you can select an individual and it will highlight potential shifts in the block they could cover. Unfortunately, the programming of duty hours is not 100% EM-centric. For example, we aim to limit the number of night shifts in a row to 4 and to give at least one extra day after the post-nights day off. This was too complex to fit into the existing duty hours parameters in MedRez.
The ‘Random Generator’ was one of the most important features I was looking for in a program, but it does have some limitations. I dreamed of a program that would do all my work for me, while I basked in the glory of chiefdom. Unfortunately this is not the case. Despite the software being aware of who is in the ED for each block, the generator does not take this into account when programming coverage on the first and last days of the block. Also, as some of our coverage rules are unable to be programmed in, the generator ends up with some shift coverage that needs to be tweaked after the fact. We also try to designate one weekend off per block, which the random generator is so far unable to fill reliably. Subsequently, my workflow involved identifying who can cover afternoon and night shifts on the first/last days and entering those in manually before starting the random generator, followed by extensive reorganizing. That said, I do find the tool overall very helpful. I am provided a nice rough draft of generally who will be covering days/afternoons/nights during a certain week. The random generator has also been 100% so far in granting vacation requests (which users can input on their own).
Tallies can be customized, and goals for each individual can be set. In this case we see Dr. Montrelli needs at least one more swing shift and 3 more total shifts. Dr. Shalam need 2 more shifts to meet her goal of 17 shifts.
For the residents
MedRez has a completely different front-end for the users than the scheduler. This is a more modern interface, that scales for mobile, tablet, and web. It is highly touch-optimized and provides great features for users including export to .ics (for Google Cal/ Apple Calendar), vacation requests, and printing of a PDF with an individual’s block schedule. I have heard nothing but great feedback from my co-residents on these perks. One limitation to note is that individuals have equal access to everyone’s schedules. This could theoretically allow a maleficent individual to modify others vacation requests or identify perceived disparities in scheduling equality to whine about. Your program’s MedRez home page can have password protection, but subsequent to that there is no further security on each residents individual page.
Each user has their own individual page for scheduling and requests.
Users can print a PDF of their schedule. Perfect to put on the fridge or email to mom.
Both the scheduling and user interface work well, including on mobile interfaces and the old version of Internet Explorer running inside our EMR.
I have found 2 technical hiccups with MedRez. The first is with scrolling on computers with touch screens, like the Surface, using Google Chrome. When on the user interface, scrolling can only be accomplished through touch and not the mouse wheel. Other browsers respond to both scrolling and touch scroll. Per discussions with the programmer, this is a limitation of the website being optimized for touch devices. Secondly, exporting a calendar feed to Google Calendar defaults to GMT time zone. This is a limitation of GCal, and can be circumvented by using the export to .ics feature. That said, I have found the support to be excellent. The creator of the software provides quick and relevant responses to emails, even for users in the trial.
Easy to view on phone/tablet/computer as well as export to pdf
Identifies and highlight potentially resident/shift pairings & duty hour violations while scheduling
Tracks annual totals for each tally (days, nights, ultrasound, etc)
Single click to add/remove coverage
Tools for dynamic batch selection
Duty hour customization not optimized for EM scheduling.
No integrated mechanism for shift swaps
All resident schedules are open
MedRez is a strong web-based scheduling platform. It has made life easier for our program – both for the schedule-maker and the residents. Utilizing the random generator as a starting point, creating a block schedule takes just a few hours rather than days. Vacation and day-off requests have near 100% fulfillment with the combination of the generator and hand-tweaking. The user interface has excellent touch-enabled functionality and robust capabilities. While the initial setup was a bit onerous and the random generator is not perfect, the benefits of MedRez are readily apparent.
Amion is an online website that caters to medical scheduling. It’s set up like a fancy online excel file. It offers different ‘pages,’ where you can schedule the yearly block schedule, call schedule and daily shift schedule. It’s accessible to everyone with the use of a program specific passcode. It’s created with the use of their supplemental program, called OnCall. Everything is updated in real time. It also allows access to the Amion mobile app, where you can view your program’s daily schedule.
For the scheduler
To start, you have to download Amion’s scheduling program on your computer, called ‘OnCall.’ This was primarily designed to be run on a PC, but they offer a download option that comes with WineBottler that will run on Mac’s. I use a Mac, and other than an occasional hiccup, it operates smoothly.
Amion can be edited to your program’s specific requirements. This general setup was passed down to me (see image below), but if you are just starting, this will take some time to set up, as you will start with a blank slate.
How my OnCall program appears. From here, I have to manually place in every resident.
Once this is set up, then you can manually schedule every individual resident (which also takes a lot of time). It does have a helpful sidebar that appears while you’re doing the daily shift schedule that shows the amount of shifts the resident has that block and their vacation requests. Unfortunately, everything still has to be entered in manually. This increases your risk for errors. There is a built in autoscheduler, but it cannot handle all the individual preferences our program needs (for example, we have a night block that cannot be worked into the scheduler). It alerts you if you have overlapped someone’s schedule, but it does not allow you to program in ACGME duty hour violations or any way to alert you if you schedule someone for less than a certain number of hours between shifts. It does allow you to work on the schedule however far out you need, and can publish the schedule online to any date you want. It saves online to the server, but you also have the option to save to your hard drive in case a file gets corrupted or something changes.
It also has a block view, which allows you to publish the resident’s assigned blocks for the academic year. You can edit the dates of the blocks to however your program designates (4 week blocks v monthly, etc). The nice feature of the block view is you can enter everyone’s vacation requests and weekends need off in at the start of the year. When you’re scheduling, an alert will pop up if you are attempting to schedule a resident when they’ve requested off.
The third option is to schedule call. You can then schedule residents for call each day and have that populate to the Amion website.
Amion has an online swapping feature. We do not have this activated, as all swaps have to be approved through the chiefs. There is also the option for people to do their vacation and other shift requests online that will upload to OnCall.
It does have a useful help page on the website that is full of videos and advice on how to set up everything and to use all the different functions it provides.
For the resident
It allows the resident to link the website to their personal calendar (iCal, Google calendar) with helpful embedded links. Also, Amion allows the resident to view the schedule 3 different ways.
The first view is the block shift schedule. Where you can view the entire ED schedule and also have the option to highlight anyone’s individual schedule.
An example of an old schedule. Different level residents are represented in different colors.
The second view is the calendar view. This is specific for one resident and shows your approved vacation, call, and shifts.
This is specific for one resident and shows your approved vacation, call and shifts.
Allows you to view all residents that are scheduled for a specific day.you can break this view into sections by department/hospital/shift type
Easily accessible across all platforms and devices
Provides iCal and Google calendar links, which automatically updates
Updates in real time
Other programs can view as long as they have the program password
All residents can view all schedules, allowing them to set-up swaps
Does have option to look at total amount of shifts worked and compare. Can publish this online versus making it private. Does not allow you to look at morning vs evening. Can look at overnights.
Can be passed down from chief to chief throughout the years
Auto scheduler tough to use and hard to make work with all the different challenges of ED scheduling
All swaps and vacation requests have to be done by scheduler (though there are options for this to be done through Amion)
Takes a lot of time to set up schedule
AMiON is a web-based user interface for the scheduling program ‘OnCall’. It provides accessibility with support for a broad variety of devices and features tools for integration into calendar applications. It also features shift-swap and vacation capabilities. The auto scheduler is not in use in our department because it is unable to account for some of our rules, but your mileage may vary. Overall, AMiON provides a solid web interface and continues to be successfully utilized by our program.
Shift Admin is a web-based scheduling program that auto-generates schedules based on specific criteria defined by the Administrative User. The program can support the scheduling needs of multiple users at a single hospital or multiple facilities, and allows for integration into one schedule or generation of separate schedules. Cost for scheduling is based on the average number of residents on your monthly schedule, with the cost coming to $5/month/resident. Flat rates can also be negotiated directly. Customized rules have associated “point-values” assigned to them (defined by the Administrative User) which result in “penalties” if that rule is broken when a schedule is auto-generated. After specific requests have been entered (i.e. vacation, day off requests, etc), the auto-generator analyzes hundreds of millions of schedules to produce one with the least amount of penalty points possible. The Administrative User can then analyze the data to determine if the penalties are acceptable. Once a schedule is generated using the auto schedule generation feature, it can be edited/tweaked as needed. If edits are required, a new schedule can be generated using the Administrative Users edits as a new starting point, thus reducing overall penalties and improving the overall schedule. The schedule can then be exported to excel or PDF for email distribution. Users can also log-in to their online account to see the schedule, offer trades, or sync to external calendar software (i.e. iCal, Outlook or Google calendar) for offline use.
For the scheduler
Shift Admin requires a lot of data input prior to actually being able to create a schedule. Users can be input through the use of a CSV template available for download on the Shift Admin site. Schedulers then need to create “Contracts” to assign to each of these users, which is likely to be the most time-consuming aspect of setup. Contracts are designed in order to tell the schedule generator what the rules are for any specific resident. Each of our PGY classes has a separate contract, and this is where you input duty hour restrictions, how many nights each resident should work, how many days off they should have per week, and how many scheduling requests they are allowed to make. The contracts are not a particularly intuitive part of the program, as each “rule” created in the contract is additionally assigned a specific weight, which tells the schedule generator which rules are more important to abide by (ie: duty hour violations are more important than having a weekend off).
Once users have their contracts assigned, you can create schedule periods for each block schedule. Users in the department that month can be assigned, and specific schedule requests that must be honored (for example, clinic days for off-service residents and which residents cannot work nights the last night of the block) can be input by the scheduler on this page. This has also proven to be a time-consuming process due to the high number of off-service rotators that often do not follow our block schedule for their rotation.
Admin entered requests fall below the line, whereas user input requests fall above the line. Requests can be marked as “FIXED,” and can be made only for specific shifts off in addition to full days off.
From there, Shift Admin’s schedule generator goes through millions of iterations of potential schedules until it comes up with one that breaks as few of your contract rules as possible (denoted by the weight). The generator runs for 20 minutes but can be stopped at any time. Manual edits can be made very easily once the schedule is generated, and when you are happy you simply publish the schedule for all users to view.
Logged in users see their schedule highlighted
The entire process when starting fresh with Shift Admin can be arduous. They do, however, offer very responsive and helpful tech support. When initially learning the system, we set up online meetings with the tech specialists, who were happy to teach us the system (including going through an entire contract with us and teaching us the best way to assign weights). Their support has certainly made the program more “user friendly,” especially for those of us that are not as tech savvy. At any time, if you are having an issue, Shift Admin will typically respond to an email within 5 minutes or will answer the phone immediately to help you troubleshoot.
While the customization process can be very time consuming and may require a lot of changes when creating the first schedule, Shift Admin itself can be customized to work for very complicated schedules. At both Jefferson (which has 39 residents staffing 4 different EDs with 120 off-service rotators to incorporate annually) and Wright State (which has 46 residents staffing 6 different EDs), Shift Admin has made a huge difference in terms of the ease of scheduling. Staffing for multiple sites and specific requests off for conference and morale days can be incorporated into a single block schedule using Shift Admin.
The true customization comes mainly from building the contracts. By changing the penalty weights in the contracts for different rules, you can tell the system what is most important for your residents’ schedule. Do you think it’s absolutely necessary that all residents have at least one weekend off every block? You can weigh that particular rule more heavily than others, and the generator will break that rule less often. However, that also means that the generator may need to break another, less heavily weighted rule in order to build a functional schedule. These contracts can additionally be customized for each site your residents staff, and changed on a block-by-block basis to ensure that residents on a particular rotation are scheduled appropriately.
Additionally, each user profile can be customized for shift preference (i.e. if a resident requests to work all night shifts, the maximum number of night shifts can be changed for an individual user without affecting the base contract and other users assigned to it). This feature can be changed on each schedule and changing this preference in one schedule period does not automatically change it for all remainder schedule periods.
The mobile site allows users to view only their schedule or the group schedule as well as make offers for shift trades. From the mobile site as well as the full site, users can subscribe to their schedule via iCal or Google calendar. Users can opt to view the full site if desired, which works well on an iPhone. For those who prefer paper, a PDF can be printed directly from the site.
User shift trade interface
Generator that analyzes millions of schedule iterations
Exceptional tech support
Resident driven requests and shift trades
Time consuming set up
Shift Admin is an online schedule management system that makes scheduling quick and effective. The auto-generator uses a complex algorithm to analyze hundreds of millions of schedules, resulting in a schedule that best meets predefined criteria. The interface is intuitive and easy to use. Both users and admin can input specific requests. Although it takes a significant amount of time to set-up, the support staff is knowledgeable, friendly, and helpful. Despite it being more expensive than it’s scheduling competitors, I feel it has tremendous benefits and is worth the cost. Shift Admin will ultimately decrease the amount of time required to create schedules. After all, nothing is more valuable during residency, than our time.
With a website founded in 2000 and developed by math PhD’s, WhenToWork (WTW) boasts that they have been providing scheduling solutions for 28 years total. At our institution, it has been the preferred scheduling software for attendings and scribes for years. When our residency was founded, it became our scheduling tool as well (possibly due to ease of just increasing payments to an already approved company). It provides a relatively bare-bones scheduling interface with lots of functionality and customizability. Their main “claim to fame” feature is the “autofill” system, developed by the aforementioned PhD’s.
For the scheduler
Starting with WTW is easy – for each employee, a name and email address is supplied. There are options to add phone numbers, fax numbers, addresses, and other extensive identifying information as needed. There is then a single button to press that sends login information to anyone who has not yet accessed the site. Once this is complete, with or without the employee logging in, they are available for scheduling. Individual hour restrictions and shifts per week can be set to help avoid duty hour conflicts. The website loads quickly, and provides several different graph and text views of the schedule. There is an Android app that is relatively straightforward and, while it has less functionality than the full site, is useful for schedule checking on the go.
As for the actual schedule itself, hours and location of shifts are made clear, color coding helps differentiate between shifts, and shift hour templates can be programmed in for quick entry into the schedule. The shift by shift input can be cumbersome, but there are deeper features that allow streamlining of the process. There is an available trade board that, while unintuitive, allows users to control their trades rather than needing implementation by the admin. The site also accepts schedule requests, and these can be applied prior to inputting the schedule so nobody is scheduled during time they do not want to work.
Settings for adding a shift
While I have not personally used the autofill function yet, the summaries seem promising. Employees can enter time off, as well as shift preferences, which can then be used to autofill the schedule based on admin-set parameters. I suspect that with the variability of the schedule in EM, it may take more work to correctly utilize this functionality – a project that will take some time to flesh out. This seems more easily implemented in jobs with more uniform shift types (versus the constantly changing resident landscape)
For the residents
WhenToWork’s best feature for residents is the ease of viewing the schedule. Each schedule entry is color-coded and labeled with the area and time. Both the app and the website allow users to view “WHO’S ON NOW” and “WHO’S ON LATER” links, along with individualized schedules for themselves and others (viewable in daily, weekly, and monthly increments). Schedule requests are easy to put in, and allow users to select days and give reasons for their selection. These are automatically forwarded to the scheduler. There is a messaging system that sends a message straight to the admins through the website.
The only hefty downside I have found from a user perspective is the difficulty of shift swaps. This process typically involves 4-5 steps to approve and implement a shift swap, which has required an explanation multiple times. Also, there is no app available for iOS products (though the mobile website suffices for most applications).
Overall, shift swaps aside, WhenToWork has received no complaints from our residents, who seem to find it easy to navigate, easy to view schedules, and great for schedule requests and communication.
Schedule view for WTW
Very easy to access – employees can be entered with minimum information and automatically sent login instructions
Communication – messages can be posted permanently to a message board on the schedule itself, messages can be sent directly to employees and admin, and there is even an option to send an urgent text alert to all employees
Ease of use – the minimalist nature of the website makes it easy to load, the android app allows portability, and the ability to export shifts to iCal, google calendar, and other third party systems is very useful. The website and app both have the option to display “Who’s On Now/Who’s On Later” which can help greatly in planning events and ensuring residents who are scheduled are in attendance
Customizability – shift templates, weekly and monthly templates can be created to make the scheduling process easier, and various colors help easily differentiate shift times/types.
Hours management – each employee can be customized with max hours per week, required time off per week, and other parameters. The system will then automatically detect and flag duty hour violations.
Submitting trade requests is unwieldy and has a steep learning curve – employees must put their shift on the tradeboard, the other employee suggests a trade, each must confirm the trade, then it is sent to admin for approval. This could likely be streamlined.
No support for an iOS app at the time of this writing – iPhone users must go through the website.
Changing shifts from one area to another requires deleting the shift and recreating it to properly display the correct shift location
By default, any changes to the schedule automatically sends an email to the affected user, which can be annoying when many changes are being made without deselecting this option manually each time
Entering shifts can feel cumbersome to a new user who hasn’t yet mastered the intricacies of the system
Cost: Not free
Cost: Variable based on duration and number of employees – for our 36-resident program, it costs $330/year.
The cost for WTW is available on monthly, 3 month, 6 month, or yearly terms. Longer contract lengths offer significant savings. This pricing scheme is readily available on the website, and is dependent on the number of employees to be supported on the site. As our residency has 36 residents, we fall into the category that, on a yearly basis, pays $330 per year.
WhenToWork is not the most aesthetically appealing scheduling option, and it has a steep learning curve, but there are many benefits and options available that can make it a great scheduling tool for any residency. The ability to easily communicate, quickly access the schedule, export the schedule, and shift hour violation checks make it very useful for a chief resident scheduler. While there are several downsides, they are easily addressable and, overall, once the scheduler and residents become familiar with the interface, it is a very solid scheduling option.