US20100174998A1 - Calendaring Location-Based Events and Associated Travel - Google Patents

Calendaring Location-Based Events and Associated Travel Download PDF

Info

Publication number
US20100174998A1
US20100174998A1 US12/568,354 US56835409A US2010174998A1 US 20100174998 A1 US20100174998 A1 US 20100174998A1 US 56835409 A US56835409 A US 56835409A US 2010174998 A1 US2010174998 A1 US 2010174998A1
Authority
US
United States
Prior art keywords
calendar
user
location
user interface
entity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US12/568,354
Inventor
Jonathan D. Lazarus
Ned Dykstra Hayes
Michael Perkowitz
Kevin Francis Eustice
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vulcan Tech LLC
Original Assignee
Kiha Software Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kiha Software Inc filed Critical Kiha Software Inc
Priority to US12/568,354 priority Critical patent/US20100174998A1/en
Assigned to KIHA SOFTWARE INC. reassignment KIHA SOFTWARE INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: EUSTICE, KEVIN FRANCIS, HAYES, NED DYKSTRA, LAZARUS, JONATHAN D., PERKOWITZ, MICHAEL
Priority to US12/624,682 priority patent/US9886683B2/en
Priority to PCT/US2010/020134 priority patent/WO2010080762A1/en
Publication of US20100174998A1 publication Critical patent/US20100174998A1/en
Assigned to ARO, INC. reassignment ARO, INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: KIHA SOFTWARE INC.
Priority to US15/842,757 priority patent/US20180107981A1/en
Assigned to VULCAN TECHNOLOGIES LLC reassignment VULCAN TECHNOLOGIES LLC TRANSFER STATEMENT Assignors: ARO, INC.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/109Time management, e.g. calendars, reminders, meetings or time accounting

Definitions

  • the present invention relates to electronic calendars.
  • Another approach involves the user manually entering an appointment immediately before and an appointment immediately after any meeting that requires travel in order to block off an estimated travel period on the electronic calendar. This approach is cumbersome for those who travel frequently as any meeting that requires travel becomes a requirement to create three calendar entries that each must be moved if the meeting is rescheduled. This approach also still suffers from the drawback mentioned above regarding the risk that the user may incorrectly estimate the travel time.
  • Embodiments of the invention provide methods, systems, and computer program products for an electronic calendar that recognizes events on the calendar occur at locations and accounts for travel between the locations for the calendared events.
  • a user interface for the electronic calendar represents different locations in different portions of the display.
  • Calendar entries such as a conference call or a plane flight, can be associated with one or more location, such as the locations of all conference call participants or the departure and arrival cities for the flight.
  • the different locations reside in different time zones and a timeline for each time zone is displayed. The position of the calendar entries provides a visual identifier to the user of the timeline with which the event is associated.
  • travel time to and/or from events in the calendar are calculated for calendared events.
  • the time estimated for travel to an event can be shown adjacent to the beginning of the event and the time estimated for travel from the event can be shown adjacent to the end of the event.
  • a user's future location at a point in time is inferred from observing patterns in the user's activities and locations as well as by analyzing the user's calendared events and correspondence.
  • an estimate can be made as to the appropriate amount of time to allot in the calendar for travel to the event.
  • an estimate can be made as to the appropriate amount of time to allot for travel after a calendared event.
  • FIG. 1 is a high-level block diagram of the computing environment, in accordance with an embodiment of the invention.
  • FIG. 2A is a block diagram of a server, in accordance with an embodiment of the invention.
  • FIG. 2B is a block diagram of a location inference module, in accordance with one embodiment of the invention.
  • FIG. 3 is a high-level block diagram illustrating an example of a computer for use as a user device or server, in accordance with an embodiment of the invention.
  • FIG. 4 is an illustration of a user interface displaying a calendar showing events in two locations in different time zones, in accordance with an embodiment of the invention.
  • FIG. 5 is an illustration of a user interface displaying a calendar showing events in three locations in three different time zones, in accordance with an embodiment of the invention.
  • FIG. 6 is an illustration of a user interface displaying a calendar showing events in three locations within the same time zone, in accordance with an embodiment of the invention.
  • FIG. 7 is an illustration of a user interface displaying a calendar showing events for three users, wherein some events are shared events between multiple users, in accordance with an embodiment of the invention.
  • FIG. 8 is a flow chart illustrating a method of inferring a location of a calendar event, in accordance with an embodiment of the invention.
  • Embodiments of the invention provide methods, systems, and computer program products for an electronic calendar that recognizes events on the calendar occur at locations and accounts for time needed to travel between the locations for the calendared events.
  • the electronic calendar may be accessed through an application on a mobile device such as a “smart phone” or a laptop that is equipped with GPS or other location determination technology.
  • a mobile device such as a “smart phone” or a laptop that is equipped with GPS or other location determination technology.
  • the user's future location can be inferred, thus enabling estimates of travel times to events on the calendar from the user's likely starting location and estimates of travel times from events on the calendar to the user's likely next destination.
  • FIG. 1 is a high-level block diagram of the computing environment 100 in accordance with an embodiment of the invention.
  • the computing environment 100 includes a server 120 that is connected via a network 101 to a user device 110 .
  • the network 101 is a communications network such as a local area network, a wide area network, a wireless network, an intranet, or the Internet.
  • the computing environment 100 also includes a web server 130 that serves web pages to the user device 110 and a message server 140 that serves messages such as email or SMS messages to the user device 110 .
  • a message server 140 serves messages such as email or SMS messages to the user device 110 .
  • FIG. 1 only one user device 110 and a limited number of servers are shown in FIG. 1 for clarity, any number and type of user devices and server configurations may be connected to the network 101 .
  • data flowing to and from the user device 110 passes through the server 120 .
  • the term “document” will be used herein to refer to a discrete collection of data, such as an appointment request, an email, a web page, a message, a file, or any other type of electronic document.
  • the term “correspondence” will be used herein to refer to any document that contains a message sent by the user or received by the user, such as an email, a text-message, an appointment request, or the like.
  • the server 120 analyzes the documents flowing to and from the user device 110 in order to extract entities from the data and to recognize events. Entities are data objects that represent people, organizations, locations, or other real world items.
  • Entities have properties associated with them, such as aliases, addresses, latitude/longitude coordinates, points of contact for the entity, and the like.
  • the server 120 extracts the entities from the documents and passes the entity information to the user device 110 so that the user device 110 can offer to the user contextually-relevant actions with respect to the entities, as described by U.S. patent application Ser. No. 12/512,854, filed Jul. 30, 2009, entitled “Data-Oriented User Interface for Mobile Device,” which has been incorporated herein.
  • the server 120 also extracts event information from an analysis of the user's correspondence for use in adding to calendar entries.
  • the server 120 also tracks the user's location from location information received from the user device and can infer the user's future location at various times based on patterns in the tracked locations, the user's calendared events, and the user's analyzed correspondence.
  • the user device 110 may be any device capable of communicating over the network 101 .
  • a user device 110 examples include a personal digital assistant (PDA), a mobile device with limited functionality or a “smart phone” mobile device that offers broad functionality such as large memory storage and an advanced user interface, and any portable computer.
  • PDA personal digital assistant
  • the user device 110 is a “smart phone” device that offers broad functionality.
  • the device may track calendar appointments, provide GPS or other location determination functionality, send and receive SMS messages and email, offer web access, manage contact information, and manage and communicate other types of documents.
  • the user device 110 has a graphical user interface 111 that allows a user to access and interact with data stored on the user device to make use of the device's functionality.
  • the graphical user interface 111 allows users to view information and select information, for example, by clicking on it, touching it, highlighting it with a cursor, or any other method of selecting a portion of the displayed information.
  • the graphical user interface 111 can be used to display and edit the user's calendar and details about the calendar entries. Examples of the user interface 111 are described below with reference to FIGS. 4-7 .
  • the graphical user interface 111 also includes node menus that contain actions relevant to a selected entity and/or spinners which allow a user to simultaneously view information from a variety of applications that is relevant to an entity, both of which have been described in U.S. patent application Ser. No. 12/512,854, filed Jul. 30, 2009, entitled “Data-Oriented User Interface for Mobile Device,” which has been incorporated by reference in its entirety.
  • the user device 110 includes various applications 113 that support the functionality of the user device 110 .
  • the user device 110 may include a calendar application 114 and telephone, email, contact manager, browser, word processing, map browser, spreadsheet, and/or other business or personal applications.
  • a user of the user device 110 may create, receive, send, access, store, or otherwise interact with data through the applications 113 .
  • the user can use the calendar application 114 to schedule, view and update calendar entries, and send meeting requests to others.
  • the calendar application 114 recognizes that some events are tied to specific locations and the electronic calendar represents different locations in different portions of the display.
  • Calendar entries such as a conference call or a plane flight, can be associated with one or more locations, such as the locations of all conference call participants or the departure and arrival cities for the flight.
  • the different locations may reside in different time zones, and the calendar application 114 displays the relative local time for calendar entries in association with the calendar entries.
  • the user device 110 also includes a location determination module 115 .
  • the location determination module 115 determines the current location of the user device 110 , for example from received GPS and/or cellular signals and/or any other location determination method known to those of skill in the art. In one embodiment, the location determination module 115 determines the location of the user device in terms of latitude and longitude.
  • the user device 110 also includes a server interaction module 112 to manage the communications between the server 120 and the user device 110 .
  • the server interaction module 112 receives data sent to the user device 110 from the server 120 , including, in one embodiment, metadata identifying extracted entities within the data and recognized events.
  • the server interaction module 112 also receives data to be sent to the server 120 from the user device 110 , for example outbound email and text messages and the determined location of the user device 110 from the location determination module 115 .
  • FIG. 2A is a block diagram of a server 120 , in accordance with an embodiment of the invention.
  • the server 120 analyzes data flowing to and from the user device 110 in order to extract entities and recognize events.
  • the server 120 includes an entity extraction module 124 , an index module 125 , a social network module 129 , an event recognition module 126 , a location tracker 123 , a location inference module 127 , a storage module 128 , a message agent 122 , and a device interaction module 121 .
  • the entity extraction module 124 identifies entities from data flowing to and from the user device 110 .
  • the entity extraction module 124 parses text in a document in order to identify entities. For example, location names, names of people, and names of organizations are extracted based on full natural language processing, whereas phone numbers, email addresses, and URLs are extracted based on regular expressions, and dates and times are extracted based on a set of rules.
  • the entity name may be an alias of the word or words that appear in the text that undergoes analysis by the entity extraction module 124 .
  • the entity type is one of person, organization, location, or other. The entity name and type may be output from the entity extraction module to storage 128 and/or communicated to the user device 110 through the device interaction module 121 of the server 120 .
  • the index module 125 indexes the data according to the entities extracted by the entity extraction module 124 , in one embodiment. In cases where a document contains more than one extracted entity, the document may be indexed under each extracted entity.
  • the index module 125 may store the results of the indexing in a local storage 128 or remote storage (not shown).
  • the social network module 129 builds the social network model implicit in the user's data, such as from contacts, email, web pages, as well as other types of documents.
  • the social network model is a description of the relationships between the entities that are found in the user's data.
  • the social network model adjusts the strength of relationships determined to exist between entities, particularly people entities.
  • the server 120 uses the user's social network model, for example, to aid in entity extraction and to aid in identifying entities from an ambiguous reference in the user's data, as described in U.S. patent application Ser. No. 12/512,752, filed Jul. 30, 2009, entitled “Social network Model for Semantic Processing” which has been incorporated by reference.
  • the social network module 129 stores the social network model in storage 128 .
  • the message agent 122 receives inbound messages from message server 140 and outbound messages from the user device 110 .
  • the message agent 122 may also act as a mail transfer agent in routing messages between servers and mail clients.
  • the message agent 122 provides the server 120 with the ability to intercept and process messages passing between devices on the network 101 .
  • the event recognition module 126 recognizes events from data flowing to and from the user device 110 , including the user's correspondence.
  • the event recognition module 126 parses text in a document in order to identify appointments, meeting requests, flight reservations, and itineraries.
  • a variety of techniques can be used to recognize events and extract event information from the parsed text.
  • a machine learning algorithm uses features such as the presence of date, time, location, people and other entities, and the presence of phrases such as “meet”, “get together”, and the like to learn a model for recognizing when a document refers to an event.
  • the event information may comprise a time period, one or more locations, and one or more participants.
  • the event information may be output from the event recognition module 126 to storage 128 and/or communicated to the user device 110 through the device interaction module 121 of the server as metadata associated with the document.
  • the user interface when the user views a document with associated event metadata, the user interface provides a mechanism to create a new event in the calendar using the associated metadata. metadata.
  • entities related to the event are highlighted; when the user selects a highlighted entity, a node menu appears including an option to create a new event incorporating the metadata. Node menus are discussed in more detail in U.S.
  • the location tracker 123 receives information regarding the location of the user device 110 from the location determination module 115 of the user device 110 .
  • the location tracker 123 may receive a stream of coordinates derived from GPS signals or from cellular or other location determination technologies.
  • the location of the user's device 110 is tracked every 10 minutes. In other embodiments, the location may be tracked more or less frequently. Generally, a higher frequency of location determinations results in more accurate location data but a shorter battery life for the device 110 .
  • the location tracker 123 may store the user's location data in storage 128 .
  • the location inference module 127 infers the future location of the user based on prior patterns, the user's calendared events, and the user's correspondence.
  • the location inference module 127 is described in greater detail with reference to FIG. 2B .
  • the device interaction module 121 manages the communications between the server 120 and the user device 110 . Specifically, the device interaction module 121 receives documents from, for example, web server 130 or message server 140 through message agent 122 , or from other locations on the network 101 , to be sent to a user device 110 . In one embodiment, the device interaction module 121 also receives metadata identifying entities within documents from the entity extraction module 124 and event information from event recognition module 126 . The device interaction module 121 also receives data from the user device 110 for subsequent processing by the server 120 , including the location information from the location determination module 115 of the user device 110 .
  • FIG. 2B is a block diagram of a location inference module 127 , in accordance with one embodiment of the invention.
  • the location inference module 127 infers the user's future location based on prior patterns, the user's calendared events, and the user's correspondence.
  • the location inference module 127 includes a place identification module 1271 , a place naming module 1274 , a shadow calendar module 1272 and a travel time estimation module 1273 .
  • the place identification module 1271 identifies places of importance in the user's saved location data.
  • a place of importance is anywhere the user stops for a while or spends a significant amount of time.
  • a place is defined as a map point (for example, expressed in latitude/longitude coordinates), a distribution around that point (for example, a circle of fixed radius or a normal distribution with a certain standard deviation), and, optionally, one or more names.
  • a place is created for anywhere the user stops for at least 30 minutes, and places are discovered by clustering recorded location points to find these places. Places may be initially unnamed, until processed by the place naming module 1274 .
  • Places may have an associated history which tracks the when, how often, and for how long the user has visited the place; places with longer histories may be made more prominent in the user interface. Addresses discovered in the user's data may also be considered to be places; the address can generally be converted to map coordinates.
  • the place naming module 1274 correlates places identified by the place identification module 1271 with place names from the user, place names from the user's data, publicly-available business and place names, and other sources in user calendar entries 12701 and user event data 12702 extracted by the event recognition module 126 of the server 120 , and by coordinates or other user location data 12703 received by the location tracker 123 of the server 120 .
  • the place naming module 1274 tracks possible names for identified places. A single place may have multiple valid names (such as “The White House” and “The President's house”); in addition multiple places with different names may appear as the same location due to the limitations of the device's location technology.
  • the place naming module 1274 can associate names with places in various ways.
  • the user may choose to associate a name with an address or map location; in one embodiment, the user may be prompted to name places with extensive history.
  • the user may also choose to add both a place name and an address or map location (as indicated via a map browsing application) to a calendar event; this creates an implicit association.
  • An association may also be created when the user has a calendar event that lists a location name and his location log shows him to be at certain map coordinates during that time.
  • the user's correspondence may refer to an event that corresponds to a particular place and time found in the user's location log.
  • associations may also be generated by using publicly-available location data to find possible names. All of these examples provide evidence of a location-name association; the place naming module maintains a “confidence” in every association by combining and weighing the available evidence. Places and names may be shown to the user only when the confidence reaches a threshold.
  • the shadow calendar module 1272 uses patterns in the user location data 12703 to create a typical routine generally followed by the user. In some cases, places with special meaning to a user, such as “work” and “home” can be inferred from patterns in the user's locations. For example, John lives in West Seattle and works downtown. The shadow calendar module 1272 has observed that he is typically in one location at night and the other during weekdays.
  • the shadow calendar module 1272 may associate the names “home” and “work” with these places, and create a typical schedule for the user being at “home” and at “work.”
  • the typical schedule of where the user is throughout the day, week, month, or other time period is referred to herein as the user's “shadow calendar.”
  • the shadow calendar module 1272 can infer where the user is likely to be in the future according to the same pattern, unless another event from the user calendar entries 12701 or user event data 12702 is scheduled to alter the pattern.
  • events scheduled by the user can supersede events in the shadow calendar.
  • the shadow calendar module 1272 creates “patterns” that consist of a place, a time span, a recurrence, and a probability.
  • a place refers to any place identified and named by modules 1271 and 1274 .
  • a time span might be a range of times, with a distribution representing variance around the endpoints. Typical recurrences include daily, weekly, every weekday, and the like.
  • the probability represents the percentage of the time the user has been observed to be in that place during those time spans (and thus a projected future probability of finding him there).
  • John's “work” pattern would consists of the place that has been identified as “work”, the time span 9:00 am-5:00 pm with a normal distribution to represent that he sometimes arrives or leaves earlier or later, the recurrence “every weekday”, and the probability 0.67 because John is often out of the office for meetings—about one third of the time.
  • the travel time estimation module 1273 estimates the travel time needed to travel to and from a calendared event.
  • the travel time to the event can be estimated from where the user currently is, for example as reported through the user location data 12703 , from a departure point that the user explicitly adds to the event data, or from where the user is predicted to be in advance of the calendared event based on the user calendar entries 12701 , user event data 12702 or the shadow calendar created by the shadow calendar module 1272 .
  • the travel time needed after the event can be estimated based on the location of the next calendared event based on the user calendar entries 12701 and the user event data 12702 , or to where the user is predicted to be heading based on the shadow calendar created by the shadow calendar module 1272 .
  • the travel time estimation module 1273 may receive map data 12704 , business and organization data 12705 , directions and route data 12706 , traffic data 12707 , and user location data 12703 as inputs to preparing travel time estimations.
  • the map data 12704 and business and organization data 12705 can help identify the coordinates of the location for the event. For example, if the event is at Stella's Café in Seattle, the business and organization data 12705 can identify the street address for the restaurant.
  • the map data 12704 can correlate the street address for the restaurant to a geospatial location, for example in coordinates.
  • the directions and route data 12706 can plan the route between the user's starting location and the geospatial location of Stella's Café.
  • the directions and route data 12706 may include directions and routes for multiple modes of transportation, such as walking, cycling, taking mass transit (e.g., bus, trolley, train, ferry), or driving.
  • Traffic data can be used to estimate which route among several possibilities (e.g., surface streets versus a freeway, or a train versus driving) is the fastest to Stella's Café, and ultimately how long the travel time is expected to be.
  • observed travel time from any of the user's previous visits to this location, particularly at the same departure time can influence the travel time estimate.
  • the system uses the user location data 12703 to compute and record the travel time for every route the user travels.
  • the travel time may be estimated as the average travel time of all previous trips along that route.
  • the average may be computed as a weighted average, where the closer the trip was in time of day to the planned trip, the greater weight that trip has in determining the projected time. For example, suppose the user is planning a meeting at Stella's Café for noon on the next day. He may have traveled to there from work five times previously, three times at around noon and twice at 6:00 pm. When predicting the travel time, the system may weight the travel time of the three noon trips more than that of the two evening trips.
  • the travel time estimates can be presented to the user as blocks of time immediately adjacent to the calendared appointments, as will be shown and described with reference to FIGS. 4-7 below. These estimates can be dynamically updated, for example, in response to changing traffic conditions, and the corresponding length of the blocks of time adjacent to the calendared appointments are updated accordingly.
  • FIG. 3 is high-level block diagram illustrating an example of a computer 300 for use as a server 120 or user device 110 , in accordance with an embodiment of the invention. Illustrated are at least one processor 302 coupled to a chipset 304 .
  • the chipset 304 includes a memory controller hub 350 and an input/output (I/O) controller hub 355 .
  • a memory 306 and a graphics adapter 313 are coupled to the memory controller hub 350 , and a display device 318 is coupled to the graphics adapter 313 .
  • a storage device 308 , keyboard 310 , pointing device 314 , and network adapter 316 are coupled to the I/O controller hub 355 .
  • Other embodiments of the computer 300 have different architectures.
  • the memory 306 is directly coupled to the processor 302 in some embodiments.
  • the storage device 308 is a computer-readable storage medium such as a hard drive, compact disk read-only memory (CD-ROM), DVD, or a solid-state memory device.
  • the memory 306 holds instructions and data used by the processor 302 .
  • the pointing device 314 is a mouse, track ball, or other type of pointing device, and is used in combination with the keyboard 310 to input data into the computer system 300 .
  • the graphics adapter 313 displays images and other information on the display device 318 .
  • the display device 318 includes a touch screen capability for receiving user input and selections.
  • the network adapter 316 couples the computer system 300 to the communications network 101 . Some embodiments of the computer 300 have different and/or other components than those shown in FIG. 3 .
  • the computer 300 is adapted to execute computer program modules for providing functionality described herein.
  • module refers to computer program instructions and other logic used to provide the specified functionality.
  • a module can be implemented in hardware, firmware, and/or software.
  • program modules formed of executable computer program instructions are stored on the storage device 308 , loaded into the memory 306 , and executed by the processor 302 .
  • the types of computers 300 used by the entities of FIG. 1 can vary depending upon the embodiment and the processing power used by the entity.
  • a mobile device 110 that is PDA typically has limited processing power, a small display 318 , and might lack a pointing device 314 .
  • the server 120 may comprise multiple blade servers working together to provide the functionality described herein.
  • FIG. 4 is an illustration of a user interface 400 displaying a calendar showing events in two locations in different time zones.
  • the user interface 400 allows the user to view a visual representation of calendar entries according to the location in which the events represented by the calendar entries occur and the local time at which they occur.
  • the user interface 400 is divided into two portions: the portion on the left 441 corresponding to Pacific Standard Time, and the portion on the right 442 corresponding to Central Standard Time. In the example, these time zones have been chosen because the user is currently in Seattle, in the Pacific time zone, and will be traveling to Chicago, in the Central time zone. The user may manually select these time zones, or allow the device to select them automatically, based on the locations of calendar events during the day being viewed.
  • a timeline 443 corresponding to Pacific Standard Time is placed vertically within the portion on the left 441
  • a timeline 444 corresponding to Central Standard Time is placed vertically within the portion on the right 442 .
  • Each timeline 443 , 444 displays numbers corresponding to times in the respective time zone.
  • Calendared events are shown as enclosed shapes that overlap one or more of the timelines 443 , 444 associated with the different locations.
  • the position of events on the left or the right portion of the screen provides a visual identifier to the user regarding which timeline the event is associated with, and thus, which timeline the event originated from or is connected to.
  • the shape of events is rectangular with rounded corners, but any other shape may be used additionally or alternatively.
  • the start and end times for an event are represented respectively by where the top edge and bottom edge of the shape crosses the timeline 443 , 444 .
  • the vertical extent of the shape is correlated to the length of the event.
  • the horizontal placement and extent of the shape represents the location or locations which is relevant to the event, as will be described in more detail below.
  • each shape may contain a text description of the event to identify the event to the user.
  • Each event may be associated with additional information that may or may not be displayed to the user, including other participants in the event, the location of the event, the exact start time and end time of the event, the organizer of the event, and/or any other information that is generally tracked with respect to calendar entries, as known to those of ordinary skill in the art.
  • the first calendared appointment for the user on Friday, Apr. 9, 2010 is a conference call 401 between Seattle and Chicago.
  • the user interface 400 allows the user to quickly grasp what time it is in Seattle and Chicago for any calendar entry by viewing the timelines 443 , 444 down the left 441 and right 442 sides of the display.
  • events that do not have to take place in any specific location are identified in a different color or otherwise distinguished from events that are tied to specific locations.
  • events that do not have to take place in any specific location for example calls 401 , 404 , and 409 , are surrounded by a “time box” having dotted lines.
  • the dotted lines overlap the timelines relevant for the people participating in the event (i.e., the call participants) but do not require the participants to be at any particular location.
  • the event 401 overlaps both timelines 443 and 444 , despite the fact that the user could be anywhere in Seattle or even en route to another city while making the call.
  • the position of the event “time box” relays important information regarding timelines to the user: especially which timelines are relevant to that event. Because the user may participate in these events while en route, they may be scheduled to overlap with travel time without a conflict; in one embodiment, the user is warned of the overlap and may choose whether to schedule the event. For example, the user may choose to make the conference call 401 while en route to the airport for his flight.
  • the flight event 403 is represented as an enclosed shape outlining an area that spans the timelines 443 , 444 associated with both Seattle and Chicago because the flight takes off in one location and lands in the other, and is thus relevant to both timelines.
  • the travel time to get to the airport for the flight event 403 is shown by calendar entry 402 adjacent to the upper edge of the flight event 403 .
  • the user can quickly view the duration of the flight by the vertical extent of the shape 403 and quickly grasp the total time the user will be in transit from the combination of the travel time 402 and flight event 403 .
  • the travel time 402 may be displayed as spanning the entire width of the associated calendar entry 403 to emphasize that the travel time 402 is closely tied to the event represented by the calendar entry 403 .
  • the travel time 402 may be displayed as overlapping just one timeline 443 and positioned on one side of the display 441 , for example as spanning the left half of the flight event 403 in order to emphasize that the travel represented by the travel time 402 is associated with one location, namely Seattle.
  • the user can also quickly ascertain what the local time will be in Chicago when the flight will arrive by referencing where the bottom edge of shape 402 crosses the Chicago timeline 444 .
  • events that occur in just one location are shown as enclosed shapes having horizontal extents and placements to overlap just the timeline for that one location.
  • the user can quickly grasp that the meeting with Brad 406 occurs in Chicago rather than Seattle, as evidenced by the fact that the calendar entry 406 is an enclosed shape placed on the right side 442 of the display and overlaps the timeline 444 for Chicago.
  • FIG. 4 Also shown in FIG. 4 are two meetings 406 and 408 that include travel time estimates 405 and 407 that allocate time in the calendar to travel to the meetings.
  • the travel times appear as shapes that connect to a top or bottom edge of another calendared event.
  • the travel times 402 , 405 and 407 can be estimated by the travel time estimation module 1273 of the server 120 with reference to map data 12704 , business and organization data 12705 , directions and route data 12706 , traffic data 12707 , and user location data 12703 as inputs to preparing travel time estimations.
  • the travel time estimation module 1273 automatically places these travel times 402 , 405 and 407 into the calendar so that they appear as scheduled events to prevent the user from double-booking the time before the meeting/event.
  • the travel times 402 , 405 and 407 also assist the user in planning when the user needs to leave a previous engagement in order to arrive at the next scheduled meeting/event on time.
  • FIG. 5 is an illustration of an alternate user interface 500 displaying a calendar showing events in three locations in three different time zones.
  • more or fewer time zones and locations can be displayed which allows the user great flexibility in how the user views calendar entries arranged by location and time.
  • the user interface 500 is divided into three portions: the portion on the left 551 corresponding to Pacific Standard Time, the portion in the middle 552 corresponding to Central Standard Time, and the portion on the right 553 corresponding to Eastern Standard Time.
  • the on-screen location of the “time box” that represents the event provides a visual cue to the user of what timeline or timelines are relevant to the event in question.
  • these time zones have been chosen because the user is currently in Seattle, in the Pacific time zone, will be traveling to Chicago, in the Central time zone, and also has two meetings that include calls to people in New York, the Eastern time zone.
  • a specific city or other location within each of the time zones may or may not be labeled in the portions 551 , 552 , 553 of the user interface 500 .
  • Each of the three portions includes a respective timeline 554 , 555 , 556 that shows the local time for the location corresponding to the respective portion 551 , 552 , 553 .
  • the locations and time zones are represented in the order in which they appear on a map as a default organization, but in other implementations they are presented in an order determined by user preference.
  • meeting 506 with Brad in Chicago includes a call to Tim in New York, hence the calendar entry 506 overlaps the timelines for Chicago 555 and New York 556 .
  • FIG. 6 is an illustration of a user interface 600 displaying a calendar showing events in three locations within the same time zone.
  • the user interface 600 allows the user to view a visual representation of calendar entries according to the location in which the events represented by those calendar entries occur.
  • the timeline 664 for the Pacific Standard Time that applies to all the locations in this example is shown along the left of the interface 600 , but user interface 600 is still divided into three parts: the left side 661 represents the location of the user's home, the middle 662 represents the location of the user's office, and the right side 663 represents Bellevue, a location to which the user must travel.
  • the user begins the day at home.
  • an estimated travel time 601 has been inserted into the calendar to account for the travel time from the user's home to the office.
  • the user plans to call 603 to “Check In with kids” at 11.
  • dotted lines surround appointments that do not need to occur at any particular location.
  • the calendar events that do not need to occur at any particular location are placed so as to overlap the location that the location inference module 127 predicts that the user will be based on the user's patterns.
  • the conference call 607 overlaps the office location 662 because the user is generally in the office on Friday afternoons according to the shadow calendar developed by the shadow calendar module 1272 of the location inference module 127 .
  • Travel time 604 is an estimate of the time needed for the user to travel to the delivery location of Sasquatch Books corresponding to event 605 in Bellevue from the user's office.
  • Travel time 606 is an estimate of the time needed for the user to travel from the delivery location of Sasquatch Books corresponding to event 605 in Bellevue back to the user's office.
  • the location inference module 127 predicts that the user will return to the office based on the user's past patterns according to the shadow calendar developed by the shadow calendar module 1272 of the location inference module 127 .
  • the location inference module 127 also predicts that the user will be traveling home to meet the plumber 609 from the office based on the shadow calendar.
  • travel time 608 is an estimate of the time needed for the user to travel home from the office. Travel time 608 is shown overlapping with conference call 607 ; however, because the conference call could be made during travel (as indicated by the dotted border around the conference call 607 ), the user need not consider this a conflict. On the other hand, if the user is planning on driving home and prefers to not drive while on the phone, the overlap suggests that he should reschedule either the conference call 607 or the plumber visit 609 .
  • FIG. 7 is an illustration of a user interface 700 displaying a calendar showing events for three users, wherein some events are shared events between multiple users, in accordance with an embodiment of the invention.
  • FIG. 4-6 illustrate user interface divided into portions representing locations
  • the portions of the user interface 700 of FIG. 7 represent different people. Collectively, locations and people will be referred to herein as “calendar entities.”
  • the user interface 700 allows the user to view a visual representation of calendar entries according to who is involved in the event represented by those calendar entries.
  • the timeline 774 for the Pacific Standard Time that applies to the user and the user's assistant and spouse is displayed along the left of the interface 700 , but the user interface 700 is divided into three parts: the left side 771 represents the user's own calendar, the middle 772 represents the user's assistant's calendar, and the right side 773 represents the user's spouse's calendar.
  • travel times 701 , 704 , 706 , and 711 are presented only on the user's calendar for the user's calendared events.
  • the events on the calendars of the assistant 772 and the spouse 773 are placed at the vertical position on the screen that corresponds to the scheduled time for the event and the horizontal position on the screen corresponding to the entity/person involved in the event.
  • the user interface 700 includes examples of events 702 , 709 and 712 that involve the user and the user's assistant.
  • the user can grasp where the user and the user's assistant's schedules overlap and when the user's assistant is committed to other responsibilities, like conference call 708 .
  • the multiple user view of user interface 700 allows the user to see how the user's schedule lines up the schedules of others in his life. For example, the user has calendared a call 703 to check in with the kids before the user's spouse takes the kids to camp 707 , and the user must be home to meet the plumber 710 because the user's spouse will be at yoga 713 .
  • FIG. 8 is a flow chart illustrating a method of inferring a geographic location of a calendar event, in accordance with an embodiment of the invention.
  • the user's location is tracked.
  • the location determination module 115 of the user device 110 determines the location of the user device and communicates the location information to the location tracker 123 of the server 120 .
  • places, times, and recurrences are identified from the user's tracked locations, for example by the place identification module 1271 of the location inference module 127 .
  • place identification module 1271 of the location inference module 127 Generally, as a user spends time in an area, several location readings are communicated from the location determination module 115 of the user device 110 to the location tracker 123 of the server. These location readings are grouped, for example, by identifying a central location of a plurality of similar locations readings and a reasonable variance threshold for readings to be considered to be from the same location. Over time, patterns of recurrences develop in the times that a user is reported as being at various locations. These observed patterns become the basis for the shadow calendar module 1272 of the location inference module 127 to develop the shadow calendar.
  • the user may generally be tracked around one set of coordinates overnight, and another set of coordinates during weekdays from 9-5, and yet at another set of coordinates on Saturday nights.
  • Locations where the user repeatedly goes are inferred to have significance to the user, and it is these locations that it is desirable to name as places, so that when future plans call for visiting these places, they can be referred to by the place name and the travel times to and from the places can be calculated.
  • the identified places are named, for example by the place naming module 1274 of the location inference module 127 .
  • place naming module 1274 of the location inference module 127 Several techniques are used to match what has been observed from the user's patterns with name of locations that have meaning to the user. These techniques will now be described:
  • Calendar events are matched 8031 to the identified places based on the time at which the calendared event was scheduled to occur and the observed location of the user at that time. For example, the user enters a meeting on Tuesday with a client into his calendar with the location of “Bob's Office.” Upon attending the Tuesday meeting, the location inference module 127 observes that the user spends about an hour at a new location, and tentatively associates the name “Bob's Office” with the new location.
  • the user interface may display a pin on a map corresponding to the inferred location, and based on the observation that the user is generally at work during weekdays, the travel time estimation module 1273 can estimate a travel time from the user's work to Bob's Office.
  • the travel time is also automatically scheduled.
  • Correspondence is matched 8032 to an identified place based on recognized event data from the analysis that the event recognition module 126 performs on the user's correspondence. For example, if a user has received an email that states “Meet me at Sarah's house tonight at 7” the event recognition module 126 would recognize that this email refers to an event and that the event takes place at a location called “Sarah's House” (as indicated by “at”), starts at 7:00 pm on the current day (“tonight” indicates both the current day and in the evening), and includes the sender (“me”).
  • the location inference module 127 infers that wherever the user happens to be at 7:00 pm might be the place known as “Sarah's House” (of course, it might not, if the user ignores the email). Accordingly, when the location inference module 127 observes that the user spends around half an hour at a new location at 7:00 that evening, will tentatively associate the name “Sarah's house” with the new location.
  • Another technique for matching a location visited by the user with a name that has meaning to the user is matching 8033 labeled map data to the identified place. For example, if the user location data 12703 indicates to the location inference module 127 that the user has spent time at a set of coordinates, map data 12704 that corresponds to those coordinates can be consulted to determine a name associated with those coordinates, such as the labeled name of the neighborhood, the park, the lake, the trail, etc.
  • location information can have a certain amount of error, because there may be multiple names at or near a set of coordinates, and because we cannot assume that a set of map data is complete, associations created this way cannot be certain but are assigned a confidence value depending on the closeness of the match and degree of certainty. For example, a location in the center of a large neighborhood results in higher confidence than a location near a small park, due to the greater likelihood that the user was not at the park at all.
  • Data about local businesses 8034 can also be matched to the identified place.
  • Data about local businesses from business and organizational data 12705 can be used in combination with other types of data in determining which place from a few possible places that the user spent time. For example, the location determination module 115 of John's user device 110 reports locations to the location tracker 123 that John is out of the office from 12:00-1:00 at a map location that has not been reported before.
  • the location inference module 127 Based on the fact that John was gone during lunchtime, the location inference module 127 has been programmed to infer that it is more likely that he is visiting a restaurant than a bookstore. John had also received an email from Mary that morning that said “lunch today at Burger Heaven?” Therefore, the location inference module 127 concludes that John went to Burger Heaven with Mary between 12:00-1:00.
  • matches based on business data can rarely be certain and will result in associated confidence values depending on the closeness of the match and corroborating evidence as in the example.
  • user input is matched 8035 to the identified place in order to name the place.
  • a user's explicit entry of a name for location will override any names assigned through inference techniques.
  • the location inference module 127 will prompt the user to confirm the identified place name is correct, but in others, a high-confidence identified place name is assumed to be correct unless and until the user edits it.
  • the location of a calendared event can be inferred from a reference to a named place.
  • the location inference module 127 can infer the location of an event from the name, and the travel time estimation module 1273 can calculate the time needed to travel to the location.
  • the GUI 111 can display an indication to John that the location can be mapped and show the now-known location of Burger Heaven on a map.
  • the location inference module 127 will infer that John will be going to Burger Heaven from work (since he is usually at work during the day according to the shadow calendar), and provides an estimated 10-minute travel time based on map data 1204 , traffic data 12707 , and John's past trips to Burger Heaven.
  • the location inference module's 127 ability to determine the location of a place referred to in a future calendar entry is improved, and the travel time estimation module 1273 can estimate travel times to and/or from the place referred to in that calendar entry without additional input from the user.
  • Certain aspects of the present invention include process steps and instructions described herein in the form of an algorithm. It should be noted that the process steps and instructions of the present invention could be embodied in software, firmware or hardware, and when embodied in software, could be downloaded to reside on and be operated from different platforms used by real time network operating systems.
  • the present invention also relates to an apparatus for performing the operations herein.
  • This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored on a computer readable medium that can be accessed by the computer and run by a computer processor.
  • a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, application specific integrated circuits (ASICs), or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
  • the computers referred to in the specification may include a single processor or may be architectures employing multiple processor designs for increased computing capability.
  • the present invention is well suited to a wide variety of computer network systems over numerous topologies.
  • the configuration and management of large networks comprise storage devices and computers that are communicatively coupled to dissimilar computers and storage devices over a network, such as the Internet.

Abstract

A user interface for an electronic calendar represents different locations or different users or different user calendars in different portions of the display. Calendar entries can be associated with one or more locations, one or more users, and with one or more user calendars. The different locations may reside in different time zones and a timeline for each time zone is displayed. The position of the calendar entry provides a visual identifier of the timeline with which the event is associated. Travel time to and from events in the calendar are calculated for calendared events and shown adjacent to the beginning and end of the event. A user's future location at a point in time is inferred from patterns in the user's locations and by analyzing the user's calendared events and correspondence in order to calculate travel time to calendared events.

Description

    CROSS-REFERENCE TO RELATED APPLICATION
  • This application claims the benefit of U.S. Provisional Patent Application No. 61/142,875, filed Jan. 6, 2009, which is hereby incorporated by reference in its entirety. This application is related to U.S. patent application Ser. No. 12/512,854, filed Jul. 30, 2009, entitled “Data-Oriented User Interface for Mobile Device,” and U.S. patent application Ser. No. 12/512,752, filed Jul. 30, 2009, entitled “Social Network Model for Semantic Processing” which are incorporated by reference in their entirety.
  • BACKGROUND
  • 1. Field of the Invention
  • The present invention relates to electronic calendars.
  • 2. Description of the Related Art
  • Users commonly maintain electronic calendars in order to track scheduled appointments, organize meetings, provide reminders to attend planned events, and for the convenience of sharing their availability with others through allowing others to view the electronic calendar. Although electronic calendars are convenient for helping users avoid being double-booked for activities occurring at the same time, conventional electronic calendars do not adequately account for implicit conflicts created by the locations of various meetings. For example, scheduling two adjacent meetings or events that occur in different places may not allow enough time to travel between the events.
  • To address the travel time issue, users have developed a variety of approaches, each with respective drawbacks. First, users may choose not to show travel times between events on their calendar. Drawbacks of this approach include the risk of forgetting about or wrongly estimating the travel time required to arrive at an event and leaving too late. Also, other users viewing the calendar may attempt to schedule a meeting with the user for the slot that was intended by the user for travel to another meeting because the slot appeared to be free.
  • Second, users may extend the existing meeting to account for the travel time needed to and from the meeting. Drawbacks of this approach include the risk that the user may incorrectly estimate the travel time, and/or forget the actual start time of the meeting. Also, should the meeting be rescheduled, the user must perform the same estimations and extension again. This approach also hinders the user's ability to invite others to the meeting, since the meeting period reflects the user's own travel times and the travel times may vary for others travelling from different locations.
  • Another approach involves the user manually entering an appointment immediately before and an appointment immediately after any meeting that requires travel in order to block off an estimated travel period on the electronic calendar. This approach is cumbersome for those who travel frequently as any meeting that requires travel becomes a requirement to create three calendar entries that each must be moved if the meeting is rescheduled. This approach also still suffers from the drawback mentioned above regarding the risk that the user may incorrectly estimate the travel time.
  • SUMMARY
  • Embodiments of the invention provide methods, systems, and computer program products for an electronic calendar that recognizes events on the calendar occur at locations and accounts for travel between the locations for the calendared events. In one embodiment, a user interface for the electronic calendar represents different locations in different portions of the display. Calendar entries, such as a conference call or a plane flight, can be associated with one or more location, such as the locations of all conference call participants or the departure and arrival cities for the flight. In one particular embodiment, the different locations reside in different time zones and a timeline for each time zone is displayed. The position of the calendar entries provides a visual identifier to the user of the timeline with which the event is associated.
  • In another embodiment, travel time to and/or from events in the calendar are calculated for calendared events. The time estimated for travel to an event can be shown adjacent to the beginning of the event and the time estimated for travel from the event can be shown adjacent to the end of the event.
  • In another embodiment, a user's future location at a point in time is inferred from observing patterns in the user's activities and locations as well as by analyzing the user's calendared events and correspondence. By inferring where a user is likely to be traveling from in order to arrive at an event, an estimate can be made as to the appropriate amount of time to allot in the calendar for travel to the event. By inferring where a user is likely to be traveling after an event, an estimate can be made as to the appropriate amount of time to allot for travel after a calendared event.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a high-level block diagram of the computing environment, in accordance with an embodiment of the invention.
  • FIG. 2A is a block diagram of a server, in accordance with an embodiment of the invention.
  • FIG. 2B is a block diagram of a location inference module, in accordance with one embodiment of the invention.
  • FIG. 3 is a high-level block diagram illustrating an example of a computer for use as a user device or server, in accordance with an embodiment of the invention.
  • FIG. 4 is an illustration of a user interface displaying a calendar showing events in two locations in different time zones, in accordance with an embodiment of the invention.
  • FIG. 5 is an illustration of a user interface displaying a calendar showing events in three locations in three different time zones, in accordance with an embodiment of the invention.
  • FIG. 6 is an illustration of a user interface displaying a calendar showing events in three locations within the same time zone, in accordance with an embodiment of the invention.
  • FIG. 7 is an illustration of a user interface displaying a calendar showing events for three users, wherein some events are shared events between multiple users, in accordance with an embodiment of the invention.
  • FIG. 8 is a flow chart illustrating a method of inferring a location of a calendar event, in accordance with an embodiment of the invention.
  • One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the invention described herein.
  • DETAILED DESCRIPTION OF THE EMBODIMENTS
  • Embodiments of the invention provide methods, systems, and computer program products for an electronic calendar that recognizes events on the calendar occur at locations and accounts for time needed to travel between the locations for the calendared events. The electronic calendar may be accessed through an application on a mobile device such as a “smart phone” or a laptop that is equipped with GPS or other location determination technology. Thus, as the user carries the device from place to place throughout the day, the user can access the user's calendar and the device can track the user's location. Through recognizing patterns in the user's locations and from analyzing the user's calendared events and the user's correspondence, the user's future location can be inferred, thus enabling estimates of travel times to events on the calendar from the user's likely starting location and estimates of travel times from events on the calendar to the user's likely next destination.
  • FIG. 1 is a high-level block diagram of the computing environment 100 in accordance with an embodiment of the invention. The computing environment 100 includes a server 120 that is connected via a network 101 to a user device 110. The network 101 is a communications network such as a local area network, a wide area network, a wireless network, an intranet, or the Internet. In one embodiment, the computing environment 100 also includes a web server 130 that serves web pages to the user device 110 and a message server 140 that serves messages such as email or SMS messages to the user device 110. Although only one user device 110 and a limited number of servers are shown in FIG. 1 for clarity, any number and type of user devices and server configurations may be connected to the network 101.
  • In one embodiment, data flowing to and from the user device 110 passes through the server 120. For ease of reference, the term “document” will be used herein to refer to a discrete collection of data, such as an appointment request, an email, a web page, a message, a file, or any other type of electronic document. The term “correspondence” will be used herein to refer to any document that contains a message sent by the user or received by the user, such as an email, a text-message, an appointment request, or the like. The server 120 analyzes the documents flowing to and from the user device 110 in order to extract entities from the data and to recognize events. Entities are data objects that represent people, organizations, locations, or other real world items. Entities have properties associated with them, such as aliases, addresses, latitude/longitude coordinates, points of contact for the entity, and the like. The server 120 extracts the entities from the documents and passes the entity information to the user device 110 so that the user device 110 can offer to the user contextually-relevant actions with respect to the entities, as described by U.S. patent application Ser. No. 12/512,854, filed Jul. 30, 2009, entitled “Data-Oriented User Interface for Mobile Device,” which has been incorporated herein. The server 120 also extracts event information from an analysis of the user's correspondence for use in adding to calendar entries. The server 120 also tracks the user's location from location information received from the user device and can infer the user's future location at various times based on patterns in the tracked locations, the user's calendared events, and the user's analyzed correspondence.
  • In various embodiments, the user device 110 may be any device capable of communicating over the network 101. Examples of a user device 110 include a personal digital assistant (PDA), a mobile device with limited functionality or a “smart phone” mobile device that offers broad functionality such as large memory storage and an advanced user interface, and any portable computer. In one embodiment, the user device 110 is a “smart phone” device that offers broad functionality. For example, the device may track calendar appointments, provide GPS or other location determination functionality, send and receive SMS messages and email, offer web access, manage contact information, and manage and communicate other types of documents.
  • The user device 110 has a graphical user interface 111 that allows a user to access and interact with data stored on the user device to make use of the device's functionality. The graphical user interface 111 allows users to view information and select information, for example, by clicking on it, touching it, highlighting it with a cursor, or any other method of selecting a portion of the displayed information. The graphical user interface 111 can be used to display and edit the user's calendar and details about the calendar entries. Examples of the user interface 111 are described below with reference to FIGS. 4-7. In one embodiment, the graphical user interface 111 also includes node menus that contain actions relevant to a selected entity and/or spinners which allow a user to simultaneously view information from a variety of applications that is relevant to an entity, both of which have been described in U.S. patent application Ser. No. 12/512,854, filed Jul. 30, 2009, entitled “Data-Oriented User Interface for Mobile Device,” which has been incorporated by reference in its entirety.
  • In this example, in addition to the graphical user interface 111, the user device 110 includes various applications 113 that support the functionality of the user device 110. For example, the user device 110 may include a calendar application 114 and telephone, email, contact manager, browser, word processing, map browser, spreadsheet, and/or other business or personal applications. A user of the user device 110 may create, receive, send, access, store, or otherwise interact with data through the applications 113. Specifically, the user can use the calendar application 114 to schedule, view and update calendar entries, and send meeting requests to others. As will be described in more detail below, the calendar application 114 recognizes that some events are tied to specific locations and the electronic calendar represents different locations in different portions of the display. Calendar entries, such as a conference call or a plane flight, can be associated with one or more locations, such as the locations of all conference call participants or the departure and arrival cities for the flight. In one particular embodiment, the different locations may reside in different time zones, and the calendar application 114 displays the relative local time for calendar entries in association with the calendar entries.
  • The user device 110 also includes a location determination module 115. The location determination module 115 determines the current location of the user device 110, for example from received GPS and/or cellular signals and/or any other location determination method known to those of skill in the art. In one embodiment, the location determination module 115 determines the location of the user device in terms of latitude and longitude.
  • The user device 110 also includes a server interaction module 112 to manage the communications between the server 120 and the user device 110. Specifically, the server interaction module 112 receives data sent to the user device 110 from the server 120, including, in one embodiment, metadata identifying extracted entities within the data and recognized events. The server interaction module 112 also receives data to be sent to the server 120 from the user device 110, for example outbound email and text messages and the determined location of the user device 110 from the location determination module 115.
  • FIG. 2A is a block diagram of a server 120, in accordance with an embodiment of the invention. The server 120 analyzes data flowing to and from the user device 110 in order to extract entities and recognize events. In this example, the server 120 includes an entity extraction module 124, an index module 125, a social network module 129, an event recognition module 126, a location tracker 123, a location inference module 127, a storage module 128, a message agent 122, and a device interaction module 121.
  • The entity extraction module 124 identifies entities from data flowing to and from the user device 110. The entity extraction module 124 parses text in a document in order to identify entities. For example, location names, names of people, and names of organizations are extracted based on full natural language processing, whereas phone numbers, email addresses, and URLs are extracted based on regular expressions, and dates and times are extracted based on a set of rules. In one embodiment, the entity name may be an alias of the word or words that appear in the text that undergoes analysis by the entity extraction module 124. In one embodiment, the entity type is one of person, organization, location, or other. The entity name and type may be output from the entity extraction module to storage 128 and/or communicated to the user device 110 through the device interaction module 121 of the server 120.
  • The index module 125 indexes the data according to the entities extracted by the entity extraction module 124, in one embodiment. In cases where a document contains more than one extracted entity, the document may be indexed under each extracted entity. The index module 125 may store the results of the indexing in a local storage 128 or remote storage (not shown).
  • The social network module 129 builds the social network model implicit in the user's data, such as from contacts, email, web pages, as well as other types of documents. The social network model is a description of the relationships between the entities that are found in the user's data. The social network model adjusts the strength of relationships determined to exist between entities, particularly people entities. The server 120 uses the user's social network model, for example, to aid in entity extraction and to aid in identifying entities from an ambiguous reference in the user's data, as described in U.S. patent application Ser. No. 12/512,752, filed Jul. 30, 2009, entitled “Social network Model for Semantic Processing” which has been incorporated by reference. The social network module 129 stores the social network model in storage 128.
  • The message agent 122 receives inbound messages from message server 140 and outbound messages from the user device 110. The message agent 122 may also act as a mail transfer agent in routing messages between servers and mail clients. The message agent 122 provides the server 120 with the ability to intercept and process messages passing between devices on the network 101.
  • The event recognition module 126 recognizes events from data flowing to and from the user device 110, including the user's correspondence. The event recognition module 126 parses text in a document in order to identify appointments, meeting requests, flight reservations, and itineraries. A variety of techniques can be used to recognize events and extract event information from the parsed text. In one embodiment, a machine learning algorithm uses features such as the presence of date, time, location, people and other entities, and the presence of phrases such as “meet”, “get together”, and the like to learn a model for recognizing when a document refers to an event. The event information may comprise a time period, one or more locations, and one or more participants. The event information may be output from the event recognition module 126 to storage 128 and/or communicated to the user device 110 through the device interaction module 121 of the server as metadata associated with the document. In one embodiment, when the user views a document with associated event metadata, the user interface provides a mechanism to create a new event in the calendar using the associated metadata. metadata. In one embodiment, entities related to the event are highlighted; when the user selects a highlighted entity, a node menu appears including an option to create a new event incorporating the metadata. Node menus are discussed in more detail in U.S. patent application Ser. No. 12/512,854, filed Jul. 30, 2009, entitled “Data-Oriented User Interface for Mobile Device,” which has been incorporated herein by reference.
  • The location tracker 123 receives information regarding the location of the user device 110 from the location determination module 115 of the user device 110. For example, the location tracker 123 may receive a stream of coordinates derived from GPS signals or from cellular or other location determination technologies. In one embodiment, the location of the user's device 110 is tracked every 10 minutes. In other embodiments, the location may be tracked more or less frequently. Generally, a higher frequency of location determinations results in more accurate location data but a shorter battery life for the device 110. The location tracker 123 may store the user's location data in storage 128.
  • The location inference module 127 infers the future location of the user based on prior patterns, the user's calendared events, and the user's correspondence. The location inference module 127 is described in greater detail with reference to FIG. 2B.
  • The device interaction module 121 manages the communications between the server 120 and the user device 110. Specifically, the device interaction module 121 receives documents from, for example, web server 130 or message server 140 through message agent 122, or from other locations on the network 101, to be sent to a user device 110. In one embodiment, the device interaction module 121 also receives metadata identifying entities within documents from the entity extraction module 124 and event information from event recognition module 126. The device interaction module 121 also receives data from the user device 110 for subsequent processing by the server 120, including the location information from the location determination module 115 of the user device 110.
  • FIG. 2B is a block diagram of a location inference module 127, in accordance with one embodiment of the invention. The location inference module 127 infers the user's future location based on prior patterns, the user's calendared events, and the user's correspondence. The location inference module 127 includes a place identification module 1271, a place naming module 1274, a shadow calendar module 1272 and a travel time estimation module 1273.
  • The place identification module 1271 identifies places of importance in the user's saved location data. A place of importance is anywhere the user stops for a while or spends a significant amount of time. In one embodiment, a place is defined as a map point (for example, expressed in latitude/longitude coordinates), a distribution around that point (for example, a circle of fixed radius or a normal distribution with a certain standard deviation), and, optionally, one or more names. In one embodiment, a place is created for anywhere the user stops for at least 30 minutes, and places are discovered by clustering recorded location points to find these places. Places may be initially unnamed, until processed by the place naming module 1274. Places may have an associated history which tracks the when, how often, and for how long the user has visited the place; places with longer histories may be made more prominent in the user interface. Addresses discovered in the user's data may also be considered to be places; the address can generally be converted to map coordinates.
  • The place naming module 1274 correlates places identified by the place identification module 1271 with place names from the user, place names from the user's data, publicly-available business and place names, and other sources in user calendar entries 12701 and user event data 12702 extracted by the event recognition module 126 of the server 120, and by coordinates or other user location data 12703 received by the location tracker 123 of the server 120. The place naming module 1274 tracks possible names for identified places. A single place may have multiple valid names (such as “The White House” and “The President's house”); in addition multiple places with different names may appear as the same location due to the limitations of the device's location technology.
  • The place naming module 1274 can associate names with places in various ways. The user may choose to associate a name with an address or map location; in one embodiment, the user may be prompted to name places with extensive history. The user may also choose to add both a place name and an address or map location (as indicated via a map browsing application) to a calendar event; this creates an implicit association. An association may also be created when the user has a calendar event that lists a location name and his location log shows him to be at certain map coordinates during that time. Similarly, the user's correspondence may refer to an event that corresponds to a particular place and time found in the user's location log. Finally, associations may also be generated by using publicly-available location data to find possible names. All of these examples provide evidence of a location-name association; the place naming module maintains a “confidence” in every association by combining and weighing the available evidence. Places and names may be shown to the user only when the confidence reaches a threshold.
  • The shadow calendar module 1272 uses patterns in the user location data 12703 to create a typical routine generally followed by the user. In some cases, places with special meaning to a user, such as “work” and “home” can be inferred from patterns in the user's locations. For example, John lives in West Seattle and works downtown. The shadow calendar module 1272 has observed that he is typically in one location at night and the other during weekdays. Thus, the shadow calendar module 1272 may associate the names “home” and “work” with these places, and create a typical schedule for the user being at “home” and at “work.” The typical schedule of where the user is throughout the day, week, month, or other time period is referred to herein as the user's “shadow calendar.” By observing the user's typical locations, the shadow calendar module 1272 can infer where the user is likely to be in the future according to the same pattern, unless another event from the user calendar entries 12701 or user event data 12702 is scheduled to alter the pattern. Thus, events scheduled by the user can supersede events in the shadow calendar.
  • In one embodiment, the shadow calendar module 1272 creates “patterns” that consist of a place, a time span, a recurrence, and a probability. A place refers to any place identified and named by modules 1271 and 1274. A time span might be a range of times, with a distribution representing variance around the endpoints. Typical recurrences include daily, weekly, every weekday, and the like. Finally, the probability represents the percentage of the time the user has been observed to be in that place during those time spans (and thus a projected future probability of finding him there). For example, John's “work” pattern would consists of the place that has been identified as “work”, the time span 9:00 am-5:00 pm with a normal distribution to represent that he sometimes arrives or leaves earlier or later, the recurrence “every weekday”, and the probability 0.67 because John is often out of the office for meetings—about one third of the time.
  • The travel time estimation module 1273 estimates the travel time needed to travel to and from a calendared event. The travel time to the event can be estimated from where the user currently is, for example as reported through the user location data 12703, from a departure point that the user explicitly adds to the event data, or from where the user is predicted to be in advance of the calendared event based on the user calendar entries 12701, user event data 12702 or the shadow calendar created by the shadow calendar module 1272. Similarly, the travel time needed after the event can be estimated based on the location of the next calendared event based on the user calendar entries 12701 and the user event data 12702, or to where the user is predicted to be heading based on the shadow calendar created by the shadow calendar module 1272.
  • The travel time estimation module 1273 may receive map data 12704, business and organization data 12705, directions and route data 12706, traffic data 12707, and user location data 12703 as inputs to preparing travel time estimations. The map data 12704 and business and organization data 12705 can help identify the coordinates of the location for the event. For example, if the event is at Stella's Café in Seattle, the business and organization data 12705 can identify the street address for the restaurant. The map data 12704 can correlate the street address for the restaurant to a geospatial location, for example in coordinates. The directions and route data 12706 can plan the route between the user's starting location and the geospatial location of Stella's Café. The directions and route data 12706 may include directions and routes for multiple modes of transportation, such as walking, cycling, taking mass transit (e.g., bus, trolley, train, ferry), or driving. Traffic data can be used to estimate which route among several possibilities (e.g., surface streets versus a freeway, or a train versus driving) is the fastest to Stella's Café, and ultimately how long the travel time is expected to be. Lastly, observed travel time from any of the user's previous visits to this location, particularly at the same departure time, can influence the travel time estimate. In one embodiment, the system uses the user location data 12703 to compute and record the travel time for every route the user travels. When a future meeting calls for a route the user has traveled before, the travel time may be estimated as the average travel time of all previous trips along that route. The average may be computed as a weighted average, where the closer the trip was in time of day to the planned trip, the greater weight that trip has in determining the projected time. For example, suppose the user is planning a meeting at Stella's Café for noon on the next day. He may have traveled to there from work five times previously, three times at around noon and twice at 6:00 pm. When predicting the travel time, the system may weight the travel time of the three noon trips more than that of the two evening trips. The travel time estimates can be presented to the user as blocks of time immediately adjacent to the calendared appointments, as will be shown and described with reference to FIGS. 4-7 below. These estimates can be dynamically updated, for example, in response to changing traffic conditions, and the corresponding length of the blocks of time adjacent to the calendared appointments are updated accordingly.
  • FIG. 3 is high-level block diagram illustrating an example of a computer 300 for use as a server 120 or user device 110, in accordance with an embodiment of the invention. Illustrated are at least one processor 302 coupled to a chipset 304. The chipset 304 includes a memory controller hub 350 and an input/output (I/O) controller hub 355. A memory 306 and a graphics adapter 313 are coupled to the memory controller hub 350, and a display device 318 is coupled to the graphics adapter 313. A storage device 308, keyboard 310, pointing device 314, and network adapter 316 are coupled to the I/O controller hub 355. Other embodiments of the computer 300 have different architectures. For example, the memory 306 is directly coupled to the processor 302 in some embodiments.
  • The storage device 308 is a computer-readable storage medium such as a hard drive, compact disk read-only memory (CD-ROM), DVD, or a solid-state memory device. The memory 306 holds instructions and data used by the processor 302. The pointing device 314 is a mouse, track ball, or other type of pointing device, and is used in combination with the keyboard 310 to input data into the computer system 300. The graphics adapter 313 displays images and other information on the display device 318. In some embodiments, the display device 318 includes a touch screen capability for receiving user input and selections. The network adapter 316 couples the computer system 300 to the communications network 101. Some embodiments of the computer 300 have different and/or other components than those shown in FIG. 3.
  • The computer 300 is adapted to execute computer program modules for providing functionality described herein. As used herein, the term “module” refers to computer program instructions and other logic used to provide the specified functionality. Thus, a module can be implemented in hardware, firmware, and/or software. In one embodiment, program modules formed of executable computer program instructions are stored on the storage device 308, loaded into the memory 306, and executed by the processor 302.
  • The types of computers 300 used by the entities of FIG. 1 can vary depending upon the embodiment and the processing power used by the entity. For example, a mobile device 110 that is PDA typically has limited processing power, a small display 318, and might lack a pointing device 314. The server 120, in contrast, may comprise multiple blade servers working together to provide the functionality described herein.
  • FIG. 4 is an illustration of a user interface 400 displaying a calendar showing events in two locations in different time zones. The user interface 400 allows the user to view a visual representation of calendar entries according to the location in which the events represented by the calendar entries occur and the local time at which they occur. The user interface 400 is divided into two portions: the portion on the left 441 corresponding to Pacific Standard Time, and the portion on the right 442 corresponding to Central Standard Time. In the example, these time zones have been chosen because the user is currently in Seattle, in the Pacific time zone, and will be traveling to Chicago, in the Central time zone. The user may manually select these time zones, or allow the device to select them automatically, based on the locations of calendar events during the day being viewed.
  • A timeline 443 corresponding to Pacific Standard Time is placed vertically within the portion on the left 441, and a timeline 444 corresponding to Central Standard Time is placed vertically within the portion on the right 442. Each timeline 443, 444 displays numbers corresponding to times in the respective time zone. Calendared events are shown as enclosed shapes that overlap one or more of the timelines 443, 444 associated with the different locations. In this embodiment, the position of events on the left or the right portion of the screen provides a visual identifier to the user regarding which timeline the event is associated with, and thus, which timeline the event originated from or is connected to. In this example, the shape of events is rectangular with rounded corners, but any other shape may be used additionally or alternatively. The start and end times for an event are represented respectively by where the top edge and bottom edge of the shape crosses the timeline 443, 444. Thus, the vertical extent of the shape is correlated to the length of the event. The horizontal placement and extent of the shape represents the location or locations which is relevant to the event, as will be described in more detail below. In addition, each shape may contain a text description of the event to identify the event to the user. Each event may be associated with additional information that may or may not be displayed to the user, including other participants in the event, the location of the event, the exact start time and end time of the event, the organizer of the event, and/or any other information that is generally tracked with respect to calendar entries, as known to those of ordinary skill in the art.
  • The first calendared appointment for the user on Friday, Apr. 9, 2010 is a conference call 401 between Seattle and Chicago. The user interface 400 allows the user to quickly grasp what time it is in Seattle and Chicago for any calendar entry by viewing the timelines 443, 444 down the left 441 and right 442 sides of the display. In one embodiment, events that do not have to take place in any specific location are identified in a different color or otherwise distinguished from events that are tied to specific locations. In the example shown in FIG. 4, events that do not have to take place in any specific location, for example calls 401, 404, and 409, are surrounded by a “time box” having dotted lines. The dotted lines overlap the timelines relevant for the people participating in the event (i.e., the call participants) but do not require the participants to be at any particular location. Thus, when the user has the conference call 401, the user is calling from Seattle to Chicago, so the event 401 overlaps both timelines 443 and 444, despite the fact that the user could be anywhere in Seattle or even en route to another city while making the call. Again, the position of the event “time box” relays important information regarding timelines to the user: especially which timelines are relevant to that event. Because the user may participate in these events while en route, they may be scheduled to overlap with travel time without a conflict; in one embodiment, the user is warned of the overlap and may choose whether to schedule the event. For example, the user may choose to make the conference call 401 while en route to the airport for his flight.
  • After the call 401, the user has a flight 403 scheduled from Seattle to Chicago. The flight event 403 is represented as an enclosed shape outlining an area that spans the timelines 443, 444 associated with both Seattle and Chicago because the flight takes off in one location and lands in the other, and is thus relevant to both timelines. The travel time to get to the airport for the flight event 403 is shown by calendar entry 402 adjacent to the upper edge of the flight event 403. In this embodiment, the user can quickly view the duration of the flight by the vertical extent of the shape 403 and quickly grasp the total time the user will be in transit from the combination of the travel time 402 and flight event 403. Optionally, the travel time 402 may be displayed as spanning the entire width of the associated calendar entry 403 to emphasize that the travel time 402 is closely tied to the event represented by the calendar entry 403. Alternatively, the travel time 402 may be displayed as overlapping just one timeline 443 and positioned on one side of the display 441, for example as spanning the left half of the flight event 403 in order to emphasize that the travel represented by the travel time 402 is associated with one location, namely Seattle. The user can also quickly ascertain what the local time will be in Chicago when the flight will arrive by referencing where the bottom edge of shape 402 crosses the Chicago timeline 444.
  • In contrast to travel events such as flight 403, events that occur in just one location are shown as enclosed shapes having horizontal extents and placements to overlap just the timeline for that one location. For example, the user can quickly grasp that the meeting with Brad 406 occurs in Chicago rather than Seattle, as evidenced by the fact that the calendar entry 406 is an enclosed shape placed on the right side 442 of the display and overlaps the timeline 444 for Chicago.
  • Also shown in FIG. 4 are two meetings 406 and 408 that include travel time estimates 405 and 407 that allocate time in the calendar to travel to the meetings. In this example, the travel times appear as shapes that connect to a top or bottom edge of another calendared event. The travel times 402, 405 and 407 can be estimated by the travel time estimation module 1273 of the server 120 with reference to map data 12704, business and organization data 12705, directions and route data 12706, traffic data 12707, and user location data 12703 as inputs to preparing travel time estimations. In one embodiment, the travel time estimation module 1273 automatically places these travel times 402, 405 and 407 into the calendar so that they appear as scheduled events to prevent the user from double-booking the time before the meeting/event. The travel times 402, 405 and 407 also assist the user in planning when the user needs to leave a previous engagement in order to arrive at the next scheduled meeting/event on time.
  • FIG. 5 is an illustration of an alternate user interface 500 displaying a calendar showing events in three locations in three different time zones. In other embodiments, more or fewer time zones and locations can be displayed which allows the user great flexibility in how the user views calendar entries arranged by location and time. In this embodiment, the user interface 500 is divided into three portions: the portion on the left 551 corresponding to Pacific Standard Time, the portion in the middle 552 corresponding to Central Standard Time, and the portion on the right 553 corresponding to Eastern Standard Time. The on-screen location of the “time box” that represents the event provides a visual cue to the user of what timeline or timelines are relevant to the event in question. In this embodiment, these time zones have been chosen because the user is currently in Seattle, in the Pacific time zone, will be traveling to Chicago, in the Central time zone, and also has two meetings that include calls to people in New York, the Eastern time zone. A specific city or other location within each of the time zones may or may not be labeled in the portions 551, 552, 553 of the user interface 500. Each of the three portions includes a respective timeline 554, 555, 556 that shows the local time for the location corresponding to the respective portion 551, 552, 553. In some implementations, the locations and time zones are represented in the order in which they appear on a map as a default organization, but in other implementations they are presented in an order determined by user preference.
  • Included in this example are a calendar entry 501 for a conference call with participants from all three time zones; calls 504 and 509 with participants from two time zones each; a flight event 503 that begins in one location (Seattle) and ends in another (Chicago) and requires travel time 502, and two meeting events 506, 508 that each require travel time 505, 507 to attend. Note that in this example, meeting 506 with Brad in Chicago includes a call to Tim in New York, hence the calendar entry 506 overlaps the timelines for Chicago 555 and New York 556.
  • FIG. 6 is an illustration of a user interface 600 displaying a calendar showing events in three locations within the same time zone. The user interface 600 allows the user to view a visual representation of calendar entries according to the location in which the events represented by those calendar entries occur. The timeline 664 for the Pacific Standard Time that applies to all the locations in this example is shown along the left of the interface 600, but user interface 600 is still divided into three parts: the left side 661 represents the location of the user's home, the middle 662 represents the location of the user's office, and the right side 663 represents Bellevue, a location to which the user must travel.
  • The user begins the day at home. In order to attend the morning status meeting 602 at the office, an estimated travel time 601 has been inserted into the calendar to account for the travel time from the user's home to the office.
  • According to the calendar shown in FIG. 6, the user plans to call 603 to “Check In with Kids” at 11. Again in this example, dotted lines surround appointments that do not need to occur at any particular location. In one embodiment, the calendar events that do not need to occur at any particular location are placed so as to overlap the location that the location inference module 127 predicts that the user will be based on the user's patterns. In this example, the conference call 607 overlaps the office location 662 because the user is generally in the office on Friday afternoons according to the shadow calendar developed by the shadow calendar module 1272 of the location inference module 127.
  • Travel time 604 is an estimate of the time needed for the user to travel to the delivery location of Sasquatch Books corresponding to event 605 in Bellevue from the user's office. Travel time 606 is an estimate of the time needed for the user to travel from the delivery location of Sasquatch Books corresponding to event 605 in Bellevue back to the user's office. Although the user may not have explicitly indicated that the user would be traveling back to the office, the location inference module 127 predicts that the user will return to the office based on the user's past patterns according to the shadow calendar developed by the shadow calendar module 1272 of the location inference module 127. The location inference module 127 also predicts that the user will be traveling home to meet the plumber 609 from the office based on the shadow calendar. Thus, travel time 608 is an estimate of the time needed for the user to travel home from the office. Travel time 608 is shown overlapping with conference call 607; however, because the conference call could be made during travel (as indicated by the dotted border around the conference call 607), the user need not consider this a conflict. On the other hand, if the user is planning on driving home and prefers to not drive while on the phone, the overlap suggests that he should reschedule either the conference call 607 or the plumber visit 609.
  • FIG. 7 is an illustration of a user interface 700 displaying a calendar showing events for three users, wherein some events are shared events between multiple users, in accordance with an embodiment of the invention. Whereas the examples shown in FIG. 4-6 illustrate user interface divided into portions representing locations, the portions of the user interface 700 of FIG. 7 represent different people. Collectively, locations and people will be referred to herein as “calendar entities.” The user interface 700 allows the user to view a visual representation of calendar entries according to who is involved in the event represented by those calendar entries. The timeline 774 for the Pacific Standard Time that applies to the user and the user's assistant and spouse is displayed along the left of the interface 700, but the user interface 700 is divided into three parts: the left side 771 represents the user's own calendar, the middle 772 represents the user's assistant's calendar, and the right side 773 represents the user's spouse's calendar. Note that in this example, travel times 701, 704, 706, and 711 are presented only on the user's calendar for the user's calendared events. Note also that only events that involve the user overlap the timeline 771. The events on the calendars of the assistant 772 and the spouse 773 are placed at the vertical position on the screen that corresponds to the scheduled time for the event and the horizontal position on the screen corresponding to the entity/person involved in the event.
  • The user interface 700 includes examples of events 702, 709 and 712 that involve the user and the user's assistant. In a single glance, the user can grasp where the user and the user's assistant's schedules overlap and when the user's assistant is committed to other responsibilities, like conference call 708 Likewise, the multiple user view of user interface 700 allows the user to see how the user's schedule lines up the schedules of others in his life. For example, the user has calendared a call 703 to check in with the kids before the user's spouse takes the kids to camp 707, and the user must be home to meet the plumber 710 because the user's spouse will be at yoga 713.
  • FIG. 8 is a flow chart illustrating a method of inferring a geographic location of a calendar event, in accordance with an embodiment of the invention. In step 801, the user's location is tracked. For example, the location determination module 115 of the user device 110 determines the location of the user device and communicates the location information to the location tracker 123 of the server 120.
  • In step 802, places, times, and recurrences are identified from the user's tracked locations, for example by the place identification module 1271 of the location inference module 127. Generally, as a user spends time in an area, several location readings are communicated from the location determination module 115 of the user device 110 to the location tracker 123 of the server. These location readings are grouped, for example, by identifying a central location of a plurality of similar locations readings and a reasonable variance threshold for readings to be considered to be from the same location. Over time, patterns of recurrences develop in the times that a user is reported as being at various locations. These observed patterns become the basis for the shadow calendar module 1272 of the location inference module 127 to develop the shadow calendar. For example, the user may generally be tracked around one set of coordinates overnight, and another set of coordinates during weekdays from 9-5, and yet at another set of coordinates on Saturday nights. Locations where the user repeatedly goes are inferred to have significance to the user, and it is these locations that it is desirable to name as places, so that when future plans call for visiting these places, they can be referred to by the place name and the travel times to and from the places can be calculated.
  • In step 803, the identified places are named, for example by the place naming module 1274 of the location inference module 127. Several techniques are used to match what has been observed from the user's patterns with name of locations that have meaning to the user. These techniques will now be described:
  • Calendar events are matched 8031 to the identified places based on the time at which the calendared event was scheduled to occur and the observed location of the user at that time. For example, the user enters a meeting on Tuesday with a client into his calendar with the location of “Bob's Office.” Upon attending the Tuesday meeting, the location inference module 127 observes that the user spends about an hour at a new location, and tentatively associates the name “Bob's Office” with the new location. Thus, the following week, when the user creates another weekday meeting having the location of “Bob's Office,” the user interface may display a pin on a map corresponding to the inferred location, and based on the observation that the user is generally at work during weekdays, the travel time estimation module 1273 can estimate a travel time from the user's work to Bob's Office. Thus, when the user saves the calendar entry for the new meeting at Bob's Office, the travel time is also automatically scheduled.
  • Correspondence is matched 8032 to an identified place based on recognized event data from the analysis that the event recognition module 126 performs on the user's correspondence. For example, if a user has received an email that states “Meet me at Sarah's house tonight at 7” the event recognition module 126 would recognize that this email refers to an event and that the event takes place at a location called “Sarah's House” (as indicated by “at”), starts at 7:00 pm on the current day (“tonight” indicates both the current day and in the evening), and includes the sender (“me”). Based on this information, the location inference module 127 infers that wherever the user happens to be at 7:00 pm might be the place known as “Sarah's House” (of course, it might not, if the user ignores the email). Accordingly, when the location inference module 127 observes that the user spends around half an hour at a new location at 7:00 that evening, will tentatively associate the name “Sarah's house” with the new location.
  • Another technique for matching a location visited by the user with a name that has meaning to the user that can be used alternatively or additionally to the techniques described above is matching 8033 labeled map data to the identified place. For example, if the user location data 12703 indicates to the location inference module 127 that the user has spent time at a set of coordinates, map data 12704 that corresponds to those coordinates can be consulted to determine a name associated with those coordinates, such as the labeled name of the neighborhood, the park, the lake, the trail, etc. Because location information can have a certain amount of error, because there may be multiple names at or near a set of coordinates, and because we cannot assume that a set of map data is complete, associations created this way cannot be certain but are assigned a confidence value depending on the closeness of the match and degree of certainty. For example, a location in the center of a large neighborhood results in higher confidence than a location near a small park, due to the greater likelihood that the user was not at the park at all.
  • Data about local businesses 8034 can also be matched to the identified place. Data about local businesses from business and organizational data 12705 can be used in combination with other types of data in determining which place from a few possible places that the user spent time. For example, the location determination module 115 of John's user device 110 reports locations to the location tracker 123 that John is out of the office from 12:00-1:00 at a map location that has not been reported before. Data about local businesses shows three businesses within the error radius of the location readings: a bookstore called “Book Barn,” a restaurant called “Taco Palace,” and a restaurant called “Burger Heaven.” Based on the fact that John was gone during lunchtime, the location inference module 127 has been programmed to infer that it is more likely that he is visiting a restaurant than a bookstore. John had also received an email from Mary that morning that said “lunch today at Burger Heaven?” Therefore, the location inference module 127 concludes that John went to Burger Heaven with Mary between 12:00-1:00. “Burger Heaven” becomes a known named place, and the next time John's user device 110 reports the locations that could correspond to any of the three businesses, the location inference module 127 will be more likely to infer that John visited Burger Heaven than Taco Palace. As with map data, matches based on business data can rarely be certain and will result in associated confidence values depending on the closeness of the match and corroborating evidence as in the example.
  • Referring back to FIG. 8, alternatively or additionally, user input is matched 8035 to the identified place in order to name the place. In one implementation, a user's explicit entry of a name for location will override any names assigned through inference techniques. In some implementations, the location inference module 127 will prompt the user to confirm the identified place name is correct, but in others, a high-confidence identified place name is assumed to be correct unless and until the user edits it.
  • In step 804, the location of a calendared event can be inferred from a reference to a named place. Once places the user goes have been appropriately associated with names that are used to refer to those places, the location inference module 127 can infer the location of an event from the name, and the travel time estimation module 1273 can calculate the time needed to travel to the location. To continue the previous example, if John sends his buddy Ted a lunch invite and he enters “Burger Heaven” for the meeting location, the GUI 111 can display an indication to John that the location can be mapped and show the now-known location of Burger Heaven on a map. Furthermore, the location inference module 127 will infer that John will be going to Burger Heaven from work (since he is usually at work during the day according to the shadow calendar), and provides an estimated 10-minute travel time based on map data 1204, traffic data 12707, and John's past trips to Burger Heaven. Thus, as the number of named places that the user has been is built up over time, the location inference module's 127 ability to determine the location of a place referred to in a future calendar entry is improved, and the travel time estimation module 1273 can estimate travel times to and/or from the place referred to in that calendar entry without additional input from the user.
  • The present invention has been described in particular detail with respect to several possible embodiments. Those of skill in the art will appreciate that the invention may be practiced in other embodiments. The particular naming of the components, capitalization of terms, the attributes, data structures, or any other programming or structural aspect is not mandatory or significant, and the mechanisms that implement the invention or its features may have different names, formats, or protocols. Also, the particular division of functionality between the various system components described herein is merely exemplary, and not mandatory; functions performed by a single system component may instead be performed by multiple components, and functions performed by multiple components may instead performed by a single component.
  • Some portions of above description present the features of the present invention in terms of algorithms and symbolic representations of operations on information. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. These operations, while described functionally or logically, are understood to be implemented by computer programs. Furthermore, it has also proven convenient at times, to refer to these arrangements of operations as modules or by functional names, without loss of generality.
  • Unless specifically stated otherwise as apparent from the above discussion, it is appreciated that throughout the description, discussions utilizing terms such as “determining” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system memories or registers or other such information storage, transmission or display devices.
  • Certain aspects of the present invention include process steps and instructions described herein in the form of an algorithm. It should be noted that the process steps and instructions of the present invention could be embodied in software, firmware or hardware, and when embodied in software, could be downloaded to reside on and be operated from different platforms used by real time network operating systems.
  • The present invention also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored on a computer readable medium that can be accessed by the computer and run by a computer processor. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, application specific integrated circuits (ASICs), or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus. Furthermore, the computers referred to in the specification may include a single processor or may be architectures employing multiple processor designs for increased computing capability.
  • In addition, the present invention is not described with reference to any particular programming language. It is appreciated that a variety of programming languages may be used to implement the teachings of the present invention as described herein, and any references to specific languages are provided for enablement and best mode of the present invention.
  • The present invention is well suited to a wide variety of computer network systems over numerous topologies. Within this field, the configuration and management of large networks comprise storage devices and computers that are communicatively coupled to dissimilar computers and storage devices over a network, such as the Internet.
  • Finally, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter. Accordingly, the disclosure of the present invention is intended to be illustrative, but not limiting, of the scope of the invention.

Claims (18)

1. A computer-implemented method of presenting a graphical user interface displaying an electronic calendar having calendar entries associated with one or more calendar entities, the method comprising:
simultaneously displaying a first portion of a user interface corresponding to a first calendar entity and a second portion of the user interface corresponding to a second calendar entity, the second calendar entity different from the first calendar entity; and
displaying calendar entries associated with both the first and second calendar entities as spanning the first and second portions of the user interface.
2. The method of claim 1, wherein the first calendar entity represents a first person and the second calendar entity represents a second person, and wherein calendar entries that span the first and second portions of the user interface involve both the first person and the second person.
3. The method of claim 1, wherein the first calendar entity represents a first location and the second calendar entity represents a second location, and wherein calendar entries that span the first and second portions of the user interface are associated with both the first location and the second location.
4. The method of claim 3, further comprising:
displaying calendar entries associated with only the first calendar entity in the first portion of the user interface; and
displaying calendar entries associated with only the second calendar entity in the second portion of the user interface.
5. The method of claim 3, wherein the calendar entries are represented by enclosed shapes, wherein the enclosed shapes overlap the one or more timelines relevant to the calendar entries' associated one or more locations at times for the respective calendar entries.
6. The method of claim 5, wherein for calendar entries that are not associated with any particular calendar entity or are not associated with a calendar entity currently displayed, the enclosed shapes overlap the one or more timelines relevant to people participating in events represented by the calendar entries.
7. The method of claim 1, wherein the first calendar entity represents a first time zone and the second calendar entity represents a second time zone, and wherein calendar entries that span the first and second portions of the user interface are associated with both the first time zone and the second time zone.
8. The method of claim 7, further comprising:
displaying a timeline relevant to the first time zone in the first portion and a second timeline relevant to the second time zone in the second portion.
9-18. (canceled)
19. A computer-readable storage medium storing executable computer program instructions for presenting a graphical user interface displaying an electronic calendar having calendar entries associated with one or more calendar entities, the computer program instructions comprising instructions for:
simultaneously displaying a first portion of a user interface corresponding to a first calendar entity and a second portion of the user interface corresponding to a second calendar entity, the second calendar entity different from the first calendar entity; and
displaying calendar entries associated with both the first and second calendar entities as spanning the first and second portions of the user interface.
20. The computer-readable storage medium of claim 19, wherein the first calendar entity represents a first person and the second calendar entity represents a second person, and wherein calendar entries that span the first and second portions of the user interface involve both the first person and the second person.
21. The computer-readable storage medium of claim 19, wherein the first calendar entity represents a first location and the second calendar entity represents a second location, and wherein calendar entries that span the first and second portions of the user interface are associated with both the first location and the second location.
22. The computer-readable storage medium of claim 21, wherein the computer program instructions further comprise instructions for:
displaying calendar entries associated with only the first calendar entity in the first portion of the user interface; and
displaying calendar entries associated with only the second calendar entity in the second portion of the user interface.
23. The computer-readable storage medium of claim 21, wherein the calendar entries are represented by enclosed shapes, wherein the enclosed shapes overlap the one or more timelines relevant to the calendar entries' associated one or more locations at times for the respective calendar entries.
24. The computer-readable storage medium of claim 23, wherein for calendar entries that are not associated with any particular calendar entity or are not associated with a calendar entity currently displayed, the enclosed shapes overlap the one or more timelines relevant to people participating in events represented by the calendar entries.
25. The computer-readable storage medium of claim 19, wherein the first calendar entity represents a first time zone and the second calendar entity represents a second time zone, and wherein calendar entries that span the first and second portions of the user interface are associated with both the first time zone and the second time zone.
26. The computer-readable storage medium of claim 25, wherein the computer program instructions further comprise instructions for:
displaying a timeline relevant to the first time zone in the first portion and a second timeline relevant to the second time zone in the second portion.
27-37. (canceled)
US12/568,354 2009-01-06 2009-09-28 Calendaring Location-Based Events and Associated Travel Abandoned US20100174998A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US12/568,354 US20100174998A1 (en) 2009-01-06 2009-09-28 Calendaring Location-Based Events and Associated Travel
US12/624,682 US9886683B2 (en) 2009-01-06 2009-11-24 Calendaring location-based events and associated travel
PCT/US2010/020134 WO2010080762A1 (en) 2009-01-06 2010-01-05 Calendaring location-based events and associated travel
US15/842,757 US20180107981A1 (en) 2009-01-06 2017-12-14 Calendaring location-based events and associated travel

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14287509P 2009-01-06 2009-01-06
US12/568,354 US20100174998A1 (en) 2009-01-06 2009-09-28 Calendaring Location-Based Events and Associated Travel

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/624,682 Continuation US9886683B2 (en) 2009-01-06 2009-11-24 Calendaring location-based events and associated travel

Publications (1)

Publication Number Publication Date
US20100174998A1 true US20100174998A1 (en) 2010-07-08

Family

ID=42312513

Family Applications (4)

Application Number Title Priority Date Filing Date
US12/568,354 Abandoned US20100174998A1 (en) 2009-01-06 2009-09-28 Calendaring Location-Based Events and Associated Travel
US12/624,682 Active 2031-05-05 US9886683B2 (en) 2009-01-06 2009-11-24 Calendaring location-based events and associated travel
US12/652,905 Active 2030-01-26 US8095613B1 (en) 2009-01-06 2010-01-06 Electronic message prioritization
US15/842,757 Abandoned US20180107981A1 (en) 2009-01-06 2017-12-14 Calendaring location-based events and associated travel

Family Applications After (3)

Application Number Title Priority Date Filing Date
US12/624,682 Active 2031-05-05 US9886683B2 (en) 2009-01-06 2009-11-24 Calendaring location-based events and associated travel
US12/652,905 Active 2030-01-26 US8095613B1 (en) 2009-01-06 2010-01-06 Electronic message prioritization
US15/842,757 Abandoned US20180107981A1 (en) 2009-01-06 2017-12-14 Calendaring location-based events and associated travel

Country Status (2)

Country Link
US (4) US20100174998A1 (en)
WO (1) WO2010080762A1 (en)

Cited By (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110084804A1 (en) * 2009-10-12 2011-04-14 Qualcomm Incorporated Method and system for building annotation layers based on location aware user context information
US20110113148A1 (en) * 2009-11-09 2011-05-12 Nokia Corporation Method and apparatus for providing a meeting point and routes for participants to a proposed meeting
US8200520B2 (en) 2007-10-03 2012-06-12 International Business Machines Corporation Methods, systems, and apparatuses for automated confirmations of meetings
US20140207893A1 (en) * 2012-12-07 2014-07-24 Geofeedia, Inc. System and method for generating and managing geofeed-based alerts
US20140229449A1 (en) * 2013-02-11 2014-08-14 Abu Shaher Sanaullah Realtime identification of context mismatch
WO2013192588A3 (en) * 2012-06-22 2014-08-28 Google Inc. Presenting information for a current location or time
US20140278057A1 (en) * 2013-03-15 2014-09-18 John Michael Berns System and method for automatically calendaring events and associated reminders
WO2014186827A1 (en) * 2013-05-23 2014-11-27 Skedgo Pty Ltd Visualising multiple time zones
US9002636B2 (en) 2012-06-22 2015-04-07 Google Inc. Contextual traffic or transit alerts
US9077782B2 (en) 2013-03-07 2015-07-07 Geofeedia, Inc. System and method for creating and managing geofeeds
US20150294273A1 (en) * 2014-04-14 2015-10-15 The Boeing Company Time Zone Sensitive Calendar
US9258373B2 (en) 2013-03-15 2016-02-09 Geofeedia, Inc. System and method for generating three-dimensional geofeeds, orientation-based geofeeds, and geofeeds based on ambient conditions based on content provided by social media content providers
EP2993628A1 (en) * 2014-09-05 2016-03-09 Samsung Electronics Co., Ltd. Method of setting time zone based on location information and electronic device for supporting same
US9307353B2 (en) 2013-03-07 2016-04-05 Geofeedia, Inc. System and method for differentially processing a location input for content providers that use different location input formats
US9369533B2 (en) 2012-12-07 2016-06-14 Geofeedia, Inc. System and method for location monitoring based on organized geofeeds
US9436690B2 (en) 2013-03-15 2016-09-06 Geofeedia, Inc. System and method for predicting a geographic origin of content and accuracy of geotags related to content obtained from social media and other content providers
US9443090B2 (en) 2013-03-07 2016-09-13 Geofeedia, Inc. System and method for targeted messaging, workflow management, and digital rights management for geofeeds
US9485318B1 (en) 2015-07-29 2016-11-01 Geofeedia, Inc. System and method for identifying influential social media and providing location-based alerts
US9503516B2 (en) 2014-08-06 2016-11-22 Google Technology Holdings LLC Context-based contact notification
US9619489B2 (en) 2013-03-15 2017-04-11 Geofeedia, Inc. View of a physical space augmented with social media content originating from a geo-location of the physical space
US20180121882A1 (en) * 2015-05-21 2018-05-03 Blue Marlin Partners, Inc. Vacant time slot managing device, vacant time slot managing method, computer program, and storage medium
US10313357B2 (en) 2017-01-13 2019-06-04 Microsoft Technology Licensing, Llc Reduced user authentication input requirements
CN110110953A (en) * 2011-06-03 2019-08-09 苹果公司 Generate and handle the task items for representing pending task
US10387845B2 (en) * 2015-07-10 2019-08-20 Bank Of America Corporation System for facilitating appointment calendaring based on perceived customer requirements
US10387846B2 (en) * 2015-07-10 2019-08-20 Bank Of America Corporation System for affecting appointment calendaring on a mobile device based on dependencies
US10586216B2 (en) 2014-03-13 2020-03-10 Microsoft Technology Licensing, Llc User work schedule identification
US10650355B2 (en) * 2015-04-30 2020-05-12 Teletracking Technologies, Inc. Integrated system for producing procedural data change sets communicated to client devices
US20200251111A1 (en) * 2019-02-06 2020-08-06 Microstrategy Incorporated Interactive interface for analytics
US10748121B2 (en) 2016-06-30 2020-08-18 Microsoft Technology Licensing, Llc Enriching calendar events with additional relevant information
CN111666354A (en) * 2014-05-30 2020-09-15 苹果公司 Structured suggestions
US10962379B2 (en) * 2018-06-21 2021-03-30 Toyota Jidosha Kabushiki Kaisha Information providing device, information providing system, information providing method, and non-transitory computer-readable medium
US11016654B2 (en) 2015-06-06 2021-05-25 Apple Inc. Systems and methods for generating and providing intelligent time to leave reminders
CN115292562A (en) * 2022-10-09 2022-11-04 深圳市铱云云计算有限公司 Big data based qualified user screening method, device, medium and computing equipment
US11500655B2 (en) 2018-08-22 2022-11-15 Microstrategy Incorporated Inline and contextual delivery of database content
US11599857B2 (en) * 2017-01-31 2023-03-07 Microsoft Technology Licensing, Llc Categorized time designation on calendars
US11714955B2 (en) 2018-08-22 2023-08-01 Microstrategy Incorporated Dynamic document annotations
US11790107B1 (en) 2022-11-03 2023-10-17 Vignet Incorporated Data sharing platform for researchers conducting clinical trials
US11934961B2 (en) 2013-03-15 2024-03-19 Apple Inc. Mobile device with predictive routing engine

Families Citing this family (116)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7974892B2 (en) 2004-06-23 2011-07-05 Concur Technologies, Inc. System and method for expense management
US9286601B2 (en) * 2012-09-07 2016-03-15 Concur Technologies, Inc. Methods and systems for displaying schedule information
US9400959B2 (en) 2011-08-31 2016-07-26 Concur Technologies, Inc. Method and system for detecting duplicate travel path information
US8620750B2 (en) 2010-10-21 2013-12-31 Concur Technologies, Inc. Method and system for targeting messages to travelers
TWI649730B (en) * 2009-02-20 2019-02-01 日商尼康股份有限公司 Information acquisition system, portable terminal, server, and program for portable information equipment
US20110205850A1 (en) * 2010-02-23 2011-08-25 Srinivas Annambhotla System and method for managing calendar events using location information
US8798445B2 (en) * 2010-02-26 2014-08-05 Blackberry Limited Enhanced banner advertisements
US8448072B1 (en) * 2010-04-07 2013-05-21 Sprint Communications Company L.P. Interception of automatic status updates for a social networking system
US8316046B2 (en) 2010-04-07 2012-11-20 Apple Inc. Journaling on mobile devices
JP5204803B2 (en) * 2010-05-10 2013-06-05 株式会社エヌ・ティ・ティ・ドコモ Data processing apparatus, input support method, and program
US20110295859A1 (en) * 2010-05-27 2011-12-01 Alcatel-Lucent Usa Inc. Technique For Multi-Dimensionally Determining Strength Of An Item In A Weighted List Based On Tagging
US20120036437A1 (en) * 2010-08-04 2012-02-09 Alberth Jr William P Method, Devices, and System for Delayed Usage of Identified Content
US20120054642A1 (en) * 2010-08-27 2012-03-01 Peter Wernes Balsiger Sorted Inbox User Interface for Messaging Application
US8499048B2 (en) 2010-10-27 2013-07-30 Facebook, Inc. Indexing and organizing messages in a messaging system using social network information
US9203796B2 (en) 2010-11-12 2015-12-01 Facebook, Inc. Messaging system with multiple messaging channels
US20120131105A1 (en) * 2010-11-22 2012-05-24 Victor Andrew Rortvedt Method of obtaining and analyzing real-time opinions and analytical evaluations of distinct moments experienced by users of a social network
US8862554B2 (en) * 2010-11-23 2014-10-14 International Business Machines Corporation Methods and arrangements for prioritizing service restoration activities in the event of a catastrophic failure
US8312096B2 (en) 2010-12-08 2012-11-13 Google Inc. Priority inbox notifications and synchronization for mobile messaging application
US9292602B2 (en) * 2010-12-14 2016-03-22 Microsoft Technology Licensing, Llc Interactive search results page
EP2652681A1 (en) * 2010-12-16 2013-10-23 Sony Ericsson Mobile Communications AB A calendar application for communication devices
US8954517B2 (en) * 2010-12-29 2015-02-10 Avaya Inc. Method and apparatus for delegating a message
US9729694B2 (en) * 2010-12-29 2017-08-08 Avaya Inc. Method and apparatus for providing priority indicia associated with a plurality of messages
US9955014B2 (en) * 2010-12-29 2018-04-24 Avaya Inc. Method and system for delivering messages
US20120173993A1 (en) * 2010-12-30 2012-07-05 International Business Machines Corporation Point of interest preview for electronic mail
US8707199B2 (en) * 2011-02-18 2014-04-22 Blackberry Limited Quick text entry on a portable electronic device
US20120221563A1 (en) * 2011-02-24 2012-08-30 Microsoft Corporation Social Weight of Social Media Content
US9231900B2 (en) * 2011-03-31 2016-01-05 Loment, Inc. Priority of received messages communicated among end user communication devices
US8799786B2 (en) * 2011-04-11 2014-08-05 Microsoft Corporation Scheduled message cleanup
US9087324B2 (en) * 2011-07-12 2015-07-21 Microsoft Technology Licensing, Llc Message categorization
US9501213B2 (en) * 2011-09-16 2016-11-22 Skadool, Inc. Scheduling events on an electronic calendar utilizing fixed-positioned events and a draggable calendar grid
JP2013069017A (en) * 2011-09-21 2013-04-18 Nec Corp Schedule management device and schedule management method
WO2013049820A1 (en) * 2011-10-01 2013-04-04 Proxpro, Inc. Identifying future location and providing path crossing indications
US20130124973A1 (en) * 2011-11-04 2013-05-16 Gregory Alexander Piccionelli Automatic Diary for an Electronic Device
US9514447B2 (en) * 2011-12-27 2016-12-06 Dassault Systemes Americas Corp. Multi-horizon time wheel
US9152953B2 (en) * 2012-02-10 2015-10-06 International Business Machines Corporation Multi-tiered approach to E-mail prioritization
US9256862B2 (en) * 2012-02-10 2016-02-09 International Business Machines Corporation Multi-tiered approach to E-mail prioritization
US20130227462A1 (en) * 2012-02-24 2013-08-29 Htc Corporation Dual time zone view and weather application in electronic device
US20140012574A1 (en) * 2012-06-21 2014-01-09 Maluuba Inc. Interactive timeline for presenting and organizing tasks
US20140059141A1 (en) * 2012-08-23 2014-02-27 Linkedln Corporation Electronic messaging system utilizing social classification rules
US9716635B2 (en) * 2012-09-14 2017-07-25 Facebook, Inc. Content prioritization based on packet size
US11468243B2 (en) 2012-09-24 2022-10-11 Amazon Technologies, Inc. Identity-based display of text
US10339503B1 (en) * 2012-10-18 2019-07-02 Amazon Technologies, Inc. Variable access to time block information
KR20140091125A (en) * 2013-01-07 2014-07-21 삼성전자주식회사 Method for transmitting for contents dual tone multi frequency an electronic device thereof
JP2016518735A (en) * 2013-03-14 2016-06-23 テルコム・ベンチャーズ・エルエルシー Authentication of user identification using location
US20140278680A1 (en) * 2013-03-14 2014-09-18 Yakov Z. Mermelstein Method for alerting people to events
US9626365B2 (en) 2013-03-15 2017-04-18 Ambient Consulting, LLC Content clustering system and method
US9460057B2 (en) 2013-03-15 2016-10-04 Filmstrip, Inc. Theme-based media content generation system and method
US10365797B2 (en) 2013-03-15 2019-07-30 Ambient Consulting, LLC Group membership content presentation and augmentation system and method
US8913730B2 (en) 2013-03-15 2014-12-16 Samsung Electronics Co., Ltd. Communication system with message prioritization mechanism and method of operation thereof
US9886173B2 (en) 2013-03-15 2018-02-06 Ambient Consulting, LLC Content presentation and augmentation system and method
US9588988B2 (en) 2013-03-15 2017-03-07 Google Inc. Visual indicators for temporal context on maps
US20140297758A1 (en) * 2013-03-26 2014-10-02 Hewlett-Packard Development Company, L.P. Event notifications based on learned traveling times between locations
CN108132742B (en) * 2013-05-06 2022-08-09 北京三星通信技术研究有限公司 Terminal equipment and display method of associated window thereof
CN103389906A (en) * 2013-07-23 2013-11-13 广东欧珀移动通信有限公司 Information message switching display method and mobile terminal
US9467411B2 (en) 2013-07-31 2016-10-11 International Business Machines Corporation Identifying content in an incoming message on a social network
US20150046210A1 (en) * 2013-08-07 2015-02-12 Kavaanu, Inc. Method and system for intention object generation
US9348897B2 (en) 2013-08-07 2016-05-24 Google Inc. Method and system for providing scheduling suggestions
US10088973B2 (en) * 2013-11-08 2018-10-02 Google Llc Event scheduling presentation in a graphical user interface environment
EP2887276A1 (en) * 2013-12-20 2015-06-24 Telefonica Digital España, S.L.U. Method for predicting reactiveness of users of mobile devices for mobile messaging
US20150200978A1 (en) * 2014-01-13 2015-07-16 Cisco Technology, Inc. Meeting Conflict Indicator
US10089310B2 (en) * 2014-01-14 2018-10-02 Microsoft Technology Licensing, Llc Complementary and shadow calendars
US9438649B2 (en) * 2014-03-20 2016-09-06 Microsoft Technology Licensing, Llc Warped presentation of events in calendar views
US9410815B1 (en) 2014-03-26 2016-08-09 Google Inc. System and method for displaying dynamic text content with a digital map
US20150309675A1 (en) * 2014-04-29 2015-10-29 Eduard Blinov Timespiral calendar
US11120408B2 (en) 2014-05-06 2021-09-14 Microsoft Technology Licensing, Llc Scheduling conflict notification
DE102014209112A1 (en) 2014-05-14 2015-11-19 BSH Hausgeräte GmbH Valve device for a household appliance, household appliance and corresponding method
US10579212B2 (en) * 2014-05-30 2020-03-03 Apple Inc. Structured suggestions
US20150381533A1 (en) * 2014-06-29 2015-12-31 Avaya Inc. System and Method for Email Management Through Detection and Analysis of Dynamically Variable Behavior and Activity Patterns
US9922350B2 (en) * 2014-07-16 2018-03-20 Software Ag Dynamically adaptable real-time customer experience manager and/or associated method
US10380687B2 (en) 2014-08-12 2019-08-13 Software Ag Trade surveillance and monitoring systems and/or methods
US9721022B2 (en) * 2014-08-28 2017-08-01 International Business Machines Corporation Searching and displaying related content to a post in an activity stream
US9389094B2 (en) * 2014-09-05 2016-07-12 Paypal, Inc. Methods and systems for determining routing
US10572103B2 (en) 2014-09-30 2020-02-25 Apple Inc. Timeline view of recently opened documents
US9449218B2 (en) 2014-10-16 2016-09-20 Software Ag Usa, Inc. Large venue surveillance and reaction systems and methods using dynamically analyzed emotional input
US9282073B1 (en) * 2014-12-16 2016-03-08 Knowmail S.A.L Ltd E-mail enhancement based on user-behavior
US10681155B1 (en) * 2015-01-13 2020-06-09 Google Llc Presenting user activity timeline in a colloquial style
US10120381B2 (en) * 2015-03-13 2018-11-06 Nissan North America, Inc. Identifying significant locations based on vehicle probe data
USD764512S1 (en) * 2015-04-16 2016-08-23 Nasdaq, Inc. Display screen or portion thereof with animated graphical user interface
US10257149B2 (en) 2015-05-22 2019-04-09 International Business Machines Corporation Prioritizing messages in an activity stream with an actionable item or event for the user to respond
US20160358128A1 (en) 2015-06-07 2016-12-08 Apple Inc. Travel updates for calendar events
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US20160363911A1 (en) * 2015-06-12 2016-12-15 Blackberry Limited Calendar event time zone preview
US20170012923A1 (en) * 2015-07-08 2017-01-12 International Business Machines Corporation Preventing a user from missing unread documents
US10430070B2 (en) * 2015-07-13 2019-10-01 Sap Se Providing defined icons on a graphical user interface of a navigation system
US9929997B2 (en) 2015-07-31 2018-03-27 Wipro Limited Method for dynamically prioritizing electronic messages in an electronic device
US10445425B2 (en) 2015-09-15 2019-10-15 Apple Inc. Emoji and canned responses
US10320861B2 (en) 2015-09-30 2019-06-11 Google Llc System and method for automatic meeting note creation and sharing using a user's context and physical proximity
USD857721S1 (en) 2016-01-12 2019-08-27 Google Llc Display screen with graphical user interface for presenting user activity timeline in a colloquial style
US9992628B2 (en) 2016-04-21 2018-06-05 Microsoft Technology Licensing, Llc Map downloading based on user's future location
US10354313B2 (en) 2016-04-26 2019-07-16 Microsoft Technology Licensing, Llc Emphasizing communication based on past interaction related to promoted items
US20170316385A1 (en) * 2016-04-29 2017-11-02 Microsoft Technology Licensing, Llc Contextually-aware insights for calendar events
US10574605B2 (en) 2016-05-18 2020-02-25 International Business Machines Corporation Validating the tone of an electronic communication based on recipients
US10574607B2 (en) 2016-05-18 2020-02-25 International Business Machines Corporation Validating an attachment of an electronic communication based on recipients
US11201963B2 (en) * 2016-07-06 2021-12-14 Ehealth, Inc. Prioritization of electronic communications
US10313292B2 (en) * 2016-07-21 2019-06-04 Facebook, Inc. Methods and systems for connecting messaging accounts
US10257126B2 (en) * 2016-08-04 2019-04-09 International Business Machines Corporation Communication fingerprint for identifying and tailoring customized messaging
US10007661B2 (en) * 2016-09-26 2018-06-26 International Business Machines Corporation Automated receiver message sentiment analysis, classification and prioritization
US10642936B2 (en) * 2016-09-26 2020-05-05 International Business Machines Corporation Automated message sentiment analysis and aggregation
US11115359B2 (en) * 2016-11-03 2021-09-07 Samsung Electronics Co., Ltd. Method and apparatus for importance filtering a plurality of messages
US10749839B2 (en) 2017-04-20 2020-08-18 Microsoft Technology Licensing, Llc Identification of a significant communication from a revived contact
US10721202B2 (en) * 2017-05-29 2020-07-21 International Business Machines Corporation Broadcast response prioritization and engagements
US11699039B2 (en) * 2017-06-28 2023-07-11 Microsoft Technology Licensing, Llc Virtual assistant providing enhanced communication session services
US10585991B2 (en) 2017-06-29 2020-03-10 Microsoft Technology Licensing, Llc Virtual assistant for generating personalized responses within a communication session
US11620566B1 (en) 2017-08-04 2023-04-04 Grammarly, Inc. Artificial intelligence communication assistance for improving the effectiveness of communications using reaction data
US10607193B1 (en) 2018-08-01 2020-03-31 Whenplace, Inc. Event monitoring system
US11144887B2 (en) * 2018-08-01 2021-10-12 Whenplace, Inc. Dynamic event naming
US11645628B2 (en) 2019-05-16 2023-05-09 Microsoft Technology Licensing, Llc Translation of time between calendar systems
US11061525B2 (en) 2019-05-16 2021-07-13 Microsoft Technology Licensing, Llc Digital map calendar user interface
US11120407B2 (en) 2019-05-16 2021-09-14 Microsoft Technology Licensing, Llc Real time collaboration in calendar
US11151104B2 (en) 2019-05-16 2021-10-19 Microsoft Technology Licensing, Llc Time systems as data
US11297466B1 (en) 2020-04-24 2022-04-05 Allstate Insurance Company Systems for predicting and classifying location data based on machine learning
USD971931S1 (en) * 2020-06-19 2022-12-06 Apple Inc. Display screen or portion thereof with graphical user interface
US11200306B1 (en) 2021-02-25 2021-12-14 Telcom Ventures, Llc Methods, devices, and systems for authenticating user identity for location-based deliveries
US11681424B2 (en) 2021-05-14 2023-06-20 Microsoft Technology Licensing, Llc Map calendar graphical user interface with content-variable view levels
US11514405B1 (en) 2021-05-14 2022-11-29 Microsoft Technology Licensing, Llc Map calendar graphical user interface with dynamic time mold functionality
US20220398546A1 (en) * 2021-06-11 2022-12-15 Reclaim Inc. System and methods for managing schedules and calendars

Citations (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5345551A (en) * 1992-11-09 1994-09-06 Brigham Young University Method and system for synchronization of simultaneous displays of related data sources
US20020038234A1 (en) * 1996-02-29 2002-03-28 Xiang Fu System and methods for scheduling and tracking events across multiple time zones
US6366922B1 (en) * 1998-09-30 2002-04-02 I2 Technologies Us, Inc. Multi-dimensional data management system
US6370554B1 (en) * 1997-12-15 2002-04-09 Hewlett-Packard Company Calendar-viewing system providing quick-access user activity information
US20030140088A1 (en) * 2002-01-24 2003-07-24 Robinson Scott H. Context-based information processing
US20030193481A1 (en) * 2002-04-12 2003-10-16 Alexander Sokolsky Touch-sensitive input overlay for graphical user interface
US6816863B2 (en) * 2002-05-09 2004-11-09 International Business Machines Corporation Method, system, and computer product for providing a distribution list
US20050057584A1 (en) * 2001-11-27 2005-03-17 International Business Machines Corporation Calendar bar interface for electronic mail interaction
US20050261011A1 (en) * 2004-05-03 2005-11-24 Research In Motion Limited User interface for integrating applications on a mobile communication device
US20050267944A1 (en) * 2004-06-01 2005-12-01 Microsoft Corporation Email manager
US6985926B1 (en) * 2001-08-29 2006-01-10 I-Behavior, Inc. Method and system for matching and consolidating addresses in a database
US20060068812A1 (en) * 2004-09-27 2006-03-30 Carro Fernando I Scheduling tasks dynamically depending on the location of a mobile user
US20060121912A1 (en) * 2002-11-07 2006-06-08 Henrik Borjesson Device and method for generating an alert signal
US7069228B1 (en) * 1998-04-30 2006-06-27 Rose James W Apparatus and method for an internet based computer reservation booking system
US20060173957A1 (en) * 2005-01-28 2006-08-03 Robinson Eric M Apparatus and method for message-centric analysis and multi-aspect viewing using social networks
US20060184617A1 (en) * 2005-02-11 2006-08-17 Nicholas Frank C Method and system for the creating, managing, and delivery of feed formatted content
US20060195533A1 (en) * 2005-02-28 2006-08-31 Fuji Xerox Co., Ltd. Information processing system, storage medium and information processing method
US20060222146A1 (en) * 2005-03-30 2006-10-05 Martin Spahn Solids detector for shooting X-ray images
US20060235873A1 (en) * 2003-10-22 2006-10-19 Jookster Networks, Inc. Social network-based internet search engine
US20060294134A1 (en) * 2005-06-28 2006-12-28 Yahoo! Inc. Trust propagation through both explicit and implicit social networks
US20060293943A1 (en) * 2005-06-28 2006-12-28 Microsoft Corporation Facilitating automated meeting scheduling
US20070005654A1 (en) * 2005-05-20 2007-01-04 Avichai Schachar Systems and methods for analyzing relationships between entities
US20070011236A1 (en) * 2004-09-13 2007-01-11 Relgo Networks, Inc. Relationship definition and processing system and method
US7249123B2 (en) * 2002-10-31 2007-07-24 International Business Machines Corporation System and method for building social networks based on activity around shared virtual objects
US20070271272A1 (en) * 2004-09-15 2007-11-22 Mcguire Heather A Social network analysis
US20080005249A1 (en) * 2006-07-03 2008-01-03 Hart Matt E Method and apparatus for determining the importance of email messages
US20080059576A1 (en) * 2006-08-31 2008-03-06 Microsoft Corporation Recommending contacts in a social network
US20080104005A1 (en) * 2005-04-04 2008-05-01 Spadac Inc. Method and system for spatial behavior modification based on geospatial modeling
US20080109751A1 (en) * 2003-12-31 2008-05-08 Alias Systems Corp. Layer editor system for a pen-based computer
US20080115088A1 (en) * 2006-11-14 2008-05-15 Microsoft Corporation Displaying overlaid calendars
US20080134088A1 (en) * 2006-12-05 2008-06-05 Palm, Inc. Device for saving results of location based searches
US20080141145A1 (en) * 2006-11-22 2008-06-12 Daniel Klausmeier Hierarchical Events
US20080167938A1 (en) * 2006-12-29 2008-07-10 Aol Llc Reserving a time block in a calendar application to account for a travel time between geographic locations of appointments
US20080228947A1 (en) * 2004-09-15 2008-09-18 Markus Michael J Collections of linked databases
US7428579B2 (en) * 2004-05-27 2008-09-23 Yahoo! Inc. Method and system for segmentation of a message inbox
US20080301567A1 (en) * 2007-06-01 2008-12-04 Research In Motion Limited Proximity-dependent events
US20090006994A1 (en) * 2007-06-28 2009-01-01 Scott Forstall Integrated calendar and map applications in a mobile device
US20090037822A1 (en) * 2007-07-31 2009-02-05 Qurio Holdings, Inc. Context-aware shared content representations
US20090055355A1 (en) * 2007-03-27 2009-02-26 Brunner Josie C Systems, methods, and apparatus for seamless integration for user, contextual, and social awareness in search results through layer approach
US20090094021A1 (en) * 2007-10-05 2009-04-09 Fujitsu Limited Determining A Document Specificity
US20090112525A1 (en) * 2007-10-26 2009-04-30 Alon Adani System and Method for Evaluating the Effects of Natural Events on Structures and Individuals
US20090171937A1 (en) * 2007-12-28 2009-07-02 Li Chen System and Method for Solving Ambiguous Meanings of Unknown Words Used in Instant Messaging
US7565403B2 (en) * 2000-03-16 2009-07-21 Microsoft Corporation Use of a bulk-email filter within a system for classifying messages for urgency or importance
US20090187537A1 (en) * 2008-01-23 2009-07-23 Semingo Ltd. Social network searching with breadcrumbs
US20090281718A1 (en) * 2008-05-09 2009-11-12 Christophe Gibran Predictive downloading of map data
US7634528B2 (en) * 2000-03-16 2009-12-15 Microsoft Corporation Harnessing information about the timing of a user's client-server interactions to enhance messaging and collaboration services
US7636733B1 (en) * 2003-10-03 2009-12-22 Adobe Systems Incorporated Time-based image management
US20100070894A1 (en) * 2008-09-16 2010-03-18 International Business Machines Corporation Federated calendar entry presence indicator
US20100070297A1 (en) * 2008-09-15 2010-03-18 ZocDoc, Inc. Data synchronization for booking of healthcare appointments across practice groups
US20100074560A1 (en) * 2005-01-07 2010-03-25 Wagner Peter K Image management tool with calendar interface
US20100082624A1 (en) * 2008-09-30 2010-04-01 Apple Inc. System and method for categorizing digital media according to calendar events
US20100131443A1 (en) * 2008-11-25 2010-05-27 Google Inc. Providing Digital Content Based On Expected User Behavior
US20100162105A1 (en) * 2008-12-19 2010-06-24 Palm, Inc. Access and management of cross-platform calendars
US7885948B2 (en) * 2007-06-28 2011-02-08 Microsoft Corporation Automatically managing incoming communications between sender and recipient, analyzing factors, selectively applying observed behavior, performing designated action
US7890596B2 (en) * 2008-06-18 2011-02-15 International Business Machines Corporation Triage of electronic mail
US20110137929A1 (en) * 2009-12-04 2011-06-09 Sap Ag Computer implemented method for integrating services in a calendar application via web services
US8375034B2 (en) * 2010-01-27 2013-02-12 Google Inc. Automatically schedule and re-schedule meetings using reschedule factors for conflicting calendar events

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998010307A1 (en) * 1996-09-09 1998-03-12 Dennis Jay Dupray Location of a mobile station
US6064975A (en) * 1997-10-22 2000-05-16 Ericsson Inc. Apparatus and method for highlighting holidays of a specified location in a calendar software application
US6732080B1 (en) * 1999-09-15 2004-05-04 Nokia Corporation System and method of providing personal calendar services
US6920328B2 (en) * 2001-08-30 2005-07-19 Hewlett-Packard Development Company, L.P. Family calendar notification and tracking
US7590553B2 (en) * 2003-10-27 2009-09-15 Microsoft Corporation Integrated spatial view of time, location, and event schedule information
NO323521B1 (en) * 2004-09-10 2007-06-04 Telenor Asa Location photo commentary on camera phones
US7480567B2 (en) * 2004-09-24 2009-01-20 Nokia Corporation Displaying a map having a close known location
US7519564B2 (en) * 2004-11-16 2009-04-14 Microsoft Corporation Building and using predictive models of current and future surprises
US20060112146A1 (en) 2004-11-22 2006-05-25 Nec Laboratories America, Inc. Systems and methods for data analysis and/or knowledge management
US7636783B2 (en) * 2004-12-06 2009-12-22 Microsoft Corporation Trial-before-purchase subscription game infrastructure for peer-peer networks
US20060236269A1 (en) * 2005-04-18 2006-10-19 Amir Borna Method and an apparatus for displaying calendar information to a user
US20090102712A1 (en) * 2005-04-26 2009-04-23 Guy Heffez Method and system for monitoring electronic purchases and cash-withdrawals
US20070214180A1 (en) 2005-11-14 2007-09-13 Crawford C S L Social network application for processing image or video data from wireless devices of users and methods of operation
US20110093340A1 (en) * 2006-01-30 2011-04-21 Hoozware, Inc. System for providing a service to venues where people perform transactions
US8750892B2 (en) * 2006-06-21 2014-06-10 Scenera Mobile Technologies, Llc System and method for naming a location based on user-specific information
JP2008042887A (en) * 2006-07-14 2008-02-21 Ricoh Co Ltd Imaging device, imaging system, image data recording method, and program
US8407213B2 (en) * 2006-08-31 2013-03-26 Ektimisi Semiotics Holdings, Llc System and method for identifying a location of interest to be named by a user
US8006190B2 (en) * 2006-10-31 2011-08-23 Yahoo! Inc. Social namespace addressing for non-unique identifiers
US8594702B2 (en) * 2006-11-06 2013-11-26 Yahoo! Inc. Context server for associating information based on context
US7673248B2 (en) * 2006-11-06 2010-03-02 International Business Machines Corporation Combining calendar entries with map views
US7499797B2 (en) * 2006-12-14 2009-03-03 Motorola, Inc. Method and database for navigating a person from a starting point to a destination
US20090037813A1 (en) 2007-07-31 2009-02-05 Palo Alto Research Center Incorporated Space-constrained marking menus for mobile devices
US7984006B2 (en) * 2007-09-18 2011-07-19 Palo Alto Research Center Incorporated Learning a user's activity preferences from GPS traces and known nearby venues
US20090327307A1 (en) * 2008-06-26 2009-12-31 Fang-Cheng Sun Personal routine system and method thereof for automatic tracking, automatic recording, and searching of a personal routine
US20100050101A1 (en) * 2008-08-21 2010-02-25 Palm, Inc. Converting Information Objects
US8108778B2 (en) * 2008-09-30 2012-01-31 Yahoo! Inc. System and method for context enhanced mapping within a user interface
US20100305931A1 (en) * 2009-05-28 2010-12-02 Fordham Bradley S Wireless network design simulation package
US8694540B1 (en) * 2011-09-01 2014-04-08 Google Inc. Predictive analytical model selection

Patent Citations (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5345551A (en) * 1992-11-09 1994-09-06 Brigham Young University Method and system for synchronization of simultaneous displays of related data sources
US20020038234A1 (en) * 1996-02-29 2002-03-28 Xiang Fu System and methods for scheduling and tracking events across multiple time zones
US6370554B1 (en) * 1997-12-15 2002-04-09 Hewlett-Packard Company Calendar-viewing system providing quick-access user activity information
US7069228B1 (en) * 1998-04-30 2006-06-27 Rose James W Apparatus and method for an internet based computer reservation booking system
US6366922B1 (en) * 1998-09-30 2002-04-02 I2 Technologies Us, Inc. Multi-dimensional data management system
US7565403B2 (en) * 2000-03-16 2009-07-21 Microsoft Corporation Use of a bulk-email filter within a system for classifying messages for urgency or importance
US7634528B2 (en) * 2000-03-16 2009-12-15 Microsoft Corporation Harnessing information about the timing of a user's client-server interactions to enhance messaging and collaboration services
US6985926B1 (en) * 2001-08-29 2006-01-10 I-Behavior, Inc. Method and system for matching and consolidating addresses in a database
US20050057584A1 (en) * 2001-11-27 2005-03-17 International Business Machines Corporation Calendar bar interface for electronic mail interaction
US20030140088A1 (en) * 2002-01-24 2003-07-24 Robinson Scott H. Context-based information processing
US20030193481A1 (en) * 2002-04-12 2003-10-16 Alexander Sokolsky Touch-sensitive input overlay for graphical user interface
US6816863B2 (en) * 2002-05-09 2004-11-09 International Business Machines Corporation Method, system, and computer product for providing a distribution list
US7249123B2 (en) * 2002-10-31 2007-07-24 International Business Machines Corporation System and method for building social networks based on activity around shared virtual objects
US20060121912A1 (en) * 2002-11-07 2006-06-08 Henrik Borjesson Device and method for generating an alert signal
US7636733B1 (en) * 2003-10-03 2009-12-22 Adobe Systems Incorporated Time-based image management
US20060235873A1 (en) * 2003-10-22 2006-10-19 Jookster Networks, Inc. Social network-based internet search engine
US20080109751A1 (en) * 2003-12-31 2008-05-08 Alias Systems Corp. Layer editor system for a pen-based computer
US20050261011A1 (en) * 2004-05-03 2005-11-24 Research In Motion Limited User interface for integrating applications on a mobile communication device
US7428579B2 (en) * 2004-05-27 2008-09-23 Yahoo! Inc. Method and system for segmentation of a message inbox
US20050267944A1 (en) * 2004-06-01 2005-12-01 Microsoft Corporation Email manager
US20070011236A1 (en) * 2004-09-13 2007-01-11 Relgo Networks, Inc. Relationship definition and processing system and method
US20080228947A1 (en) * 2004-09-15 2008-09-18 Markus Michael J Collections of linked databases
US20070271272A1 (en) * 2004-09-15 2007-11-22 Mcguire Heather A Social network analysis
US20060068812A1 (en) * 2004-09-27 2006-03-30 Carro Fernando I Scheduling tasks dynamically depending on the location of a mobile user
US20100074560A1 (en) * 2005-01-07 2010-03-25 Wagner Peter K Image management tool with calendar interface
US20060173957A1 (en) * 2005-01-28 2006-08-03 Robinson Eric M Apparatus and method for message-centric analysis and multi-aspect viewing using social networks
US20060184617A1 (en) * 2005-02-11 2006-08-17 Nicholas Frank C Method and system for the creating, managing, and delivery of feed formatted content
US20060195533A1 (en) * 2005-02-28 2006-08-31 Fuji Xerox Co., Ltd. Information processing system, storage medium and information processing method
US20060222146A1 (en) * 2005-03-30 2006-10-05 Martin Spahn Solids detector for shooting X-ray images
US20080104005A1 (en) * 2005-04-04 2008-05-01 Spadac Inc. Method and system for spatial behavior modification based on geospatial modeling
US20070005654A1 (en) * 2005-05-20 2007-01-04 Avichai Schachar Systems and methods for analyzing relationships between entities
US20060294134A1 (en) * 2005-06-28 2006-12-28 Yahoo! Inc. Trust propagation through both explicit and implicit social networks
US20060293943A1 (en) * 2005-06-28 2006-12-28 Microsoft Corporation Facilitating automated meeting scheduling
US20080005249A1 (en) * 2006-07-03 2008-01-03 Hart Matt E Method and apparatus for determining the importance of email messages
US20080059576A1 (en) * 2006-08-31 2008-03-06 Microsoft Corporation Recommending contacts in a social network
US20080115088A1 (en) * 2006-11-14 2008-05-15 Microsoft Corporation Displaying overlaid calendars
US20080141145A1 (en) * 2006-11-22 2008-06-12 Daniel Klausmeier Hierarchical Events
US20080134088A1 (en) * 2006-12-05 2008-06-05 Palm, Inc. Device for saving results of location based searches
US20080167938A1 (en) * 2006-12-29 2008-07-10 Aol Llc Reserving a time block in a calendar application to account for a travel time between geographic locations of appointments
US20090055355A1 (en) * 2007-03-27 2009-02-26 Brunner Josie C Systems, methods, and apparatus for seamless integration for user, contextual, and social awareness in search results through layer approach
US20080301567A1 (en) * 2007-06-01 2008-12-04 Research In Motion Limited Proximity-dependent events
US20090006994A1 (en) * 2007-06-28 2009-01-01 Scott Forstall Integrated calendar and map applications in a mobile device
US7885948B2 (en) * 2007-06-28 2011-02-08 Microsoft Corporation Automatically managing incoming communications between sender and recipient, analyzing factors, selectively applying observed behavior, performing designated action
US20090037822A1 (en) * 2007-07-31 2009-02-05 Qurio Holdings, Inc. Context-aware shared content representations
US20090094021A1 (en) * 2007-10-05 2009-04-09 Fujitsu Limited Determining A Document Specificity
US20090112525A1 (en) * 2007-10-26 2009-04-30 Alon Adani System and Method for Evaluating the Effects of Natural Events on Structures and Individuals
US20090171937A1 (en) * 2007-12-28 2009-07-02 Li Chen System and Method for Solving Ambiguous Meanings of Unknown Words Used in Instant Messaging
US20090187537A1 (en) * 2008-01-23 2009-07-23 Semingo Ltd. Social network searching with breadcrumbs
US20090281718A1 (en) * 2008-05-09 2009-11-12 Christophe Gibran Predictive downloading of map data
US7890596B2 (en) * 2008-06-18 2011-02-15 International Business Machines Corporation Triage of electronic mail
US20100070297A1 (en) * 2008-09-15 2010-03-18 ZocDoc, Inc. Data synchronization for booking of healthcare appointments across practice groups
US20100070894A1 (en) * 2008-09-16 2010-03-18 International Business Machines Corporation Federated calendar entry presence indicator
US20100082624A1 (en) * 2008-09-30 2010-04-01 Apple Inc. System and method for categorizing digital media according to calendar events
US20100131443A1 (en) * 2008-11-25 2010-05-27 Google Inc. Providing Digital Content Based On Expected User Behavior
US20100162105A1 (en) * 2008-12-19 2010-06-24 Palm, Inc. Access and management of cross-platform calendars
US20110137929A1 (en) * 2009-12-04 2011-06-09 Sap Ag Computer implemented method for integrating services in a calendar application via web services
US8375034B2 (en) * 2010-01-27 2013-02-12 Google Inc. Automatically schedule and re-schedule meetings using reschedule factors for conflicting calendar events

Cited By (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8200520B2 (en) 2007-10-03 2012-06-12 International Business Machines Corporation Methods, systems, and apparatuses for automated confirmations of meetings
US9154560B2 (en) * 2009-10-12 2015-10-06 Qualcomm Incorporated Method and system for building annotation layers based on location aware user context information
US20110084804A1 (en) * 2009-10-12 2011-04-14 Qualcomm Incorporated Method and system for building annotation layers based on location aware user context information
US20110113148A1 (en) * 2009-11-09 2011-05-12 Nokia Corporation Method and apparatus for providing a meeting point and routes for participants to a proposed meeting
CN110110953A (en) * 2011-06-03 2019-08-09 苹果公司 Generate and handle the task items for representing pending task
US11765543B2 (en) 2012-06-22 2023-09-19 Google Llc Presenting information for a current location or time
US9587947B2 (en) 2012-06-22 2017-03-07 Google Inc. Presenting information for a current location or time
US8831879B2 (en) 2012-06-22 2014-09-09 Google Inc. Presenting information for a current location or time
US10996057B2 (en) 2012-06-22 2021-05-04 Google Llc Presenting information for a current location or time
US9002636B2 (en) 2012-06-22 2015-04-07 Google Inc. Contextual traffic or transit alerts
US10168155B2 (en) 2012-06-22 2019-01-01 Google Llc Presenting information for a current location or time
KR101569470B1 (en) 2012-06-22 2015-11-17 구글 인코포레이티드 Presenting information for a current location or time
US9146114B2 (en) 2012-06-22 2015-09-29 Google Inc. Presenting information for a current location or time
WO2013192588A3 (en) * 2012-06-22 2014-08-28 Google Inc. Presenting information for a current location or time
US9369533B2 (en) 2012-12-07 2016-06-14 Geofeedia, Inc. System and method for location monitoring based on organized geofeeds
US20140207893A1 (en) * 2012-12-07 2014-07-24 Geofeedia, Inc. System and method for generating and managing geofeed-based alerts
US9077675B2 (en) * 2012-12-07 2015-07-07 Geofeedia, Inc. System and method for generating and managing geofeed-based alerts
US20140229449A1 (en) * 2013-02-11 2014-08-14 Abu Shaher Sanaullah Realtime identification of context mismatch
US9077782B2 (en) 2013-03-07 2015-07-07 Geofeedia, Inc. System and method for creating and managing geofeeds
US9307353B2 (en) 2013-03-07 2016-04-05 Geofeedia, Inc. System and method for differentially processing a location input for content providers that use different location input formats
US10530783B2 (en) 2013-03-07 2020-01-07 Tai Technologies, Inc. System and method for targeted messaging, workflow management, and digital rights management for geofeeds
US9906576B2 (en) 2013-03-07 2018-02-27 Tai Technologies, Inc. System and method for creating and managing geofeeds
US9443090B2 (en) 2013-03-07 2016-09-13 Geofeedia, Inc. System and method for targeted messaging, workflow management, and digital rights management for geofeeds
US9479557B2 (en) 2013-03-07 2016-10-25 Geofeedia, Inc. System and method for creating and managing geofeeds
US10044732B2 (en) 2013-03-07 2018-08-07 Tai Technologies, Inc. System and method for targeted messaging, workflow management, and digital rights management for geofeeds
US9497275B2 (en) 2013-03-15 2016-11-15 Geofeedia, Inc. System and method for generating three-dimensional geofeeds, orientation-based geofeeds, and geofeeds based on ambient conditions based on content provided by social media content providers
US11934961B2 (en) 2013-03-15 2024-03-19 Apple Inc. Mobile device with predictive routing engine
US20140278057A1 (en) * 2013-03-15 2014-09-18 John Michael Berns System and method for automatically calendaring events and associated reminders
US9619489B2 (en) 2013-03-15 2017-04-11 Geofeedia, Inc. View of a physical space augmented with social media content originating from a geo-location of the physical space
US9258373B2 (en) 2013-03-15 2016-02-09 Geofeedia, Inc. System and method for generating three-dimensional geofeeds, orientation-based geofeeds, and geofeeds based on ambient conditions based on content provided by social media content providers
US9805060B2 (en) 2013-03-15 2017-10-31 Tai Technologies, Inc. System and method for predicting a geographic origin of content and accuracy of geotags related to content obtained from social media and other content providers
US9838485B2 (en) 2013-03-15 2017-12-05 Tai Technologies, Inc. System and method for generating three-dimensional geofeeds, orientation-based geofeeds, and geofeeds based on ambient conditions based on content provided by social media content providers
US9436690B2 (en) 2013-03-15 2016-09-06 Geofeedia, Inc. System and method for predicting a geographic origin of content and accuracy of geotags related to content obtained from social media and other content providers
WO2014186827A1 (en) * 2013-05-23 2014-11-27 Skedgo Pty Ltd Visualising multiple time zones
US9760869B2 (en) 2013-05-23 2017-09-12 Skedgo Pty Ltd Visualising multiple time zones
US10586216B2 (en) 2014-03-13 2020-03-10 Microsoft Technology Licensing, Llc User work schedule identification
US20150294273A1 (en) * 2014-04-14 2015-10-15 The Boeing Company Time Zone Sensitive Calendar
US10096002B2 (en) * 2014-04-14 2018-10-09 The Boeing Company Time zone sensitive calendar
EP2933765A1 (en) * 2014-04-14 2015-10-21 The Boeing Company Time zone sensitive calendar
CN111666354A (en) * 2014-05-30 2020-09-15 苹果公司 Structured suggestions
US9503516B2 (en) 2014-08-06 2016-11-22 Google Technology Holdings LLC Context-based contact notification
EP2993628A1 (en) * 2014-09-05 2016-03-09 Samsung Electronics Co., Ltd. Method of setting time zone based on location information and electronic device for supporting same
US10650355B2 (en) * 2015-04-30 2020-05-12 Teletracking Technologies, Inc. Integrated system for producing procedural data change sets communicated to client devices
US20180121882A1 (en) * 2015-05-21 2018-05-03 Blue Marlin Partners, Inc. Vacant time slot managing device, vacant time slot managing method, computer program, and storage medium
US11087288B2 (en) * 2015-05-21 2021-08-10 Blue Marlin Partners, Inc. Vacant time slot managing device, vacant time slot managing method, computer program, and storage medium
US11016654B2 (en) 2015-06-06 2021-05-25 Apple Inc. Systems and methods for generating and providing intelligent time to leave reminders
US11487421B2 (en) 2015-06-06 2022-11-01 Apple Inc. Systems and methods for generating and providing intelligent time to leave reminders
US11880561B2 (en) 2015-06-06 2024-01-23 Apple Inc. Systems and methods for generating and providing intelligent time to leave reminders
US10387845B2 (en) * 2015-07-10 2019-08-20 Bank Of America Corporation System for facilitating appointment calendaring based on perceived customer requirements
US10387846B2 (en) * 2015-07-10 2019-08-20 Bank Of America Corporation System for affecting appointment calendaring on a mobile device based on dependencies
US9485318B1 (en) 2015-07-29 2016-11-01 Geofeedia, Inc. System and method for identifying influential social media and providing location-based alerts
US10748121B2 (en) 2016-06-30 2020-08-18 Microsoft Technology Licensing, Llc Enriching calendar events with additional relevant information
US10313357B2 (en) 2017-01-13 2019-06-04 Microsoft Technology Licensing, Llc Reduced user authentication input requirements
US11599857B2 (en) * 2017-01-31 2023-03-07 Microsoft Technology Licensing, Llc Categorized time designation on calendars
US10962379B2 (en) * 2018-06-21 2021-03-30 Toyota Jidosha Kabushiki Kaisha Information providing device, information providing system, information providing method, and non-transitory computer-readable medium
US11815936B2 (en) * 2018-08-22 2023-11-14 Microstrategy Incorporated Providing contextually-relevant database content based on calendar data
US11500655B2 (en) 2018-08-22 2022-11-15 Microstrategy Incorporated Inline and contextual delivery of database content
US11714955B2 (en) 2018-08-22 2023-08-01 Microstrategy Incorporated Dynamic document annotations
US20200251111A1 (en) * 2019-02-06 2020-08-06 Microstrategy Incorporated Interactive interface for analytics
US11682390B2 (en) * 2019-02-06 2023-06-20 Microstrategy Incorporated Interactive interface for analytics
CN115292562A (en) * 2022-10-09 2022-11-04 深圳市铱云云计算有限公司 Big data based qualified user screening method, device, medium and computing equipment
US11790107B1 (en) 2022-11-03 2023-10-17 Vignet Incorporated Data sharing platform for researchers conducting clinical trials

Also Published As

Publication number Publication date
US20100175001A1 (en) 2010-07-08
US20180107981A1 (en) 2018-04-19
WO2010080762A1 (en) 2010-07-15
US8095613B1 (en) 2012-01-10
US9886683B2 (en) 2018-02-06

Similar Documents

Publication Publication Date Title
US20180107981A1 (en) Calendaring location-based events and associated travel
US9488487B2 (en) Route detection in a trip-oriented message data communications system
US9146115B2 (en) Location enhanced meetings and collaboration
US11493347B2 (en) Using historical location data to improve estimates of location
US9867014B2 (en) Meeting notification and modification service
US8504404B2 (en) Distance and location-aware scheduling assistance in a calendar system with notification of potential conflicts
US10237696B2 (en) Location-based assistance for personal planning
US7590553B2 (en) Integrated spatial view of time, location, and event schedule information
US8126903B2 (en) Computer implemented method for allocating drivers and passengers sharing a trip
US20080167938A1 (en) Reserving a time block in a calendar application to account for a travel time between geographic locations of appointments
US20150019642A1 (en) Calendar-event recommendation system
KR20140039194A (en) System and method for an intelligent personal timeline assistant
US11144887B2 (en) Dynamic event naming
EP2336956A2 (en) Computer implemented methods for integrating services in a calendar application and computer implemented method for allocating drivers and passengers sharing a trip
US10036647B2 (en) Systems and methods for the determination of a user's 4D trajectory
Klein et al. Temporal/Spatial Calendar Events and Triggers

Legal Events

Date Code Title Description
AS Assignment

Owner name: KIHA SOFTWARE INC., WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LAZARUS, JONATHAN D.;HAYES, NED DYKSTRA;PERKOWITZ, MICHAEL;AND OTHERS;REEL/FRAME:023509/0297

Effective date: 20091016

AS Assignment

Owner name: ARO, INC., WASHINGTON

Free format text: CHANGE OF NAME;ASSIGNOR:KIHA SOFTWARE INC.;REEL/FRAME:029907/0156

Effective date: 20110822

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: VULCAN TECHNOLOGIES LLC, WASHINGTON

Free format text: TRANSFER STATEMENT;ASSIGNOR:ARO, INC.;REEL/FRAME:045661/0606

Effective date: 20171220