Abstract:
An automatic appointment reminder system uses location and/or direction of travel of the reminder recipient relative to appointments to affect the time of sending of appointment reminders to the user, and thus enhances the user&#39;s ability to be on-time for appointments.

Description:
TECHNICAL FIELD 
     This invention relates to the field of automated reminder arrangements. 
     BACKGROUND OF THE INVENTION 
     Calendar-based automatic reminding applications are well known in the art. They integrate a calendaring application, such as Microsoft Outlook Calendar, with a messaging application, such as Microsoft Exchange, to send electronic messages to a user informing him or her of a calendar entry (referred to herein as an appointment) at some selected period of time before the time of the appointment. An example thereof is MobiSMS from MobiMarketing, which synchronizes with Outlook Calendar to send short Message Service (SMS) calendar-entry reminders to communication devices of specified persons. The known applications send the reminders irrespective of other factors that may influence whether or not sending of the reminder is appropriate, such as the user&#39;s present activity, location, or direction of travel. 
     Location-based services, which assist people in their decision-making during performance of tasks in space and time, are also known. They support spatial queries, such as “the shortest route from here to there” and “nearest restaurant from here,” where “here” is the location of the user, specified either by the user or by any location-detecting system (e.g., Global Positioning Satellites, triangulation, etc.). Examples thereof are described in U.S. Pat. Nos. 5,963,861 and 6,177,905, and in M. Raubal and C. Rinner, “Multi-Criteria Decision Analysis for Location Based Services,”  Proc.  12 th    Int. Conf. on Geoinformatics  (Geoinformatics 2004) (Gavle, Sweden, 7-9 Jun. 2004), pp. 47-53. Another example is car or palmtop navigation tools that deliver a constant stream of instructions to the user based on the user&#39;s current location to help the user follow a route and arrive at a desired destination. Examples thereof are the CoPilot product of ALK Technologies Inc., the Destinator product of Homeland Security Technology Corporation, and a cell phone equipped with the Nokia Xpress-on GPS shell from Nokia Corporation. 
     SUMMARY OF THE INVENTION 
     We have recognized that advantages are to be gained by integrating the principles of calendar-reminder applications with location-based services to condition sending of calendar reminders on location and/or direction of travel of the reminder recipient relative to the appointment. For example, if the intended recipient of an e-mail reminder is not at their desk at the time of sending of the reminder, the reminder may be useless and it would be preferable to send a page or a voice reminder instead. Or, if the intended recipient is occupied in certain activities (e.g., in the washroom, or in an executive conference room) at the time of sending of the reminder, it may be inappropriate to interrupt the recipient and preferable to delay the reminder. Or, if the intended recipient is already on the way to or at the location that is the subject of the reminder, a reminder may not be needed. Or, if the intended recipient is far away from the place of the appointment, a reminder sent at a predetermined standard time interval before the appointment may be too late to be of any use. 
     According to an embodiment of the invention, therefore, there is provided a machine-implemented method of reminding a person of appointments, which involves determining a location and a time of an appointment, determining a location of the person, and using the determined locations and the determined time to schedule a reminder of the appointment. The reminder is then sent to the person at the scheduled time. The invention thus improves the ability of a person who uses an automatic appointment reminder system to be on-time for the appointments. 
     While the invention has been characterized in terms of method, it also encompasses apparatus that performs the method. The apparatus preferably includes an effector—any entity that effects the corresponding step, unlike a means—for each step. The invention further encompasses any computer-readable medium containing instructions which, when executed in a computer, cause the computer to perform the method steps. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWING 
       These and other features and advantages of the invention will become more apparent from a description of an illustrative embodiment of the invention when considered together with the drawing, in which: 
         FIG. 1  is a block diagram of an appointment-reminder system that includes illustrative embodiments of the invention. 
         FIG. 2  is a functional flow diagram of operations of a reminder server of the system of  FIG. 1  according to one embodiment of the invention; and 
         FIG. 3  is a functional flow diagram of operations of the reminder server of the system of  FIG. 1  according to another embodiment of the invention. 
     
    
    
     DETAILED DESCRIPTION 
       FIG. 1  shows a system that includes an illustrative embodiment of the invention. The system includes the present physical location  100  of a user  110 . That location may be, for example, the user&#39;s car or some other transportation vehicle, a building, a conference room, or the user&#39;s office. Location  100  includes various means  112 - 119  for remotely determining the user&#39;s location, such as the user&#39;s office desktop telephone  119 , a presence detector  118  such as an instant-messaging application running on the user&#39;s office desktop computer, a wireless transceiver  116  integrated with a global positioning system (GPS) locator  114 , such as a GPS-equipped portable wireless phone, a car phone, or a personal digital assistant (PDA), or an RFID-equipped badge  112  of a user plus a badge reader  130  located in the user&#39;s office, conference room, building hallway, etc. These are just some examples of possible means for determining the user&#39;s location; the list is not exhaustive, and any other desired means for determining the user&#39;s location may be used as well. 
     Desk telephone  119  is connected to a telephone system  122 , which can determine whether phone  119  is in use or idle. While system  122  is illustratively a telephone system, it may be any kind of communications system. Wireless telephone or PDA  114 - 116  is connected via a base station  120  to telephone system  122 , which can interrogate GPS  114  through transceiver  116 . Badge reader  130  is connected to a tracking database  132  that stores readings reported by badge reader  130  and which can in turn be interrogated through telephone system  122  for the name of the person&#39;s location (e.g., “Conference Room B,” or “Hallway A at aisle F,” or “Point X”). And presence detector  118  is connected to a presence server  140  to which it reports presence information on user  110 . 
     A reminder server  150  is connected to a calendaring application  160  of user  110 , such as the user&#39;s Outlook Calendar. Reminder server  150  is a stored-program controlled apparatus comprising a memory  154  for storing data and programs needed for operation of server  150 , and a processor  152  that uses the data and executes the programs from memory  154 . Server  150  illustratively includes a Microsoft Exchange server, and also includes the functionality of conventional calendar-based automatic reminding applications. According to the invention, however, server  150  further includes a database  158  of rules and a program  156  that uses those rules to condition the conventional reminder functionality by the location of user  110 . Server  150  may serve reminders to one user  110  only, but in most applications server  150  serves a plurality of users and consequently has access to, a plurality of users&#39; calendaring applications  160 . Database  158  may store a set of rules that apply to all users served by server  150 , or each user may have his or her own set of rules in database  158 . In order to make information on the locations of users  110  available to server  150 , server  150  is connected to presence server  140  and to telephone system  122 . 
     Rules defining any desirable behavior of reminder server  150  may be used to populate database  158 . The rules may be formulated in any desired form—for example, they may take the form of “if, then” statements, or they may be given an order of precedence. Illustrative rules include:
         If user  110  is already at the appointment&#39;s location, then do not send a reminder.   If user  110  is already on the conference bridge of the appointment, then do not send a reminder.   If user  110  has left the appointment&#39;s location, and either has been gone for a period of time greater than x, or the appointment will commence within a period of time less than x, then send a reminder.   If user  110  is located in a “do not disturb zone” (administratively defined), then do not send a reminder.   If user  110  has left the “do not disturb zone” and the appointment has not yet taken place, then send a reminder.   If user  110  is heading toward the appointment&#39;s location, do not send a reminder.   If user  110  is heading away from the appointment&#39;s location, then send a reminder.   If user  110  is not at the appointment&#39;s location and is stationary, then send a reminder.       

     In order to be able to employ these rules, server  150  must know or be able to determine the locations (physical, or virtual such as a conference bridge) of appointments. For this purpose, calendaring application  160  includes not only the conventional appointment times and descriptions, but also includes for each appointment a location  161  for the appointment, such as its geographical coordinates. Alternatively, location  161  of appointments may be derived by server  150  by matching keywords of appointment descriptions (such as “headquarters building,” or “meeting room B,” or “my office,” or the address of the appointment, for example) against a database whose entries correlate the keywords with coordinates. 
     The aspects of one embodiment of operation of server  150  that are unconventional are shown in  FIG. 2 . Server  150  monitors calendaring application  160  for appointments, in a conventional manner, and determines how far ahead of each appointment to send a reminder, also in a conventional manner. Server  150  also keeps track of postponed (rescheduled), reminders. When it determines that it is time to send an appointment reminder, at step  200 , server  150  first checks whether the location coordinates of the appointment are available, at step  201 . If not, server  150  proceeds conventionally and sends the reminder to user  110  whose calendar entry this appointment represents, at step  206 . If so, server  150  tries to determine the location of user  110 , at step  202 . Server  150  does this by querying presence server  140 , telephone system  122 , tracker database  132 , and the user&#39;s portable wireless communications device  114 - 116 . If it finds, at step  204 , that it cannot determine the user&#39;s location, server  150  proceeds to send the reminder to user  110  in the conventional manner, at step  206 . If it finds at step  204  that it was able to determine the user&#39;s location at step  202 , server  206  determines if user  110  is moving, at step  208 . For example, if it determines that user  110  is presently using their desktop telephone  119  or computer  118 , it assumes that user  110  is not moving. If it determines that user  110  is using their car phone, it assumes that user  110  is moving. If it determines the user&#39;s presence from a badge reader  130  or the user&#39;s portable wireless device  114 - 116 , it assumes that user  110  may be moving. If user  110  is or may be moving, reminder server  150  tries to determine the direction of the user&#39;s motion, at step  210 . For example, it does so by querying again portable wireless communications device  114 - 116  and tracker database  132  for a change in the user&#39;s location. If it determines that user  110  is not moving at step  208 , or after determining the direction of the user&#39;s motion at step  210 , server  150  retrieves from calendar application  116  or from a database the coordinates of the appointment, at step  211 . Server  150  also retrieves from database  158  the reminder rules that are applicable to this user  110 , at step  212 , and applies these rules to the user&#39;s determined location and direction of motion, at step  214 , to determine what to do with the scheduled reminder that triggered this process at step  200 . Server  150  then either sends the reminder conventionally, postpones it until a later time, or cancels it, at step  216 , as dictated by the rules. 
     Unlike in the embodiment of  FIG. 2 , server  150  in the embodiment of  FIG. 3  starts processing appointments some period of time before the normal (a user-specified or a system-specified) time for sending a reminder. For example, if the normal reminder time is 15 minutes before the appointment, server  150  will start processing the appointment×hours before the appointment time. This earlier time is referred to herein as a “reminder check time.” At reminder check time of an appointment in calendaring application  160  of a user  110 , determined at step  300  of  FIG. 3 , server  150  first checks whether the location coordinates of the appointment are available, at step  301 . If not, server  150  proceeds conventionally, at step  302 , and will send the appointment reminder at the normal reminder time. If so, server  150  tries to determine the location of user  110 , at step  303 , in the manner described for step  202  of  FIG. 2 . If it finds, at step  304 , that it cannot determine the user&#39;s location, server  150  checks if the reminder check time is earlier then the normal reminder time, at step  306 . If the reminder check time precedes the normal reminder time, sever  150  reschedules the reminder check time for a later time—15 minutes later, for example—at step  308 . If it finds at step  306  that the reminder time does not precede the normal reminder time, server  150  sends the reminder to user  110 , in the conventional manner, at step  310 . 
     If server  150  finds at step  304  that it was able to determine the user&#39;s location, server  150  determines if user  110  is moving, at step  312 , in the manner described for step  208  of  FIG. 2 , and also tries to determine the user&#39;s direction of motion, at step  314 , in the manner described for step  210  of  FIG. 2 . Or, change-in-location information including the direction-of-motion information may come from sources  120 ,  132 , or  140 . Also at step  314 , server  150  determines the rate of motion of user  110 , for example by determining the time interval between queries of the user&#39;s location and the change in the coordinates of the user&#39;s location between those queries. If it determines that user  110  is not moving at step  312 , or after determining the user&#39;s direction and/or rate of motion at step  316 , server  150  retrieves from calendaring application  116  or from a database the coordinates of the appointment, at step  318 . Server  150  also retrieves from database  158  the reminder rules that are applicable to this user  110 , at step  320 , and applies these rules to the appointment coordinates and the user&#39;s location and direction and rate of motion, at step  322 , to determine what action to take. Server  150  then either sends the reminder at this time, or cancels the reminder, or postpones the reminder check time, at step  326 , as dictated by the rules. 
     The reminder rules that are used include those described for the embodiment of  FIG. 2 , but additionally may include rules such as
         If the calculated reminder time occurs before the reminder check time, either cancel the reminder for user  110  or send a “can&#39;t make meeting on time” message.   If the calculated reminder time falls after the reminder check time and before the appointment time, schedule the reminder for user  110  and update the reminder based on periodic checks of tracker database  132 .   If the calculated reminder time falls after the appointment time, either cancel the reminder for user  110  or send a “can&#39;t make meeting on time” message.   If user  110  is determined to be outside of a predetermined location range y, then do not engage the reminder time check mechanism (example: user  110  is in Los Angeles, but the face-to-face appointment location is Canberra)   If the time for a second meeting away from the office of user  110  is “close” to the time for a first away meeting (i.e., user  110  is unlikely to return to the office in between the meetings) remind user  110  of both meetings at the earliest calculated reminder time of the two meetings.       

     Of course, various changes and modifications to the illustrative embodiment described above will be apparent to those skilled in the art. For example, the reminder server, and even the calendaring application and coordinates of appointments, may be implemented on the user&#39;s portable communications device. Or, real-time traffic and road construction information can be brought in as additional inputs to the time-to-travel algorithm. This would likely provide more accurate meeting reminders. One can also tap into existing GPS routing services to allow the user to access best-route information to their scheduled meeting. Furthermore, users may be given the option of sharing their location and time-to-travel information with other meeting participants. That way if a person was running late for a meeting, the other people attending the meeting could access that person&#39;s information in the Outlook calendar and see that person&#39;s arrival progress. If it looked like the person was only a couple of minutes away, the meeting could be delayed until they arrived. However, if that person was still some distance away and was going to be significantly late, the other participants could either start the meeting without that person or reschedule for another time when all participants were available. Also, the idea of time-to-travel-based reminders can be extended into other areas, such as a public transportation application to notify a person when they have to be at the bus stop or train station in order to arrive at a desired destination on time. The application would access public transportation timetables and replace a scheduled appointment location with the location of the public transportation station that the person must be at in order to make the flight, train, bus, etc. Also, the application can postpone the start time of a meeting based on the location of other attendees (and their consequent expected arrival times) and postpone the appointment reminders accordingly. These changes and modifications can be made without departing from the spirit and the scope of the invention and without diminishing its attendant advantages. It is therefore intended that such changes and modifications be covered by the following claims except insofar as limited by the prior art.