SYSTEM AND METHOD OF PROVIDING CONSOLIDATED INTERNET EVENT GUIDE

Abstract: A method for generating an event calendar. The method includes receiving an event definition on a first computer. The event definition is transmitted from the first computer to a second computer using an extensible markup language (XML) document and a hypertext transfer protocol (HTTP). The event definition is held on the second computer for approval. The event definition is published on the event calendar on the second computer using a template to control formatting after receiving approval.

Description: SYSTEM AND METHOD OF PROVIDING CONSOLIDATED INTERNET EVENT GUIDE BACKGROUND OF THE INVENTION Field of the Invention This invention relates to the field of event listings. In particular, the invention relates to a distributed system for providing Internet event listings. Description of the Related Art A number of on-line event listings exist. One example is Yahoo! NetEvents, <http://events.yahoo.com/> produced by Yahoo!, Santa Clara, California. Another is OnNow. com, <http://www.onnow.com/> produced by TalkCity, Inc., Campbell, California. Both offer event listings for on-line events. Both use hypertext markup language (HTML) forms on their web sites to accept new event listings. For example, OnNow.com uses a two step process. The first step is to register as an event producer at <http://vv vw.onnow.com submit/newpub/newpub.htmpl>. The second step is to submit events after registration as an event producer at <http://www.onnow.com/submit/oldpub/oldpub.htmpl>. Yahoo! uses a similar type of HTML form at <http://add.yahoo.com/fast/add?+Events>. Unfortunately these on-line event listings are a one-way affair. Event producers provide the information to the event listing guide and that is the totality of the process. Thus, an event producer must manually provide event listings to these companies. The more events produced, the more cumbersome these systems become. Further, the event producers can not incorporate events listed on the central site into their own event calendar. Thus, if an online bookstore wanted to include other book related events on their web pages, they would have to manually add them from the event calendar. Yahoo! offers a limited personalized calendar feature and notification option in conjunction with Yahoo! Calendar and Yahoo! Pager. An HTML link marked "add" next to event listings at Yahoo! NetEvents allows a user to add the specific event to their calendar. Yahoo! Calendar in turn offers limited notification and paging options for events in the calendar. This feature is limited to adding specific events identified by the user. Thus, if a user is interested in a category of events or all events produced by a certain event producer, they must manually click on the appropriate "add" links for each event. The prior art techniques do not support a distributed on-line event guide. The prior art systems do not allow for the creation multiple event calendars for multiple web sites using one time data entry. The prior art systems do not support the creation of personalized calendars for users of an event system based on categories, or event producer. Accordingly, what is needed is an event guide that supports distributed data entry, distributed event calendars, and personalized calendars. SUMMARY OF THE INVENTION Method and apparatus are disclosed for merging Internet event schedule information received from multiple event producers. Each event has a time, date, a universal resource identifier and a description. In one embodiment, a computer mixes and sorts schedule information received from multiple event producers. The schedule information is then displayed in a guide. A user can select an Internet event by selecting that Internet event in the guide. The selected Internet event is then loaded. A method for generating an event calendar is disclosed. The method includes receiving an event definition on a first computer. The event definition is transmitted from the first computer to a second computer using an extensible markup language (XML) document and a hypertext transfer protocol (HTTP). The event definition is held on the second computer for approval. The event definition is published on the event calendar on the second computer using a template to control formatting after receiving approval. BRIEF DESCRIPTION OF THE FIGURES Fig. 1 illustrates a system including several embodiments of the present invention. Figs. 2-3 illustrate an administration interface used by some embodiments of the invention. DETAILED DESCRIPTION A. System Overview Figure 1 illustrates a system including several embodiments of the present invention. The system of Figure 1 could be used to allow distributed creation of event calendars with publish and subscribe features. The following paragraph lists the elements of Figure 1 and describes their interconnections. Figure 1 includes a network 100, a user 102, a user 104, an administrator 106, an administrator 108, an event producer 110, an event producer 118 and an event listing host 126. The event producer 110 includes a web server 112, an event server 114, and an event database 116. The event producer 118 includes a web server 120, an event server 122, and an event database 124. The event listing host 126 includes a web server 128, an event server 130, and an event database 132. The network 100 is coupled in communication with the user 102, the user 104, the administrator 106, the administrator 108, the event producer 110, the event producer 118, and the event listing host 126. The following describes the use of the elements of Figure 1. The network 100 may be a single communication network, a collection of communication networks, and/or some other type of network. In this example, the network 100 is the Internet. In other embodiments, the administrator 106 and the administrator 108 have a private network connection to the event server they administrate, e.g. over a separate network or through the use of a virtual private network over the network 100. The user 102 and the user 104 are users of the event calendars produced by the event producers 110 and 118 and the event listing host 126. In a typical embodiment, the user 102 and the user 104 connect to the event producers 110 and 118 and the event listing host 126 using a web browser that connects over the network to the respective web server (e.g. the web server 112 for the event producer 110). By displaying the calendar using a hypertext markup language (HTML) or an extensible markup language (XML), the event calendar can be viewed by a broad array of heterogeneous clients. In an XML implementation, the user's web browser can customize the view of the event calendar to a greater degree than in the HTML version. The event producers (e.g. the event producers 110 and 118) produce events such as online chats, streaming video programs, streaming audio programs, live concerts, live newscasts, broadcast programming, and/or other types of events over the network 100. These events are accessible to users (e.g. the users 102 and 104). In some cases, a user may need special software such as a plug-in to view the event, e.g. a Quicktime™ plug-in to view a Quicktime™ event, etc. B. Distributed Architecture: Event Server Core The event server provides a uniform interface for the distributed event calendar. The event server may come in several varieties, e.g. Lite, Professional, end-user, producer only, etc. Each may have different sets of features or limits according to a pricing model. For example, the end-user edition might limit event producers to a small number of events, etc. Each of the event servers is capable of interfacing with a respective event database, e.g. the event server 114 to the event database 116. In some embodiments, the event server (e.g. the event server 114) is provided with a database engine to support the interface to the event database 116. In other embodiments, schemas and interface modules are provided for using commercial databases such as Oracle™ and Sybase™ with the event server 114. The decision to use a commercial database can be driven by the number of events a particular event producer (e.g. the event producer 110) will produce and whether or not they are already using a database system such as Oracle™, etc. The event server also has the following interfaces: (1) administration interface; (2) end user interface; and (3) event definition transfer interface. Administration Interface The administration interface is used by employees and/or visitors to the web site, served by the web server 112, of the event producer 110. This allows event definitions to be provided. In a typical embodiment, an HTML form is used to receive the event definition. The administration interface also allows administrators (e.g. the administrator 106) to approve and/or modify event definitions. Once approved by the administrator, the event definition is available to users of the web site. Other features of the administration interface will be discussed further in conjunction with Figures 2 and 3. End User Interface A user (e.g. the user 102) can visit the web site of the event producer 110 and see an event calendar that is automatically generated by the event server 114 in conjunction with the web server 112. A modified HTML file is used by the event producer 110 to control the display of the event calendar. This is called a template file. A number of XML directives are used to control the inclusion of events in the displayed HTML sent to the client as shown by Table 1. Table 1 The web server 112 will parse the client request for the event calendar web page, e.g. <http://www.eventproducer.com/calendar.sched> and perform server side operations to include the appropriate information. Because the XML directives will expand to HTML, surrounding formatting instructions such as <FONT> and styles will apply to the expanded HTML when it is shown to the user. For example, if the template included <EventListing Include Attributes^" Subject" NROWS=l />, then a single event would be expanded by the web server 112, the event server 114 and the event database 116 to, for example, the following HTML code: <A HREF="http: //www. eventpro cer . com/cgi-bin/event . cgi?id=9985">Authors Chat</A> Or other HTML code depending on the output configurations of the event server 114. The user would see a hyperlink in their web browser, for example: Author's Chat Thus, from a one time data entry of an event definition, and approval by an administrator when required, the event producer 110 was able to create an event calendar for her/his web site. Also, the event producer's event definitions can be automatically provided to the event listing host 126. This allows visitors to the web server 128 of the event listing host 126 to see listings for both the event producer 110 and the event producer 118 in a unified event calendar. Information included with the event calendar might also include: an admission fee, if any; the software necessary to participate, if any; the location of the event; and/or other information from the event definition. When it is possible, an event server will provide the listing in a user's local time zone. This can be derived from a user selection or based upon the domain name, profile information and/or some other method. Event Definition Transfer Interface The transfer mechanism between the event database 116 and the event database 132 can employ a standard XML document with a suitable document object model definition for the necessary portions of the database schema. Each event definition will then be formatted suitably into the XML document for transfer. A portion of an XML document object model for categories is provided in Table 2; a portion of an XML document object model for events is provided in Table 3; and a portion of an XML document object model for describing which categories an event belongs to is provided in Table 4. <? xml version= "1.0", standalone="yes"> <! DOCTYPE document [ < ELEMENT document ANY> < ELEMENT ES_CATEGORY_ _list (ES_CATEGORY*)> < ELEMENT ES_CATEGORY (EVENT_CAT_ID, EVENT_CAT _NAME?, EVENI '_CAT_DESC?, EVENT_CAT_SHORT_NM? , EVEN1 1 _ CAT _ SH0RT _ DESC? ' EVENT_CAT_STATUS? 1 EVENT_CAT_ORDER? , ENTERED_BY?, APPROVED_ BY?)> < ! ELEMENT EVENT_CAT_ID (#PCDATA)> < ! ELEMENT APPROVED_BY (#PCDATA) > ]> Table 2 <? xml version="l.0", standalone="yes"> <! DOCTYPE document [ <! ELEMENT document ANY> <! ELEMENT ES_EVENT_list (ES_EVENT*)> <! ELEMENT ES_EVENT (EVENT_ID, EVENT_TYPE, CHANNEL_ID?, EVENT_NAME?, EVENT_DESCRIPTION? , SUBJECT?, SOFT ARE_ID, ADMISSION?, MODERATED?, EVENT_STATUS?, EVENT_SOURCE? , EVENT_ROOM?, EVENT_SITE_URL? , EVENT_START_DATE? , EVENT_END_DATE?, EVENT TIMEZONE?, EVENT_HOUR?, EVENT_MINUTE?, EVENT_AM_PM? , EVENT_FLAG?, RECURRING_EVENT?, RECUR_RULES? , ENTERED_BY?, APPROVED_BY?)> <! ELEMENT EVENT ID (#PCDATA)> < ! ELEMENT APPROVED_BY ( # PCDATA ) > ] > Table 3 <? xml version= ="1.0", standalone="yes"> <! DOCTYPE document [ < ELEMENT document ANY> < ELEMENT ES_EVENT_ _CATEGORY_list (ES_ _EVENT_CATEGORY*) > < ELEMENT ES_EVENT_ _CATEGORY (EVENT_ID, EVENT CAT_ _ID, ENTERED BY?, APPROVED_BY?, DATE_ CREATED?, DATA_ _STAMP?)> < ELEMENT EVENT ID (#PCDATA) > < . ELEMENT EVENT_CAT_ID (#PCDATA)> < ! ELEMENT APPROVED_ _BY (#PCDATA) > ]> Table 4 A second level of approval is provided at the event listing host level. This allows an administrator (e.g. the administrator 108) for the event listing host 126 to approve listings separate from the approval at the event producer level. In some embodiments, preferred event producers can have their events immediately posted without further approval. At the event listing host 126, a template using the same modified HTML used at by the event producer 110 can control the formatting of the event list from the database. Additional configuration options of the event server 130 can favor particular event producers' listings over others. For example, if the event producer 110 is a preferred partner, its event listing might be featured more prominently than those from the event producer 118. These changes do not affect the type of template used although the particular commands and options for the XML directives in the template may vary. The transfer works two ways, an event producer (e.g. the event producer 118) can request a subset of the event definitions from the event listing host 126. For example, if the event producer 110 is an live music site and the event producer 118 is a record store, they could request event listings from the event listing host 126 by category, e.g. "music", or by particular sites, e.g. the event producer 110. This allows the event producer 118 to include other similar events in its own event calendar. The transfer of event definitions again occurs using XML to transfer the event definitions from the event listing host 126 to the event producer 118. C. Category Mapping In order to better facilitate distributed event calendar creation, some embodiments of the invention allow for category maps to be defined. This allows an event producer (e.g. the event producer 110) to map their categories to a set of categories provided by the event listing host (e.g. the event listing host 126). The mapping can be one-to-one, one-to-many, or many-to-one as shown by the examples in Table 5. Table 5 This category mapping feature allows event producers to define sub-categories and their own hierarchies. As the third example in Table 5 shows, one event producer that works primarily with gardening has created their own top level set of categories. By defining a map, she/he can place them under the listing host's categories within "Education: Gardening:". The category mapping works when other event producers retrieve events from the event listing host 126. Thus, sites can retrieve and post event definitions on the centralized listing host while using self-defined categories. For example, taking the first example in Table 5, if the event producer 110 subscribed to the "Chat: Music" category of the event listing host 126, all of the event definitions would be locally re-categorized as "Music: Chat". D. Personal Calendars In some embodiments of the invention a user can integrate a personal calendar with the event listings. For example, an event producer (e.g. the event producer 110) can establish personal calendars using a calendar subsystem of the event server (e.g. the event server 114). Using a subscription model, a user can add whole categories, or sub-categories of events, to their calendar view. Similarly, all events from a particular producer can be added. Because the user can subscribe to categories, or a particular producer's events, there is no need to manually add individual events to the personal calendar. In some embodiments, the live events are shown with an additional indicator, or in a different color, to distinguish them from events that the user herself/himself has added. For example, the user's event "9 AM Doctor's Appointment" versus "10 AM Concert in Berlin LIVE", etc. In some embodiments, a personal information manager on a user's computer can directly request information about live events. In this embodiment, the user configures their personal information manager (e.g. Microsoft™ Outlook™) to request event listings from the event server (e.g. the event server 130) that meet certain criterion. As with the event server to event server transfers, XML documents can be used to transfer the data. In other embodiments, the event server (e.g. the event server 130) periodically sends an electronic mail message to the user including event definitions in a format suitable for import into a personal information manager. In some embodiments, the electronic mail message includes program code for automatically importing the event definitions into the personal information manager. E. Notification Options Some embodiments of the invention support automatic notification to the user of events. For example, the user could signal that they wish to be notified of an event while reviewing the web site of an event producer (e.g. the event producer 110) or the event listing host (e.g. the event listing host 126). Next the user identifies her/his preferred notification methods. In some embodiments, the user can save her/his preferred notification methods with the event server (e.g. the event server 130). The user can identify a set of notification methods as shown by the examples in Table 6. Table 6 This allows the user to identify the best contact method, or methods, for them for a particular event. For example, for an extremely important event the user might specify additional electronic mail messages, or earlier reminders. Other communications systems can be integrated into the framework. In some embodiments, the user can store save notification set preferences with the event producer, e.g. the set of options in Table 6 with the name "Standard". Other sets of notification options can be saved and then easily assigned to events as desired by the user. The notification options can be used in conjunction with the personal calendar feature described above or as a separate feature offered to users independent of a personalized calendar. Each event producer or event listing host offering notification services can charge for services if appropriate. For example, the event producer 110 might charge $0.20 for a computerized telephone notification. Alternatively, the event producer 110 might agree to pay $0.20 to the event listing host 126 for notifying a user. These flexible payment options allow the party performing notifications to recoup the cost of more expensive notifications, e.g. an international telephone call to a user vs. electronic mail. F. Administration Interface Figures 2-3 illustrate an administration interface used by some embodiments of the invention. This interface could be used by the administrators 106 and 108. In some embodiments, the features available through the administration interface vary based on the type of license purchase for the event server (e.g. the event server 114). The administration interface may be web based as shown in Figure 2. A web browser window 200 shows an administrator (e.g. the administrator 108) signed onto the administration interface of an event server (e.g. the event server 130). The administration interface is divided into three main panes, or frames. A menu pane 202, a menu option specific controls pane 204 and an information pane 206. Here, the administrator 108 has selected the event menu option 203. As a result the menu option specific controls pane 204 lists controls relating to the event menu option. Here those controls include the ability to: add, view, modify, delete, preview, and approve event definitions. Additionally, a map control allows events to be mapped to one or more categories. Figure 3 shows the result of selecting the add control 205. The information pane 206 is replaced with a fill out form that allows the event to be defined. The fields of the fill out form correspond in large measure to the XML directives. However, some fill out fields may not be available to all administrators. For example some event producers may have some administrators that can enter events while only others can approve events. In that case, there will be no checkbox for approved available to users of the administration interface who do not have the authority to approve events. Table 7 summarizes the users of the other menu options. Table 7 G. Electronic Commerce Links In some embodiments of the invention, electronic commerce links can be defined. This allows an event producer (e.g. the event producer 110) to tie their event to one or more related goods and services. In some embodiments, the event listing host 126 selects a number of electronic commerce partners in a variety of categories. The event producers in turn select from the list of electronic commerce partners and identify a good. For example, five online book sellers might be available. The event producer 110 could select Amazon.com and simply provide the ISBN number of the related book to generate a link to purchase the related book in the event listing. In other embodiments, each event producer can also define their own electronic commerce partners. H. Alternative Embodiments In some embodiments, the event calendar is made available for syndication in non-online form. This is typically provided by an event listing host (e.g. the event listing host 126), but any event producer could generate such an output. In some embodiments, the XML document is provided to the syndicators for use in production of the non-online event listing. For example, the event listing host might send the 30 top events to a print newspaper for publication on a daily basis. In some embodiments, the event servers 114, 122, and 130, database schemas for event and category definitions, event databases, XML document definitions, and/or other programs for providing the event listings are included in one or more computer usable media such as CD-ROMs, floppy disks, and/or other media. Some embodiments of the invention are included in an electromagnetic wave form. The electromagnetic wave form comprises information such as the event server 114, 122, and 122 and/or programs for providing the event listings. For example, the event server 114 might include a Java™ applet accessed over a network by users and administrators. I. Conclusion The foregoing description of various embodiments of the invention has been presented for purposes of illustration and description. It is not intended to limit the invention to the precise forms disclosed. Many modifications and equivalent arrangements will be apparent.

Claims: CLAIMS What is claimed is: 1. A method for generating an event calendar, the method comprising: receiving an event definition on a first computer; transmitting the event definition from the first computer to a second computer using an extensible markup language (XML) document and a hypertext transfer protocol (HTTP); holding the event definition for approval on the second computer; and publishing the event definition on the event calendar on the second computer using a template to control formatting after receiving approval. 2. The method of claim 1 , further comprising publishing the event definition on a second event calendar on the first computer using a second template to control formatting. 3. The method of claim 2, wherein the second template is a modified hypertext markup language document and the publishing further comprises generating a web page for the second event calendar. 4. The method of claim 1 , wherein the holding further comprises determining whether the first computer has authority to post events without approval and automatically approving events responsive to the determining. 5. The method of claim 1, wherein the event definition includes a category, and the method further comprising mapping the category for the event definition to a second category according to a category map used to map a plurality of categories between the first computer and the second computer. 6. The method of claim 1 , wherein the event definition includes an electronic commerce identifier which identifies a product related to the event definition. 7. The method of claim 1, further comprising: receiving a subscription request from a third computer which requests all matching events definitions in the event calendar meeting a set of criteria provided in the request; sending all of the matching event definitions to the third computer in an XML document using a HTTP. 8. The method of claim 7, wherein each of the matching event definitions includes a corresponding category, and the method further comprising mapping the category for each of the matching event definitions to a new category according to a category map used to map a plurality of categories between the third computer and the second computer. 9. The method of claim 1, further comprising generating a second event calendar, the second event calendar comprising a subset of the first event calendar and a plurality of event definitions received on the second computer, the plurality of event definitions corresponding to events for a user of the event calendar. 10. The method of claim 9, wherein each of the event definitions includes a corresponding category, and wherein the subset of the first event calendar comprises event definitions in a particular category. 11. The method of claim 1 , further comprising receiving a request, the request comprising a notification service, a contact, and one or more options. 12. The method of claim 11 , further comprising responsive to the one or more options sending a notification using the notification service and the contact. 13. The method of claim 11 , wherein the notification service includes at least one of an electronic mail service, a page service, an electronic pager service, a facsimile service, and a telephone call service. 14. An apparatus for generating an event calendar, the method comprising: means for receiving an event definition on a first computer; means for transmitting the event definition from the first computer to a second computer using an extensible markup language (XML) document and a hypertext transfer protocol (HTTP); means for holding the event definition for approval on the second computer; and means for publishing the event definition on the event calendar on the second computer using a template to control formatting after receiving approval. 15. The apparatus of claim 14, further comprising means for providing a personalized calendar for a user of the event calendar, the personalized calendar including a subset of the event calendar. 16. The apparatus of claim 14, further comprising means for providing a notification of an event in the event calendar for a user, the notification provided in a user defined manner. 17. The apparatus of claim 14, further comprising means for using a category map defining a mapping between a first plurality of categories to a second plurality of categories to modify a first category in the first plurality of categories associated with the event definition on the first computer to a second category in the second plurality of categories on the event calendar on the second computer. 18. A computer data signal embodied in a carrier wave comprising: a computer program for generating an event calendar, the computer program comprising a first set of instructions for receiving an event definition on a first computer; a second set of instructions for transmitting the event definition from the first computer to a second computer using an extensible markup language (XML) document and a hypertext transfer protocol (HTTP); a third set of instructions for holding the event definition for approval on the second computer; and a fourth set of instructions for publishing the event definition on the event calendar on the second computer using a template to control formatting after receiving approval. 19. The computer data signal of claim 18, further comprising a database schema, the database schema for storing event definitions, and wherein the computer program further comprises a fifth set of instructions for defining database on the first computer using the database schema. 20. The computer data signal of claim 18, further comprising a XML document definition, and wherein the XML document is defined according to the XML document definition. 21. The computer data signal of claim 18, further comprising a fifth set of instructions for providing an administration interface for managing the event calendar using a web browser.

Inventors: MALATESTA SEAN M, MEMON FARHAN, SINGH JASBIR, MALATESTA, SEAN, M., MEMON, FARHAN, SINGH, JASBIR
Applicants: MALATESTA SEAN M, MEMON FARHAN, SINGH JASBIR, YACK INC, MALATESTA, SEAN, M., MEMON, FARHAN, SINGH, JASBIR, YACK, INC.
Application year: 2000
Main classification: G06F17
IPC codes: G06Q10