Patent ID: 8874456

Claim:
A computer apparatus for implementing a resource scheduling system comprising: a memory storing: a set of resources, each resource having associated user-defined attributes, the associated attributes including at least one of a rank, resource cost and skill level, at least one calendar having a user-specified plurality or temporal intervals representing a pattern of user-specified dates, for utilizing resources, at least one shift, each shift including a user defined pattern of time periods representing a recurring pattern of time periods for resource utilization; at least one slot representing resource demand, resource demand being demand for one or more individual resources of the set of resource during at least one user selected shift of the at least one shifts, and a set of natural language resource constraints of the resources in the set based on the at least one resource and the at least one slot, the natural language resource constraints generated by the user; and a processor coupled to access the memory and configured to generate a schedule of the resources from the set of resources, the generated schedule utilizing said resources over ones of the plurality of temporal intervals of the calendar that satisfies at least a subset of the resource constraints, the processor forming the schedule by: (a) eliminating constraints that cannot be satisfied or have no effect and removing resources from slots based on the remaining constraints, (b) having user-defined shifts, each shift representing at least one of the slots of resource demand as associated with certain temporal intervals of the calendar, and (c) assigning said resources to one or more of the user-defined shifts, such as that for a given shift, the assigned resources fulfill resource demand represented by the slots corresponding to the given shift; wherein the processor: schedules simultaneously multiple resources of the set, such that the simultaneously scheduled multiple resources fulfill resource demand represented by the slots; and for resource of the set, allows generation of one schedule of different shifts of the one resource for different slots of demand of the one resource; and wherein the user-defined shifts are defined by a resource manager.