1. A method comprising: by one or more computing devices, receiving, from each of a plurality of mobile computing devices associated with a plurality of users, a plurality of data sets that each comprise data identifying: the user that the data set corresponds to; one or more locations where the user was or is at; an acceleration or speed associated with the user, and for each of the locations, a corresponding time when the user was or is at the location; by one or more computing devices, for a first user from the plurality of users, identifying one or more second users of the plurality of users, wherein: each of the second users have a social-networking connection with the first user; and a data set corresponding to each of the second users and a data set corresponding to the first user share: one or more previous common locations; and for each of the previous common locations, a common time when both the second user and the first user were at the common location; by one or more computing devices, generating one or more statistics based at least in part on the data sets corresponding to the second users, wherein the statistics represent behavioral patterns of the second users, and one or more of the behavioral patterns comprises an inferred activity of the second users based at least in part on the accelerations or the speeds; by one or more computing devices, generating a recommendation for a current time for the first user based at least in part on one or more of the statistics, wherein: the recommendation comprises one or more activities at a particular location where at least one of the second users is located at the current time; the recommendation corresponds to the inferred activity of the second users; and the first user is not associated with the one or more activities at the particular location; and by one or more computing devices, sending the recommendation to the first user.