1. A method, comprising: receiving an event associated with a user; determining a category of the event, where the category is one of a plurality of predetermined categories; determining whether the event is a recurring event, utilizing a processor; determining a time the event occurred, and storing the time and the event under the determined category in association with an identifier of the user in a database, when it is determined that the event is a recurring event; determining whether a single previous occurrence of the event or multiple previous occurrences of the event exist, when it is determined that the event is a recurring event; when it is determined that the single previous occurrence of the event exists: determining a first interval between the single previous occurrence of the event and the received event, and storing the first interval and the event under the determined category in association with the identifier of the user in the database; when it is determined that multiple previous occurrences of the event exist: measuring time intervals between each of the multiple previous occurrences, determining whether the time intervals are each within a predefined threshold, determining a second interval between a previous occurrence of the event and the received event, and storing the second interval and the event under the determined category in association with the identifier of the user in the database, when it is determined that the intervals are not each within the predefined threshold, and calculating an average of the time intervals and storing the average and the event under the determined category in association with the identifier of the user in the database, when it is determined that the intervals are each within the predefined threshold; receiving from a content provider a request for a category, where the request identifies the user; identifying the identifier of the user in the database by querying the database for the user identified in the request, where the identifier is associated with a plurality of categories stored in the database, and where each of the plurality of categories contains a plurality of events; determining whether a recurring event associated with the user is expected to occur within a predetermined time period, utilizing the plurality of events associated with the identifier of the user; when it is determined that the recurring event is expected to occur within the predetermined time period, returning a first category of the plurality of categories to the content provider, where the first category includes the recurring event; and when it is determined that the recurring event is not expected to occur within the predetermined time period: calculating an event score for each of the plurality of events within the plurality of categories associated with the identifier of the user, calculating a category score for each of the plurality of categories, where each category score is based on an aggregation of event scores for events within that category, determining a second category of the plurality of categories with a highest category score, and returning the second category to the content provider.