1. A computer-implemented method for providing a user with a to-do list of tasks, the method comprising: determining, using one or more computing devices, one or more goals associated with a user, the one or more goals comprising objectives that the user wants to achieve; identifying, using the one or more computing devices, one or more notifications associated with the user, each notification notifying the user of an event comprising an action by another user with respect to the user; identifying, using the one or more computing devices, one or more tasks, the one or more tasks contributing to at least one of the one or more goals and providing a response to the event relating to at least one of the one or more notifications; and providing, using the one or more computing devices, the one or more tasks for display to the user.