Patent ID: 7676391

Claim:
A computer-implemented scheduling system, comprising: a processor; a data store storing (1) capacity data indicative of total capacity and start time capacity for each of a plurality of appointment types, wherein the data store stores the capacity data as a plurality of total capacity data structures and a plurality of start time capacity data structures, each total capacity data structure and start time capacity data structure corresponding to one of the plurality of appointment types, and (2) resource data indicative of resources that support each of the plurality of appointment types; wherein each total capacity data structure includes a total remaining capacity indicator indicative of a total number of appointments of the corresponding appointment type that can be scheduled during a given time period to remain within the total remaining capacity for the corresponding appointment type at the given time period based at least on the resource data; wherein each start time capacity data structure includes a plurality of substructures, one substructure corresponding to each allowed start time for the corresponding appointment type, and wherein each substructure includes a start time capacity indicator indicative of a remaining start time capacity comprising a number of appointments of the corresponding appointment type that are allowed to start at a start time represented by the corresponding substructure based at least on the resource data; a scheduler engine operable to: receive requests to schedule appointments of the plurality of appointment types; schedule the requested appointments based on the total remaining capacity indicators and start time capacity indicators for the corresponding appointment types of the requested appointments; update the capacity data based on the scheduled appointments, wherein updating the capacity data comprises updating the total capacity data structures and the start time capacity data structures so as to account for the scheduled appointments; wherein updating the total capacity data structures comprises updating the total remaining capacity indicators for the appointment types of the scheduled appointments over different time periods as appointments are scheduled during the different time periods; and wherein updating the start time capacity data structures comprises updating each of the substructures for the appointment types of the scheduled appointments to represent possible appointment durations for appointments scheduled to begin at start times corresponding to the substructures by truncating durations of the substructures beginning at a time period for which the total remaining capacity indicator indicates that there is no total remaining capacity.