METHOD AND SYSTEM FOR PRESENTING AN ELECTRONIC PROGRAMMING GUIDE

Abstract: A method and system presents an electronic programming guide to an end viewer utilizing a selected standard calendar object format for the programming information. The selected standard calendar object format allows calendaring software applications to capture and exchange calendar information, and allows programming information to be placed directly into a calendaring software application that uses the standard calendar object format.

Description: METHOD AND SYSTEM FOR PRESENTING AN ELECTRONIC PROGRAMMING GUIDE TECHNICAL FIELD The present invention relates to a method and system for presenting an electronic programming guide to an end viewer. BACKGROUND ART There are several ways available for an end viewer to check television programming listings. For example, most daily newspapers publish program listings for that day, with the program listing covering the local broadcast channels, and sometimes including cable television channels, and possibly even satellite channels. The listings in the daily newspaper are usually only for that day. However, television guide books are usually published on a weekly basis, and contain programming listings for the entire week. Further, with the growing popularity of the Internet, some existing webservers make television program listing information available to a user in a web browser format. Program listings on the Internet may be referred to as an electronic programming guide. Further, cable television providers sometimes send electronic programming guides to subscribers. These electronic programming guides can sometimes be more convenient than the printed listings, however, these electronic programming guides are not in a format that allows an end user to apply more than very limited personal preferences to the way that the electronic programming guide is presented. Sometimes, a particular home viewer has very specific interests, and is burdened by the rather unpersonalized information in the printed programming listings and the electronic programming guide. For the forgoing reasons, there is a need for a method and system for presenting an electronic programming guide to an end viewer that makes scheduling of television events more personal and convenient. DISCLOSURE OF INVENTION It is, therefore, an object of the present invention to provide a method and system for presenting an electronic programming guide to an end viewer in which programming events are coordinated with other schedule items on the end viewer's calendar. In carrying out the above object, a method for presenting an electronic programming guide to an end user is provided. The method comprises selecting a standard calendar object format for capturing calendar information from a calendaring software application. The standard calendar object format allows exchanging of calendar information between different calendaring software applications. The method further comprises presenting an electronic programming guide to the end viewer. The electronic programming guide includes programming information in the standard calendar object format to allow placing of the programming information into a calendaring software application that uses the standard calendar object format. Advantageously, by presenting programming information as a calendar object, the user may conveniently coordinate television programs with other scheduled items on the user's calendar. In a preferred implementation, the end viewer uses a graphical user interface to view the calendaring software application. The electronic programming guide is presented to the end viewer at the graphical user interface. Further, in a preferred implementation, upon demand by the end viewer, programming information that is in the standard calendar object format may be copied to the calendaring software application. Preferably, the programming information includes a program item and an associated start time and duration, and the calendaring software application includes a time and date schedule. The program item is copied to the calendaring software application time schedule at the associated program start time. Further, in a preferred implementation, ordinary alarms within the calendaring software application may be activated for the program item. In a preferred embodiment, programming information is copied to the calendaring software application using a drag and drop technique. Further, in carrying out the present invention, a method for presenting an electronic programming guide to an end viewer is provided. The method comprises selecting a standard calendar object format for capturing calendar information from a calendaring software application, and selecting a standard communication protocol for sending calendar information in the standard calendar object format over a network. The method further comprises presenting an electronic programming guide to the end viewer, with the electronic programming guide including programming information in the standard calendar object format sent over the network in accordance with the standard communication protocol. Advantageously, the programming information may be placed into the calendaring software application because the programming information uses the standard calendar object format that is supported by the calendaring software application. In one suitable implementation, a master calendar is stored on the network for the end viewer. Instances of the master calendar are sent to the end viewer to allow the end viewer to store instances of the master calendar on different devices. Preferably, the various instances may be synchronized with the master calendar on the network, which could be, for example, the Internet, an intranet, a home network, et cetera. Further, in a preferred embodiment, the electronic programming guide is sent from a head end server or data center connected to the network, and the electronic programming guide is established based on information received at the head end to allow inclusion of non-recurring programming in the electronic programming guide. In one variation of the present invention, the method further comprises collecting a set of preferences from the end viewer, and automatically copying programming information to a calendaring software application of the end user in accordance with the set of preferences. That is, an end viewer's television watching habits may be anticipated by collecting a set of the viewer's preferences, and then, based on the set of preferences, programming information may be automatically incorporated into the calendaring software application of the end viewer. The advantages associated with embodiments of the present invention are numerous. For example, in preferred embodiments, a user can click and drag icons corresponding to television programs onto a personal calendar. In an alternative embodiment, user preferences can be identified and items can be placed on the user's calendar for the user. Advantageously, embodiments of the present invention provide electronic programming guide functionality integrated with a personal scheduler. In some implementations, the electronic programming guide controls the television. The scheduler could be provided on a device such as a personal digital assistant, a computer, a web tablet, or even a television screen. Further, the scheduler could be provided on any suitable network device supporting a suitable user interface which may be a graphical user interface. By using programming data downloaded to the head end server or data center, even a non-recurring program could be automatically or manually scheduled into a user's calendar. Further, the present invention may be enhanced with Internet and/or e-mail interfaces. In some embodiments, programs could be suggested to the user based on available time slots in a calendaring software application of the user. When a selected program has multiple occurrence, an occurrence could be suggested for viewing based on the user's availability. The multiple occurrences could be on different channels and/or at different times. Further, a multiple occurrence program could be a pay-per-view program. In some embodiments, video-on-demand programs could be scheduled into the user's schedule. Further, a time slot could be suggested by the user for video-on-demand programming. The above object and other objects, features and advantages of the present invention are readily apparent from the following detailed description of the best mode for carrying out the invention when taken in connection with the accompanying drawings. BRIEF DESCRIPTION OF DRAWINGS FIGURE 1 is a system of the present invention and illustrates the presenting of an electronic programming guide in accordance with a standard calendar object format; FIGURE 2 is a block diagram illustrating a method of the present invention for presenting an electronic programming guide to an end viewer; FIGURE 3 is a block diagram illustrating a preferred implementation of the present invention that allows dragging and dropping of calendar objects; FIGURE 4 is a block diagram illustrating additional functionality provided in preferred embodiments of the present invention; FIGURE 5 is a block diagram illustrating an alternative embodiment of the present invention; FIGURE 6 is a graphical user interface showing an embodiment of the present invention that includes drag and drop capabilities to coordinate programming information with other scheduled items on a user's calendar; FIGURE 7 is a block diagram depicting the suggesting of programs to the user; and FIGURE 8 is a block diagram depicting the suggesting of viewing time slots. BEST MODE FOR CARRYING OUT THE INVENTION With reference to Figure 1 , a system of the present invention and a suitable network environment are generally indicated at 10. A head end server or head end 14 is located at head end facility 12. Of course, depending on the size of the service area, it may be desirable to provide additional head ends. For example, some large cities have two head ends providing service. Head end 14 receives programming information from a variety of sources such as satellite dishes along a satellite dish bar, antennas, and land line communication paths. That is, information is received by head end 14 from, for example, sources 16, 18, 20. Further, local programming is received from a local programming source 22. Because some cable companies desire to provide Internet services, head end 14 may also receive information from the Internet 24. Preferably, two-way communication is possible between head end 14 and the end viewer so that calendaring/scheduling capabilities may be integrated with head end 14. The simplified version of system 10 architecture is illustrated herein for convenience. Head end 14 distributes programming information to a plurality of hubs 30, 32. Preferably, distribution to the hub 30, 32, takes place over fiber 34. Hubs 30, 32 distribute programming information to a plurality of nodes. Nodes are generally located in each neighborhood that is serviced. As shown, hub 30 distributes to nodes 36 and 38. Optoelectric conversion takes place at node 36, and the signals are then distributed over coax to serve a number of customer residences 40. Node 38 distributes signals over coax to customer residences 42. That is, a suitable network for embodiments of the present invention may be an existing cable television network, or an upgraded network. Of course, it is appreciated that system 10 is illustrated for convenience, and embodiments of the present invention are not limited to any particular network architecture and may be readily implemented over a cable television network as well as over the Internet, or even via satellite. The network illustrated is a hybrid fiber coax (HFC) network implementation. A hyper fiber coax (HFC) network is a network in which fiber is distributed from a head end to hubs, the fiber continuing to nodes in the neighborhood, and then the last leg of the communication path is performed over coax. By using coax for the last leg of a communication path, the existing coax drops in many neighborhoods may be utilized and the expense of laying new wirelines in the neighborhood may be saved. With continuing reference to Figure 1, head end 14 serves hubs 30 and 32 serving customer residences 40, 42, and 46, 50, respectively. Customer residences 46 and 50 are served by network nodes 44 and 48, respectively. In accordance with the present invention, control logic 64, suitably located at head end 14, is programmed to present an electronic programming guide 60 to the end viewer. Electronic programming guide 60 includes programming information in a standard calendar object format. Because the programming information is in the standard calendar object format, programming information may be readily placed into a calendaring software application 62 that uses the standard calendar object format. Of course, the EPG need not be sent from a headend, and it is appreciated that Figure 1 is just an exemplary implementation. The term "standard calendar object format" and similar terms as used herein mean an object format that is agreed upon between the provider of the electronic programming guide and the provider of the calendaring software application. Preferably, it is most desirable to present the electronic programming guide in a format that is widely accepted as a standard calendar object format among many different calendaring software application providers. However, a standard format for the purposes of the present invention may be merely a standard agreed upon by the programming guide provider and the particular calendaring software application at the end user, or may be a standard calendar object format that is a widely accepted industry standard. On one extreme end, when the standard calendar object format is an industry standard, the electronic programming guide may always send programming information out in the standard format, and resultantly, many different calendaring software applications will be able to accept the programming information. On the other hand, the present invention may employ sending the electronic programming guide out simultaneously in a number of different formats so that calendaring software applications using any one of several common formats may accept the programming information. Still further, it is possible that the selection of a standard calendar object format may occur with a handshaking or similar event. That is, when a user requests the electronic programming guide, the source of the electronic 'programming guide may perform a handshake with the calendaring software application to determine an appropriate standard for calendar objects during the particular session at hand. Because existing calendaring software enables users to exchange information among users of the same system, an open standard is desired to enable various applications to cooperate with each other, and to cooperate with an electronic programming guide provider in accordance with the present invention. One specification that has been proposed for standardizing calendar objects is referred to as vCalendar. Another specification is called iCalendar. Both vCalendar and iCalendar have associated protocols for standardizing the way the objects are handled. In accordance with the present invention, in addition to selecting a standard calendar object format for capturing calendar information, in a network implementation, a standard communication protocol for sending calendar information over a network is selected. The communication protocol may be, for example, hypertext transfer protocol (HTTP) or may be a protocol associated with the object protocol. (For example, iCalendar has associated communication protocols and an interpretation protocol for objects.) Alternatively, a different protocol may be selected as the standard communication protocol. Similar to the calendar object format, the standard communication protocol may, on one end, be a widely accepted industry standard protocol, or on the other end, be a protocol agreed upon by the EPG provider and the calendaring software application for that particular session with the protocol being agreed upon during an equipment handshake at session initiation. With reference to Figure 2, a method of the present invention is generally indicated at 70. At block 72, a standard calendar object format is selected. At block 74, an electronic programming guide is established. At block 76, the EPG is presented to the end viewer at a graphical user interface (GUI). At block 78, a calendaring application is viewed at the graphical user interface (GUI). In accordance with the present invention, at block 80, programming information is copied from the electronic programming guide to the calendaring software application. Information may be readily moved from the EPG to the calendaring application because of the selected standard calendar object format. Advantageously, the present invention, for the first time, presents programming information in a standard calendar object format. Of course, it is appreciated that embodiments of the present invention do not require a GUI, and a suitable text interface could be used in the alternative. With reference to Figure 3, additional features and preferred implementations of the present invention are described, with the method generally indicated at 90. At block 92, programming information is copied from the electronic programming guide to the calendaring software application using drag and drop techniques. That is, drag and drop, or click and drag techniques advantageously allow seamless integration of the programming guide and the calendar application, possibly on a user's desktop computer, a personal digital assistant, or a television set, maybe even using the remote control to control as a pointer. At block 94, program information is copied into a time schedule on a calendar at the program start time and has the program duration indicated by the calendar object. That is, preferred implementations of the present invention allow dragging and dropping of a calendar object onto a planner, and then the calendaring/scheduling software places the calendar object at the correct time within the calendar time schedule. At block 96, calendar alarms may be activated for the event indicated by the calendar object in the time schedule. In Figure 4, additional variations of the present invention are generally indicated in block diagram 100. At block 102, a standard communication protocol is selected. As mentioned previously, the standard communication protocol may be a widely accepted communication protocol or may be a protocol agreed upon by the parties to the session. At block 104, a master calendar is stored on the network (which may be the network of Figure 1 , or any other network such as a home network). By storing a master calendar on the network, instances may be sent to various devices of the end user at block 106. For example, the end user may have an instance of the master calendar on a personal digital assistant, and have another instance on a home computer, while still having another instance on a television set. Various instances may then synchronize with the master calendar such that programming information along with the calendaring application are available to the end viewer anywhere and anytime. In Figure 5, an alternative embodiment of the present invention is generally indicated at 110. At block 112, a set of preferences is collected from the end user. At block 114, programming information is automatically copied to the calendaring software application in accordance with the set of preferences. That is, embodiments of the present invention may be implemented with sufficient intelligence at the control logic to allow the control logic to process user preferences and select programs for the user. For example, the control logic may consider when the person's free time is, and then additionally consider general viewing preferences of the viewer such as the preference for sports or a preference for news, etc. Of course, although the control logic 64 (Figure 1) is shown at head end 14, it may be appropriate to implement control logic in the end user device depending on the particular networking environments for implementation of the present invention. It is to be appreciated that the integration of calendar objects and personal scheduling achieved by the present invention has many variations, and is independent from any particular object format or protocol. In some embodiments, programs may be selected to the user based on the user's schedule. Further, a particular occurrence of a multiple occurrence program may be suggested based on the user's schedule (which may be quite useful for pay-per-view events). Further, embodiments of the present invention may allow and assist a user to schedule video-on-demand programming in a personal schedule. With reference to Figure 6, a graphical user interface illustrating an exemplary implementation of the present invention is indicated at 120. An electronic programming guide is generally indicated at 122. EPG 122, as shown, includes a channel listing 124, and a time bar 126. Programming information 128 indicates programs on the various channels at various times. Screen controls 130 allow the user to scroll through channels and times. The programming information 128 is presented in a standard calendar object format that is either predetermined or agreed upon by the electronic programming guide source and the calendaring software application. The calendaring software application is generally indicated at 140. Application 140 is illustrated in a view that includes a monthly calendar 142, along with an enlarged single day view 144 (but alternatively could be represented by a single icon as appropriate for some situations). In a preferred implementation, a user may drag programming information from EPG 122 and drop the programming information onto calendaring application 140. For example, calendar object 145 is shown being dragged from EPG 122 to calendar application 140. After the calendar object is dropped into calendar application 140, the object is preferably placed at the appropriate day and time automatically as indicated at reference number 146 in the month view and at reference number 148 in the enlarged day view. Because the calendar object format is an established standard, the programming information seamlessly integrates into the calendaring application along with other daily reminders 150 and 152. Further, because of the seamless integration, alarms 154 may be set for programming events just as easily as alarms may be set for other scheduled events. Further, the alarms may take many forms, such as pop-up reminders, email reminders, audible reminders, or even voice mail or pager reminders. Of course, for calendar objects representing multiple occurrence programs, pay- per-view programs and video-on-demand, the user may be given several options for positioning the object. In Figure 7, block diagram 200 depicts the suggesting of a program, including suggesting an occurrence of a ulti occurrence program, suggesting a showing of a pay-per-view event, and suggesting a video-on-demand (VOD) program (when there could be some limitations on when the VOD program is available). At block 202, a user's calendaring information is processed, and at block 204 a time slot is selected. At block 206, programming that fits a user's schedule (and any viewing preferences) is suggested. Similarly, in Figure 8, and generally indicated at 210, calendaring information is processed at block 212. A program is selected at block 2 4. And, at block 216, a time slot is suggested. In embodiments of the present invention, it is appreciated that a calendar may belong to a user, a household, or a group of users. Further, in addition to the drag and drop implementations explained previously, other drag and drop type functionality may be implemented. For example, drag and drop form a commercial could be implemented. That is, a user sees a broadcast or visits a web site, and may drag a program from the broadcast or web site and drop the program right on the calendar. While the best mode for carrying out the invention has been described in detail, those familiar with the art to which this invention relates will recognize various alternative designs and embodiments for practicing the invention as defined by the following claims.

Claims: Claims: 1. A method for presenting an electronic programming guide to an end viewer, the method comprising: selecting a standard calendar object format for capturing calendar information from a calendaring software application to allow exchanging of calendar information between different calendaring software applications; and presenting an electronic programming guide to the end viewer, the electronic programming guide including programming information in the standard calendar object format to allow placing of the programming information into a calendaring software application that uses the standard calendar object format. 2. The method of claim 1 wherein the end viewer uses a graphical user interface to view a calendaring software application, and wherein presenting the electronic programming guide further comprises: presenting the electronic programming guide to the end viewer at the graphical user interface. 3. The method of claim 2 further comprising: upon demand by the end viewer, copying programming information that is in the standard calendar object format to the calendaring software application. 4. The method of claim 3 wherein the programming information includes a program item and an associated program start time and duration, and the calendaring software application includes a time schedule, and wherein copying further comprises: copying the program item to the calendaring software application time schedule at the associated program start time. 5. The method of claim 4 further comprising: activating an alarm within the calendaring software application prior to the start time. 6. The method of claim 3 wherein copying further comprises: copying programming information to the calendaring software application using a drag and drop technique. 7. A method for presenting an electronic programming guide to an end viewer, the method comprising: selecting a standard calendar object format for capturing calendar information from a calendaring software application to allow exchanging of calendar information between different calendaring software applications; selecting a standard communication protocol for sending calendar information in the standard calendar object format over a network; and presenting an electronic programming guide to the end viewer, the electronic programming guide including programming information in the standard calendar object format sent over the network in accordance with the standard communication protocol to allow placing of the programming information into a calendaring software application that uses the standard calendar object format. 8. The method of claim 7 further comprising: storing a master calendar on the network for the end viewer; and sending at least one instance of the master calendar to the end viewer. 9. The method of claim 8 further comprising: synchronizing the at least one instance with the master calendar. 10. The method of claim 7 wherein the electronic programming guide is sent from a head end connected to the network, and wherein the method further comprises: establishing the electronic programming guide based on information received at the head end to allow inclusion of nonrecurring programming in the electronic programming guide. 1 1. The method of claim 7 further comprising: collecting a set of preferences from the end viewer; and automatically copying programming information to a calendaring software application of the end viewer in accordance with the set of preferences. 12. The method of claim 7 further comprising: processing information in a calendaring software application to determine available time slots for the end viewer; and suggesting programs for the end viewer based on the available time slots. 13. The method of claim 7 wherein the programming information includes a program that is scheduled with multiple occurrences, the method further comprising: processing information in a calendaring software application to determine available time slots for the end viewer; and upon selection of the program that is scheduled at multiple occurrences, suggesting at least one occurrence for the end viewer based on the available time slots. 14. The method of claim 13 wherein the multiple occurrences include occurrences on different channels. 15. The method of claim 13 wherein the multiple occurrences include occurrences in different time slots. 16. The method of claim 13 wherein the program having multiple occurrences is a pay-per-view program. 17. The method of claim 7 wherein the programming information includes a video-on-demand program. 18. The method of claim 17 further comprising: upon selection of an available time slot in a calendaring software application for the end viewer, scheduling the video-on-demand program in the time slot. 19. The method of claim 17 further comprising: processing information in a calendaring software application to determine available time slots for the end viewer; and upon selection of the video-on-demand program, suggesting a time slot of the available time slots for the end viewer.

Inventors: LAWRENCE LEE G, MARICS MONICA, MCCLARD ANNE P, STEVENS JOHN CLARKE, LAWRENCE, LEE, G., MARICS, MONICA, MCCLARD, ANNE, P., STEVENS, JOHN, CLARKE
Applicants: AT & T CORP, AT & T CORP.
Application year: 2001
Main classification: H04N5
IPC codes: H04N5