1. A method for recommending activities to a user, the method comprising: retrieving an activity-type distribution for a user based on the user's personal profile, wherein the activity-type distribution includes one or more activity types and a likelihood that the user engages in one or more activities associated with each activity type during a respective time period; responsive to no activity-type distribution being retrieved, determining the activity-type distribution for the user based on population prior information, which comprises a profile corresponding to a portion of general population; predicting a set of activities that the user will engage in at a future time based on the activity-type distribution; assigning a score to each predicted activity based on a set of metrics, wherein the score corresponds to a probability for the user engaging in the activity at the future time, and wherein the score is weight-averaged based on a metric-weight distribution; and recommending one or more of the predicted activities based on the score.