In a situation where a controller is unable to fulfill their duties for their allocated shift, but is also not in a position to remove themselves from the calendar, anyone volunteering for the currently filled controller slot should have the option to 'bump' the existing controller, i.e.:
Controller 1 is rostered for night control
Controller 1 is eaten by a parrot, and his last act is to get a message to Controller 2 that he is unvaliable for duty
Controller 2 adds themself to the controller slot currently taken by Controller 1
At this point, a popup should confirm that Controller 2 is 'bumping' Controller 1 from duty.
If this is accepted, an SMS should be dispatched to Controller 1 letting them know Controller 2 has taken their slot
Controller 1 should be removed from the calendar, and Controller 2 should be on the rota for automatic SMS handover etc.
Alternative approach. Volunteer controller goes to the top of the list. When code triggers phone transfer the transfer targets the topmost on the list.
In a situation where a controller is unable to fulfill their duties for their allocated shift, but is also not in a position to remove themselves from the calendar, anyone volunteering for the currently filled controller slot should have the option to 'bump' the existing controller, i.e.: