1. A computer-implemented method comprising: receiving a plurality of rules, each rule specifying one or more conditions and one or more actions to be performed when the one or more conditions are satisfied: assigning a plurality of tasks to a plurality of users, each task having a schedule indicating one or more scheduled times when a user to whom the task is assigned is scheduled to be located at a respective geographic location; sending respective data sets to a plurality of client devices associated with the respective plurality of users, wherein each data set sent to each user specifies the geographic location indicated by the schedule for each task assigned to the user, and wherein each client device is configured to track locations of the respective client device; receiving tracked locations from one or more of the client devices associated with one or more of the users, and monitoring the tracked locations over time; determining, based at least in part on the received tracked locations, one or more task progress values, wherein each of the task progress values represents progress of a user on a respective task assigned to the user; and wherein determining a particular task progress value comprises determining a degree of completion of a particular task based at least in part on the tracked locations received from the client device of the particular user to whom the particular task is assigned; identifying one or more of the rules for which the conditions svecified by the identified rules are satisfied, wherein the one or more identified rules are identified based, at least in part, on the determined task progress values; and redistributing one or more of the tasks among the plurality of users based on the respective task pr progress values by performing the actions corresponding to the identified rules.