# Patent

## Title
Location and time sensitive wireless calendaring

## Abstract

A computer-implemented method provides location-sensitive and time-sensitive calendaring to a wireless device, such as a cell phone, pager, PDA, etc. A user's calendar is maintained with a number of appointments, start times and end times for the appointments, meeting place and a list of attendees for the appointments. When the present time reading is within a predetermined minimum of a meeting start time of an appointment of a calendar user, the location of the user is determined based on the location of the wireless device. The location of the meeting place is also determined. Using historical data (of the user or others), the estimated time of arrival of the user at the meeting place is determined. If the estimated time of arrival is after the meeting start time, then a late message may be sent to the user and/or to the other meeting attendees.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation of U.S. application Ser. No. 11/592,656, filed Nov. 3, 2006 (now issued as U.S. Pat. No. 7,813,950), which is a continuation of U.S. application Ser. No. 09/892,730, filed Jun. 27, 2001 (now issued as U.S. Pat. No. 7,139,722), the entireties of which are herein incorporated by reference.


TECHNICAL FIELD
This invention relates to a computer-implemented method and system for providing location and time sensitive wireless calendaring information to users.
BACKGROUND OF THE INVENTION
Calendaring software programs and personal information managers have greatly simplified the task of maintaining contacts and scheduling appointments. Time is an important aspect of calendaring software programs. Typically, an appointment or task has a start time and an end time. An appointment may also have a list of attendees. A reminder may be sent to the user of the calendaring program to remind the user when an appointment is approaching. One aspect that is lacking in calendaring programs is location. Calendaring programs do not provide functionality to users based on the user's present location.
Wireless devices with GPS capability (or a similar capability) are able to provide location information to a user. Unfortunately, these devices lack the ability to tie the user's location to a user's appointment information (in a calendar).
Thus, there is a need for a computer-implemented method and system for providing location and time-sensitive wireless calendaring information to users.
SUMMARY OF THE INVENTION
The present invention satisfies the above described needs by providing, in one embodiment, a computer-implemented method for providing location-sensitive and time-sensitive calendaring to a wireless device, such as a cell phone, pager, personal digital assistant (PDA), etc. A user's calendar is maintained in a calendar program module with a number of appointments, start times and end times for the appointments, meeting places and a list of attendees for the appointments. When the present time reading is within a predetermined minimum of a meeting start time of an appointment of a calendar of a user, the location of the user is determined based on the location of the wireless device. The location of the meeting place is also known. Using historical data (of the user or others), the estimated time of arrival of the user at the meeting place is determined. If the estimated time of arrival is after the meeting start time, then a late message may be sent to the wireless devices of the user and/or to the other meeting attendees.
In one embodiment, the computer-implemented calendar program may be maintained in the wireless device itself. For example, the calendar program may be part of a personal digital assistant (PDA). In another embodiment, the calendar program may be maintained on a server connected to a wireless network. Multiple users, such as corporate users, may be associated with the server.
These and other features, advantages, and aspects of the present invention may be more clearly understood and appreciated from a review of the following detailed description of the disclosed embodiments and by reference to the appended drawings and claims.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of an exemplary operating environment 100 in accordance with an embodiment of the present invention.
FIG. 2 is a flow diagram illustrating method for providing location-sensitive and time-sensitive calendaring to a wireless device in accordance with an embodiment of the present invention.



DETAILED DESCRIPTION
The present invention is directed toward a method and system for using position information to augment a calendaring application. Positions of wireless devices may be tracked over time to produce commute statistics. Each wireless device is typically associated with a user. The commute statistics and current position of the user may be used to predict whether the user will be late for a scheduled appointment. If so, then a message may be transmitted to the user and/or the other scheduled attendees of the meeting to notify them that the user will be late to the meeting. The message may also schedule a follow-up meeting at a later time when the user is scheduled to arrive. The invention may also be used for a roll call function so that a user may submit a roll call request and receive the current locations and/or approximate arrival times of the scheduled attendees for a meeting.
Referring now to the drawings, in which like numerals represent like elements throughout the several figures, aspects of the present invention and the exemplary operating environment will be described.
FIG. 1 is a block diagram of an exemplary operating environment 100 in accordance with an embodiment of the present invention. The environment 100 comprises a plurality of wireless devices connected to a wireless network 105. The wireless network may be any type of wireless network known to those skilled in the art such as a cellular network or a personal communications service (PCS) network. The wireless devices may be any of those known to those skilled in the art, such as a laptop computer 110 with a wireless connection (such as a wireless modem), a wireless telephone 115, a pager 120 or a personal digital assistant (PDA) 125 with a wireless connection (such as a wireless modem). The wireless devices send and receive wireless transmissions, such as radio signals, via wireless network 105.
It should be understood that wireless network 105 is any wireless network known to those skilled in the art and may include well-known components such as cell towers, mobile switching centers (MSCs), and the like.
The wireless network 105 is also connected to a server 130, preferably via a wireline connection. When the server 130 wants to send a message to one of the wireless devices, the server may transmit the message via the wireline connection to the wireless network. The wireless network may then transmit the message to the appropriate wireless device. The message may be any wireless message known to those skilled in the art, such as a short messaging service (SMS) message, an HTTP message or a voice message (using text-to-speech converters).
The server 130 is also connected to a computer 135 and/or a workstation 140. The server 130 may also be connected to a database 145.
A calendaring program (not shown) may be run on the server 130, on the computer 135 and/or workstation 140. A user operating computer 135, workstation 140 or a similar component connected to server 130 may use the calendaring program to schedule appointments, tasks and meetings. Associated with the appointments, tasks and/or meetings may be a number of attendees, a start time, and a meeting location. A separate calendar may be maintained for each user of the server. The server may be operated in a local area network (LAN) configuration, a wide area network (WAN) configuration or any other configuration known to those skilled in the art.
The database 145 may comprise a list of all users, their associated calendars and their associated wireless devices. When the server 130 needs to locate a user, the server determines the wireless device associated with the user and it sends a request message to the wireless network 105. The wireless network locates the user based on the user's wireless device and sends the location information back to the server 130. The location information may be latitude and longitude information, or similar mapping or location coordinates.
It should be understood that the location of the wireless device may be determined using well-known methods such as triangulation, GPS, E-911, etc.
Triangulation is a method of locating the source of a radio signal through the use of three receivers (such as cell towers) each of which focuses on the direction of maximum signal strength. Through the use of three receivers, it is possible to plot the location of the transmitter (the wireless device). Of course, the accuracy of triangulation may be affected by the radio signals bouncing off of and being absorbed by physical obstructions such as buildings and trees. Triangulation may also be referred to as angle of arrival. This process can also be accomplished using one or two receivers employing smart antenna technology.
Global Positioning System (GPS) is a system that precisely determines a location anywhere on earth. The GPS comprises around twenty satellites orbiting the earth. GPS is based on satellite ranging. Satellite ranging determines the position of a GPS device by measuring the distance of the GPS device from a group of satellites in space. The satellites act as precise reference points. To determine the precise position, latitude, longitude and altitude (and possible velocity), a fix with at least four satellites is required.
In a preferred embodiment, each GPS satellite transmits on two frequencies: 1575.42 MHz (referred to as L1) and 1227.60 MHz (referred to as L2). Along with other data, the satellite transmits its own position, time and a pseudo random noise code (PRN). The PRN is used by the receiver to calculate range. If the locations of several satellites are known and the precise range of the GPS device from these satellites, then the location and altitude of the GPS device may be determined. The satellites derive time from on-board celestial navigation equipment and atomic clocks accurate to one second in 300,000 years.
The ranging of the GPS device may function as follows. The GPS device and the satellites include a long sequence of bits. By aligning and comparing an internal stream of bits in the GPS device to the received bits from the satellite, a shift error or displacement can be calculated representing the travel time from the satellite to the GPS device. Because the GPS device also knows the precise location of the satellite and the range from the satellite to the GPS device, a triangulation calculation may provide two dimensional position (latitude and longitude) from three satellites. If a fourth satellite is used, elevation information may be obtained.
There are actually two PRN strings transmitted: a course acquisition code (C/A code) and a precision code (P code). The coarse code sequence comprises 1023 bits repeated every 266 days. However, each satellite transmits a seven day segment re-initialized at midnight Saturday or Sunday of each week. By using both codes, a very accurate position can be calculated. By transmitting the codes at different frequencies, even the signal attenuating effects of the ionosphere can to some degree be factored out. At the present time, civilian users are only authorized to use the coarse acquisition code and this is referred to as the GPS Standard Positioning System (SPS) with an accuracy of about 5 meters. Military users use both the coarse acquisition code and the precision code in what is referred to as the Precise Positioning System (PPS) with an accuracy to centimeters.
Although triangulation and GPS may be used to provide location information, other well-known locating techniques may also be used. For example, location may also be provided using the automatic location information (ALI) provided for E-911 service.
After the location of the wireless device is received from the wireless network using one of the above-described techniques or another known technique, the server may then use the user's location to store commute statistics. Commute statistics are typically stored as a user identifier, a time stamp and location information. The commute statistics may be used to determine how long it typically takes to get from point A to point B. The commute statistics may be based on a particular user, such as how long does it take user A to get from point A to point B. Alternatively, the commute statistics may be based on a group of users, such as how long does it take an average user of group A to get from point A to point B.
Based on these commute statistics, the server may perform calculations such as determining how long it will take the user to get to their next scheduled appointment. Based on this information, late messages may be sent to appropriate parties, appointments may be reschedules, alternative routes may be suggested to the user, etc.
Having described an exemplary operating environment in reference to FIG. 1, a flow diagram illustrating a method 200 for providing location-sensitive and time-sensitive calendaring to a wireless device in accordance with an embodiment of the present invention will be described in reference to FIGS. 1 and 2. It should be understood that the steps described herein in reference to flow diagrams are steps executed by a computer in response to instructions received from a computer-readable medium.
The method 200 begins at step 205 where it is determined that a user's appointment is approaching. For example, in one embodiment, it may be determined that a time reading (the present time) is within a predetermined minimum of a meeting start time of an appointment of a calendar of a user. The appointment may comprise a meeting start time, a meeting place and a plurality of meeting attendees. Typically, the calendar information may be stored in server 130 and/or database 145. The server 130 may determine the approaching appointments based on this stored information.
At step 210, the location of the user associated with the approaching appointment is determined. Typically, either in the database 145 or server 130, will be a file with the wireless device(s) associated with a user. Thus, if user A is associated with a cell phone with directory number 555-555-5555, then the server will request that the wireless network 105 determine the location of user A based on the location of the wireless device associated with user A (the cell phone with directory number 555-555-5555).
At step 215, the location of the meeting place is determined. A plurality of meeting places and their location coordinates may be stored in database 145 and/or server 130. For example, if the user enters “Plaza Hotel” into his calendar for the meeting place, then a database may cross-reference the meeting place Plaza Hotel with its location coordinates (such as its street address, latitude/longitude, etc.) Alternatively, the user may directly enter the location of the meeting place when entering the appointment into his calendar.
At step 220, the estimated time of arrival of the user at the meeting place is determined. The estimated time of arrival may be determined using historical data. For example, by collecting data from different wireless devices (either those of the user or those of other users), the server may maintain a database of historical data. Typically, the historical data may comprise a user identifier, a time stamp and a location identification. The server may use the historical data to perform calculations, such as determining the average commute time between two different locations. These calculations may be performed based on a particular user (such as how long does it typically take user 1 to get from point A and point B). Alternatively, the calculations may be performed based on multiple users (such as, one average, how long does it take someone to get from point A to point B). The historical data may also be obtained from a third party, such as a traffic source, which tracks the traffic trends in a city. It should also be understood that, in some embodiments, an indication may be stored as to whether the user is traveling by foot, bicycle, motorcycle, car, train, etc. so that an accurate estimated time of arrival may be calculated. This mode of transportation indication may be set by the user at their computer (135 or 140). Alternatively, the user may set an indication on their wireless device to indicate their mode of transportation and the indication may be transmitted back to the server 130.
The estimated time of arrival may also be calculated based on the velocity of the user. The velocity may sometimes be calculated using GPS and other means. Thus, the velocity of the user, the user's current location and the meeting location may be used to determine an estimated time of arrival at the meeting location.
At step 225, if the estimated time of arrival is after the meeting start time, then a late message may be sent. The method 200 then ends. The late message may be sent to the user and/or to the plurality of meeting attendees. For example, a message may be sent to the user indicating that his estimated time of arrival is after the meeting start time and asking the user whether he wants to send a message to the other meeting attendees. If so, then a message is sent to the other meeting attendees.
Typically, the late message will be a SMS message or another type of text message. Alternatively, the message may be a voice message. To send the message, the server locates the wireless device(s) associated with the user and the meeting attendees. Typically, this information is stored in a database, such as database 145. The server connects to the wireless network through conventional means and the wireless network sends the message to the appropriate wireless device. For example, the server may send an e-mail message to the pager service provider of the user. The e-mail message indicates the estimated time of arrival of the user at the meeting. The pager service provider then sends the page to the user.
In alternative embodiments of the present invention, a roll call mechanism may be implemented. The roll call mechanism would allow a user to send out a roll call request for a meeting. The server would then determine all of the meeting attendees and, through requests to the wireless network, the server would determine the location of all the attendees for the meeting. The server may send the location of all meeting attendees to the user. Alternatively, the server may perform calculations to determine the estimated times of arrival for each of the meeting attendees and the server may send estimated times of arrival to the user and/or all of the meeting attendees.
In another embodiment, the invention may be connected to a mapping program to provide a map to be displayed to the user. The server may be able to determine the user's location, the closest appointment for the user and which route will get the user there on time. Determining the closest appointment may be particularly important for service calls, which is a particular use of an embodiment of the present invention. Thus, a service representative will be sent to the closest appointments and will be notified via their wireless device which appointment is next. The customer may receive a page, an e-mail, a telephone call, etc. notifying the customer where the service representative is and the estimated time of arrival of the service representative.
In another embodiment, the invention may be able to automatically enter the meeting location based on the user's present location. For example, suppose a user is at a meeting at The Plaza Hotel. If the user enters a new appointment into their wireless device, such as a PDA, the default meeting location may be entered as The Plaza Hotel based on the location information received by the server.
In another embodiment, the present invention may automatically reschedule an appointment if the user is going to be late and send notifications to the user and the other meeting attendees of the new meeting time. This is particularly effective because preferably the server controls the calendars of the user and the meeting attendees.
Although the present invention has been described above as implemented in a preferred environment and using preferred methods, it will be understood that alternative embodiments will become apparent to those skilled in the art to which the present invention pertains without departing from its spirit and scope. Accordingly, the scope of the present invention is defined by the appended claims rather than the foregoing description.

## Claims

1. A method for rescheduling a calendar appointment comprising a start time, at least two appointment attendees, and an appointment location, the method comprising:
sending, from the calendar management server, a roll call request to at least two wireless devices operating in a wireless communications network, wherein each wireless device is associated with one of the appointment attendees;
receiving in response to the roll call request, at the calendar management server, a location for each wireless device;
calculating, at the calendar management server, for each wireless device, an estimated time of arrival at the appointment location, the estimated time of arrival of each wireless device being based upon the location of each wireless device and a respective velocity of each wireless device;
determining, at the calendar management server, that at least one of the estimated times of arrival is after the start time of the calendar appointment; and
rescheduling, at the calendar management server, in response to the determination that at least one of the estimated times of arrival is after the start time of the calendar appointment, the calendar appointment to a rescheduled start time.

2. The method of claim 1, further comprising, prior to sending the roll call request, determining, at the calendar management server, that a time reading is within a predetermined minimum of the start time.

3. The method of claim 2, wherein calculating, at the calendar management server, for each wireless device, the estimated time of arrival at the appointment location, is based further upon historical data comprising a database comprising a plurality of time stamps and corresponding location coordinates for each wireless device.

4. The method of claim 3, wherein calculating the estimated time of arrival at the appointment location comprises:
using the location of each wireless device, determining a difference between the time stamp corresponding to the location of each wireless device and a time stamp corresponding to the appointment location; and
adding the difference to the time reading to calculate the estimated time of arrival at the appointment location.

5. The method of claim 1, wherein calculating, at the calendar management server, for each wireless device, the estimated time of arrival at the appointment location, is based further upon historical data comprising a historical commute time from the location of each wireless device to the appointment location.

6. The method of claim 1, further comprising providing, from the calendar management server, a notification to at least one of the wireless devices, the notification comprising the rescheduled start time of the calendar appointment.

7. The method of claim 1, wherein calculating, at the calendar management server, for each wireless device of the plurality of wireless devices, the estimated time of arrival at the appointment location, is further based upon an indication of a mode of transportation.

8. The method of claim 1, further comprising sending, from the calendar management server, a late message to the wireless devices to inform the associated appointment attendees that at least one of the appointment attendees is late based upon the determining step.

9. The method of claim 1, further comprising, sending, from the calendar management server, a notification message to the wireless devices to inform the associated appointment attendees of a depart time by which to proceed to the appointment location in order to arrive at the appointment location by the rescheduled start time.

10. A non-transitory computer-readable medium of a calendar management server comprising instructions that, when executed by a processor of the calendar management server, cause the processor to perform steps of a method for rescheduling a calendar appointment comprising a start time, at least two appointment attendees, and an appointment location, the steps comprising:
sending a roll call request to at least two wireless devices operating in a wireless communications network, wherein each wireless device is associated with one of the appointment attendees;
receiving in response to the roll call request a location for each wireless device;
calculating for each wireless device an estimated time of arrival at the appointment location, the estimated time of arrival of each wireless device being based upon the location of each wireless device and a respective velocity of each wireless device;
determining that at least one of the estimated times of arrival is after the start time of the calendar appointment; and
rescheduling, in response to the determination that at least one of the estimated times of arrival is after the start time of the calendar appointment, the calendar appointment to a rescheduled start time.

11. The non-transitory computer-readable medium of claim 10, further comprising instructions that, when executed by the processor, perform an additional step of sending a notification message to the wireless devices to inform the associated appointment attendees of a depart time by which to proceed to the appointment location in order to arrive at the appointment location by the rescheduled start time.

12. The non-transitory computer-readable medium of claim 10, further comprising instructions that, when executed by the processor, perform an additional step of sending a late message to the wireless devices to inform the associated appointment attendees that at least one of the appointment attendees is late based upon the estimated times of arrival calculated for the appointment attendees.

13. The non-transitory computer-readable medium of claim 10, further comprising instructions that, when executed by the processor, perform an additional step of providing a notification to at least one of the wireless devices, the notification comprising the rescheduled start time of the calendar appointment.

14. The non-transitory computer-readable medium of claim 10, further comprising instructions that, when executed by the processor, perform an additional step of, prior to sending the roll call request, determining that a time reading is within a predetermined minimum of the start time.

15. The non-transitory computer-readable medium of claim 14, wherein the instructions for calculating, for each wireless device, the estimated time of arrival at the appointment location are based further upon historical data comprising a database comprising a plurality of time stamps and corresponding location coordinates for each wireless device.

16. The non-transitory computer-readable medium of claim 15, wherein the instructions for calculating the estimated time of arrival at the appointment location comprise instructions for:
using the location of each wireless device, determining a difference between the time stamp corresponding to the location of each wireless device and a time stamp corresponding to the appointment location; and
adding the difference to the time reading to calculate the estimated time of arrival at the appointment location.

17. A system for rescheduling a calendar appointment comprising a start time, at least two appointment attendees, and an appointment location, the system comprising:
a processor;
a memory, in communication with the processor, the memory being configured to store instructions that, when executed by the processor, perform the steps of:
sending a roll call request to at least two wireless devices operating in a wireless communications network, wherein each wireless device is associated with one of the appointment attendees;
receiving in response to the roll call request a location for each wireless device;
calculating for each wireless device an estimated time of arrival at the appointment location, the estimated time of arrival of each wireless device being based upon the location of each wireless device and a respective velocity of each wireless device;
determining that at least one of the estimated times of arrival is after the start time of the calendar appointment; and
rescheduling, in response to the determination that at least one of the estimated times of arrival is after the start time of the calendar appointment, the calendar appointment to a rescheduled start time.

18. The system of claim 17, wherein the instructions stored in the memory further comprise instructions for sending a notification message to the wireless devices to inform the associated appointment attendees of a depart time by which to proceed to the appointment location in order to arrive at the appointment location by the rescheduled start time.

19. The system of claim 17, wherein the instructions stored in the memory further comprise instructions for sending a late message to the wireless devices to inform the associated appointment attendees that at least one of the appointment attendees is late based upon the determining step.

20. The system of claim 17, wherein the instructions stored in the memory further comprise instructions for, prior to sending the roll call request, determining that a time reading is within a predetermined minimum of the start time.