I need a custom on-call scheduling program created.
I have a business with multiple employees who take day and night call, every night of the week.
Each employee has certain rules when he can or can't take call, as well as certain holidays that he can or can't take call during.
Additionally, there are back-up call employees (separate) which are scheduled separately.
There will be 3 layers of "call": Day, Night, And "Back-up"
I need a program that can schedule providers based on the rules that each provider has (i.e. Provider X cannot take call on Thursdays, and he needs to take 3 weekend calls, consisting of Friday/Saturday/Sunday), in the next quarter.)
We generally need to make sure the number of calls evens out, so the program would need to auto-populate the schedule evenly once the program has taken the rules into account; additionally, the separate back-up providers should be distributed evenly among the primary call takers.
We generally group call by quarter (i.e. Jan-March/April-June/etc...) so things generally even out by quarter; if something is uneven for a quarter, they should even out by the end of the year (for example, if someone has 3 weekend calls one quarter, but someone else only has two, the next quarter the first would have 2 and the second would have 3 calls.)
This should have a simple-to-use interface (drag-and-drop, if possible), a way to input the "rules", and should hopefully be able to connect and autopopulate microsoft exchange, which we use for our scheduling.
It should also allow for on-the-fly call swaps (i.e. Person A cannot take next Monday, but will switch with Person B for the following Tuesday, etc...)
We can discuss milestones; For a demo of sort of what we're looking for, see: http://www.youtube.com/watch?v=ICsHrdtXZNY
The program would allow you to enter the employee names, parameters (such as X is off on all Thursday, Y needs to be on call for Christmas 2012), it would keep track of which employees have been on call for which holidays (preferably ongoing, for years) and will allow employees to be added and removed as needed.