This invention relates to electronic mail systems, computer based calendar systems, and the Internet.
Two of the major productivity tools available today on computer systems are electronic mail (email) and calendar applications. Email originated as a pure electronic version of a mail/message delivery system. Calendar applications began as a straight translation of a pen and paper based personal organizer calendar implemented on a computer. Since then, many features have been added onto both applications. A few examples include IMAP4 and improved user-client front ends for email and, for calendars, meeting invites, subscribing to published calendars, and scheduling assistance. With the fast growth of the web, email use has exploded in size and volume—so much so that email systems frequently have trouble organizing and protecting the user from unwanted email messages (spam), and even the sheer volume of valid emails.
Calendar systems in comparison have remained more closed and proprietary, and while large progress has been made in supplying users of any given calendar sources from which they can subscribe/insert events into their calendar, the management systems of these calendar tools are frequently incompatible (as opposed to universal use of email protocols such as IMAP and POP), and have not kept up with the increase in electronic communication and styles. The majority of modern calendar applications, at their core, are still representations of the basic pen and paper datebook calendar—they have a day view, a week view, a month view, and occasionally a year view, with the ability to have multiple calendar channels overlaid on the same display page. These channels are separate groups of events, which the user can create, find (on the web), and individually enable/disable in their view. Typically, these groups share a specific category (e.g. DVD release dates, or Work vs. Home events), and are rendered in the same color or identifying mark. In U.S. Pat. No. 7,039,598 to Lu (2006), these channels may be entirely separate calendars. Scheduling is the area with the most progress and inventions, examples include U.S. Pat. No. 7,318,040 to Doss et al. (2008), which describes predicting and adjusting future working hours and calendar events for users of electronic calendars, and U.S. Pat. No. 7,411,942 to Croak et al. (2008), which describes a method of reserving appointments over a network. Basic calendar management is the next major area of progress, with examples such as Pat. No. 7,149,810 to Miller et al. (2006), which expand upon management features protecting past events, and recurring events. U.S. Pat. No. 7,325,198 to Adcock et al. (2008) capitalizes on a calendar management interface, and uses a calendar construct and graphical user interface to organize photos—here the utility is about helping view photos taken, as opposed to using images to help base calendar management.
Although these tools increase user productivity over the absence of any such tool, their usage doesn't scale well. Faced with large volumes of outside (unstructured) event information through mediums such as email, and even large volumes of internal separate calendar channels or events from which to subscribe, the user must still manually manage a large percentage of their calendar, and, more importantly—the calendar events for the user, in their entirety, more often than not do not represent the user's true schedule, significantly hindering tools like automatic scheduling that expect the calendar to be precise or exact. Commonly, those entries that are personal in nature (i.e. not pre-published in a ready-made calendar channel, or where the introduction/interest in an event is a personal preference) require the most manual effort. There are a few existing email/calendar systems that auto-fill and assist the user in creating calendar events from unstructured data such as Google Gmail/Calendar or Apple Mail, but none of them take the final step of auto-creating or updating events from information outside the calendar system without any user intervention, and, in all of them, the user is forced to remember to edit/modify that event as new information arrives (e.g. via email). What is lacking is a fully automatic calendar event creation mechanism with provisions in place to dynamically and quickly adjust these events, or how they are viewed, when necessary.
This is a method for automatic calendar event administration and viewing. In addition to traditional calendar administration techniques, this system includes the ability to automatically add calendar entries directly based on parsing incoming email, and alternate sources (e.g. the Web). Entries are overlaid, positioned, and colored according to their priority (not category), which is both a measure of the importance of this event to the user, as well as a measure of an estimate of the accuracy that the entry is valid (not in error). One email or alternate data source may create multiple calendar entries. Entries are also automatically removed or moved according to new email or new data from alternate sources that pertain to the event created. The user can quickly visually remove unwanted entries by simply moving a slider or single control that sets a filter threshold for events shown based on their priority/validity. Automatic event creation scales easily with large increases in email or alternate source activity and keeps the calendar up to date and full. Global controls such a single slider and values such as an event score allows the user to quickly discard, highlight, or otherwise adjust these events, and assists this automatic system in keeping the user's calendar relevant.
In an integrated system, there is no separate calendar event storage—email and calendar are one and the same tools, with each just being a different view of the same data or integrated data.
The preferred embodiment of the process by which calendar entries are automatically created or detected is shown in
If one or more dates are found [102], a scan is then done to see if this email or source, or the calendar event candidates, are linked to prior sources or calendar entries [103]. Here, the definition of linked is a statistical measure of correlation or relation to prior sources or entries, but also includes direct links (e.g. the relation is stored directly in a database). Examples of links include, but are not limited to: the source was a reply to an earlier email that contained its own dates/calendar entry candidates, the calendar event candidate is an exact or near duplicate of a currently existing candidate, the source itself appears to be an exact or near duplicate of a prior one, or the calendar event candidate appears to be an exact or near duplicate of popular, frequently discovered entries across multiple users/sources. It should be noted that in another variation of this invention, this check and subsequent actions could be done after scoring, or skipped entirely. If links are found, and new dates are found to be replacements of the old dates (e.g. the new dates have or will have high scores, and the old dates have equal or lower scores) [105], the old calendar entries are either automatically removed, or their score, if not already low, is set to the minimum. Alternatively, depending on context, the user may be prompted on what to do with the old entries [106]. If no new dates are found, or they do not appear to be valid replacements for the prior entries, no additional special action is done for this case.
For all cases, a score is then created for each event candidate based off of each date found, the original text, and any relevant context associated with the text (e.g. prior event creations or other links [103] [104]. Scores of any linked calendar entries still existing are also recalculated, if necessary. Examples of score weights include, but are not limited to: the spam level measured for an email message source (measured by any currently existing spam filter technology, including detection of bulk emailings vs. individual), an email source was a reply to a previous email and the date is in the reply vs. the date was found in text copied from the original email (i.e. the score is adjusted as a function of the chronological history and placement within the entire email thread for the date in question), the email is from someone in the user's preferred contact list, the strength of the date inference (e.g. was the date a full date in the original text in lieu of a partial), and the uniqueness of the date in general (e.g. did the unstructured text include many dates or just one), and the sent to/receive from frequency ratio for that sender in general.
After these steps, whether or not the text is found to be linked, the final list of calendar entries is pruned to remove redundant entries or entries whose score is below a bottom threshold [107]. Finally, these entries are created with their score, date, executive summary, links to the original text/email, and links to all relevant and connected calendar entries (e.g. all entries just created from this text, or linked text) [108].
In any system where events are automatically created, it is likely that the user's calendar will contain far more events than the typical calendar today. It is also possible that errant events could be created (e.g. two separate calendar entry candidates might be created from the same text: one is correct, one is incorrect). In order to retain the benefit of automatic event creation, it is critical that the user have immediate global control, including visualization, over the events on the calendar.
The first key control for the preferred embodiment of this invention is shown in
In order to highlight any new calendar entries, the preferred embodiment of this invention also includes the ability to temporarily highlight—via a different color, border, or border animation—new automatically created entries or entry candidates independent of their score, or rather, temporary increase the score of new calendar entries. This rendering can be done in any manner, but it is preferred that it be complimentary and not mutually exclusive or conflicting in how all other calendar entries are rendered. This allows the user to quickly identify new entries, and take action on them.
A visual example of a simple calendar system with global threshold control is shown in
The second key user calendar control for the preferred embodiment of this invention is the ability of the user to quickly adjust or mark a particular event of a set as valid/unique, or perform an alternate action that globally modifies that event and all related events. This is shown in
In the preferred embodiment of this invention, the single source of unstructured text that is used as the source for calendar entries is email, as this is a primary source from which users receive calendar-worthy notes from work, friends, or favorite websites that send email updates. In an alternate variation of this invention, other sources could also be linked in and used, which include, but are not limited to: SMS, favorite websites (direct from the site, not via emails), published databases or calendars, or the entire web in general (filtered by high level preferences)
In the preferred embodiment of this invention, a calendar and email application are an integrated system—there is no separate calendar event storage, or, at a minimum, each application component has full access to the other's data. One example would be to store additional calendar event data as headers or as separate emails within a specific folder on an IMAP server. Another would be to add additional link and parsed mail information into a traditional calendar event database. This allows for streamlined performance, and a cleaner, integrated interface (e.g. “today's” unread emails that have no additional date/event information would show up as moving event items in the current day view), assisting in presenting email and calendar data as the same tools, with each just being a different view of the same data or integrated data.
In an alternate variation, this entire system can be implemented on top of any preexisting calendar system feature set or application that has an api for event manipulation. For example, a current calendar system that uses channels or category to color calendar entries, in lieu of a score, can continue to do so. The additional automatic creation and visualization would apply only to those events automatically created, which could be done per channel or category, or, globally, for example. In another variation, the primary calendar can use background images rendered behind or around the text of each calendar event as the identifying marker for the calendar entry's category, and keep color as the marker for priority or score. In another variation, the use of background images and color could be reversed. The background images need not be square or of any traditional shape. The background images can also be used simultaneously with color—in one variation, the background images can be skewed in color according to a color chosen for the event's score if background images are used for category, or for the event's category if background images are used for score.
This application claims the benefit of provisional patent application Ser. No. 61/128,579, filed 2008 May 23.
| Number | Date | Country | |
|---|---|---|---|
| 61128579 | May 2008 | US |