A device for providing alerts to a viewer concerning programming events is disclosed. The device determines preferred programming events from among available programming events using programming event metadata and a viewer profile. The metadata includes goodness of fit scores associated with categories of a classification hierarchy and the viewer profile includes preference scores associated with categories of the classification hierarchy. The device provides an alert concerning a preferred programming event to a communication device of the viewer. The alert may be provided by sending data to a set top box, a computer, a pager, an email address, an instant messaging application, or a wireless communication device. The alert may be provided in accordance with contact information contained in the viewer profile. The device may determine a time in advance of the preferred programming event for providing the alert from information in the viewer profile specifying an amount of time in advance for providing alerts, and then provide the alert at the determined time. Related embodiments of the invention may pertain to processes performed in a device for providing alerts to a viewer concerning programming events. Also disclosed is a device for providing programming events to viewers. The device determines a preferred programming event from among available programming events using programming event metadata and one or more viewer profiles. The metadata includes goodness of fit scores associated with categories of a classification hierarchy and the viewer profiles include preference scores associated with categories of the classification hierarchy. The device provides preferred programming events to viewers in accordance with the desirability determinations. The device may notify a viewer of a preferred programming event, and provide the programming event in response to a request from the viewer to receive the programming event. The device may determine the desirability of a programming event by determining categories of the classification hierarchy for which there is a goodness of fit score in the metadata of the programming event and a preference score in one or more of the viewer profiles, and then determining a desirability score for the programming event as a function of the goodness of fit scores and preference scores of the matched categories. That function may be weighted in accordance with the specificities of the matched categories. The device may determine the desirability score for a programming event by determining a score for each matched category that is a function of the goodness of fit score and a preference score of each category in a branch of the hierarchy terminating in the matched category, and then determining a maximum score among the matched category scores. The preference score of each category in a branch of the hierarchy may be weighted in accordance with its ordinal level within the hierarchy. Alternatively, the device may determine a desirability score for a programming event by determining a score for each matched category that is function of the goodness of fit score and a preference score for the matched category in each of the viewer profiles that is weighted in accordance with a priority of the respective viewer profile, and then determining a maximum score among the matched category scores. Alternatively, the device may determine a desirability score for a programming event by determining a score for each matched category that is function of the goodness of fit score, the preference score in each of the viewer profiles for the matched category, and a specificity weight of the matched category, and then determining a maximum score among the matched category scores.