1. A computer-implemented method comprising: receiving a plurality of user-defined rules, each rule comprising a task identifier, one or more conditions, and one or more actions that are performed when the one or more conditions are satisfied; assigning a respective task to each user of a plurality of users, the task having a schedule indicating one or more scheduled times when the user should be located at a respective geographic location for the scheduled time; sending respective information to one or more client devices, wherein each client device is associated with a different one of the users and wherein the information comprises the geographic locations indicated by the schedule for the task assigned to the user, wherein the client device is configured to track locations of the client device; receiving tracked locations from a plurality of the client devices and monitoring the tracked locations over time; determining a respective task progress for one or more first users based on the received tracked locations, wherein determining the respective task progress for a particular first user comprises determining a degree of completion of the task assigned to the particular first user and, based thereon, determining the respective task progress for the particular first user; calculating a respective performance measure for each of the users based on a number of tasks assigned to the user that have an on track status and a number of tasks that have an ahead status; identifying one or more of the user-defined rules that have respective conditions satisfied by one or more of the calculated performance measures; and redistributing one or more tasks among the users based on the respective performance measures by performing actions of the identified rules.