Patent ID: 8181181

Claim:
A method of scheduling for a user, the method comprising: retrieving a work capacity of the user, wherein the work capacity comprises working hours of the user; retrieving a plurality of prescheduled future events of the user, each prescheduled future event comprising a predetermined date and a predetermined starting time; retrieving a plurality of unscheduled enhanced tasks of the user; and optimizing a schedule for the user based on the work capacity, the plurality of prescheduled future events and the plurality of enhanced tasks of the user, wherein the optimizing the schedule comprises: adding the plurality of prescheduled future events to the schedule; and adding the unscheduled enhanced tasks that have no dependency on another unscheduled enhanced task as early in the schedule as possible after the plurality of prescheduled future events are added to the schedule, wherein the unscheduled enhanced tasks that have no dependency on another unscheduled enhanced task comprise: one or more first enhanced tasks that have a deadline; and one or more second enhanced tasks that have no deadline; wherein the adding the unscheduled enhanced tasks that have no dependency on another unscheduled enhanced task to the schedule comprises: adding the first enhanced tasks as early in the schedule as possible; and adding the second enhanced tasks as early in the schedule as possible after the first enhanced tasks are added to the schedule; wherein the unscheduled enhanced tasks that have no dependency on another unscheduled enhanced task comprise one or more third enhanced tasks that are dependent on a scheduled task, further comprising adding each third enhanced task to the schedule to start after a corresponding depended on scheduled task is completed.