This problem can be solved with an algorithm that evalutes each event by taking the weighted sum of all the interactions seen on that event, where a user model defines weights for a set of profiles. A positive weight means interactions from this profile increase the ranking of the event this profile interacted with. A negative weight does the opposite. All the events are sorted by rank, and the top results are shown for an evaluation over a given timespan. Previously shown events are exluded from subsequent evaluations.