A queue-based scheduling system, which comprises an automated staff
scheduling computer program that is highly flexible in enforcing
scheduling rules. This flexibility comes from the ability to: (1) Define
conditional and unconditional rules; (2) Rank the rules/requests in
varying priority as represented by a numeric value assigned to each
rule/request; and (3) Specify rules both per individual and per group.
These three abilities synergistically produce an automatic scheduling
system that can enforce a wide variety of scheduling rules and
requirements seen in actual staff scheduling situations. Furthermore, all
these abilities rely on using a queue per scheduled assignment to hold
requests and rules.