Patent ID: 8781873

Claim:
A computer-implemented method for scheduling activities, comprising: receiving a request, from a user device, to book an appointment for an activity in a schedule, performing a check of a service region associated with the request; performing a check on a no-later-than time included in the request; performing a check on a no-sooner-than time included in the request; subsequent to the performing the check of the service region, the performing the check on the no-later-than time, and the performing the check on the no-sooner-than time, providing, to the user device, a plurality of time slots as possible appointment choices for the appointment, wherein time slots in the plurality of time slots provided as the possible appointment choices are available in the schedule for booking the activity; locking the plurality of time slots provided as the possible appointment choices to the user device, wherein the locking makes the plurality of time slots provided as the possible appointment choices unavailable for subsequent requests; receiving a rejection of the plurality of time slots provided as possible appointment choices, wherein the rejection is received from the user device; in response to the rejection, unlocking the plurality of time slots, and providing, to the user device, a substitute plurality of time slots as possible appointment choices for the appointment; receiving, from the user device, a selection for one of the time slots in the substitute plurality of time slots provided as the possible appointment choices; unlocking all time slots in the substitute plurality of time slots provided as the possible appointment choices other than the selected time slot, wherein the unlocking the all time slots in the substitute plurality of time slots other than the selected time slot is performed in response to the receiving the selection, and the unlocking the all time slots in the substitute plurality of time slots other than the selected time slot causes the unlocked time slots in the substitute plurality of time slots to become available for subsequent requests; and booking the activity in the selected time slot by updating information stored in a computer memory device.