1. A method comprising: by a computing device, accessing a log associated with a user, the log comprising a plurality of entries that each indicate a geo-location of the user at a particular time of day of a particular day of a week, each of at least some of the data points being based on a geo-location determined and reported by a mobile computing device of the user without manual user input; by the computing device, determining one or more geo-location centroids based on a distance between the respective geo-location centroid and each of the geo-location data points, wherein each geo-location centroid is representative of the plurality of geo-location data points obtained during the particular time of day of the particular day of a week; by the computing device, determining a place corresponding to each of the geo-location centroids, wherein the place corresponds to one or more particular activities; by the computing device, updating a social graph associated with the user with information associated with the activities; by the computing device, determining a spatial center of a plurality of geo-location centroids based on a distance between each geo-location centroid and its respective spatial center, each spatial center representing one or more of the plurality of geo-location centroids of the particular time of the particular day of the week; by the computing device, determining a time-based routine of the particular day of the week based at least in part on a number of spatial centers of each particular time of day of the particular day of the week, the time-based routine comprising a pattern of a plurality of spatial centers of a plurality of times of the day of the particular day of the week; and by the computing device, determining a probability that the user will be at a particular spatial center at the particular time of day of the particular day of the week based at least in part on the number of geo-location centroids being represented by the particular spatial center.