METHOD AND APPARATUS FOR AUTOMATICALLY MANAGING USER ACTIVITIES USING CONTEXTUAL INFORMATION

US 2014 67 455A1

drawing #0

Show all 10 drawings

An automatic calendar-managing system automatically updates a user's schedule in response to schedule-modifying events. During operation, the system can detect a schedule-modifying event, which can include an event that is likely to require the user to modify a set of scheduled activities. The system then generates a schedule modification, which includes at least one change to the user's set of scheduled activities, to account for the schedule-modifying event. The system can reschedule the user's set of scheduled activities to accommodate the schedule modification.

PatentSwarm provides a collaborative workspace to search, highlight, annotate, and monitor patent data.

Start free trial Sign in

Tip: Select text to highlight, annotate, search, or share the selection.

Claims

1. A computer-implemented method, comprising:
detecting a schedule-modifying event for a user, wherein the schedule-modifying event includes an event which is likely to require the user to modify a set of scheduled activities;
generating a schedule modification, which includes at least one change the user's set of scheduled activities, to account for the schedule-modifying event; and
rescheduling the user's set of scheduled activities to accommodate the schedule modification.

Show 10 dependent claims

12. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method, the method comprising:
detecting a schedule-modifying event for a user, wherein the schedule-modifying event includes an event which is likely to require the user to modify a set of scheduled activities;
generating a schedule modification, which includes at least one change the user's set of scheduled activities, to account for the schedule-modifying event; and
rescheduling the user's set of scheduled activities to accommodate the schedule modification.

Show 6 dependent claims

19. An apparatus, comprising:
an event-detection module to detect a schedule-modifying event for a user, wherein the schedule-modifying event includes an event which is likely to require the user to modify a set of scheduled activities;
an activity-managing module to generate a schedule modification, which includes at least one change the user's set of scheduled activities, to account for the schedule-modifying event; and
a schedule-modifying module to reschedule the user's set of scheduled activities to accommodate the schedule modification.

Show 6 dependent claims

Description

BACKGROUND

1. Field

This disclosure is generally related to calendar systems. More specifically, this disclosure is related to a calendar system that automatically updates a user's schedule.

2. Related Art

Advances in portable computing technologies have made it easier for people to manage their schedules while on the go. People oftentimes carry a portable device with them at all times, such as a smartphone, tablet computer, or laptop computer, which allows them to receive and respond to urgent phone calls or messages that require their sudden attention. These portable devices also include applications that allow users to manually manage their tasks and calendar events, and to share these tasks and events with others. As a user progresses through his day, these applications can remind the user of the tasks and calendar events that the user has pending, and allow the user to manually adjust his schedule as necessary.

However, managing a calendar and task list can itself be a daunting task that requires a significant amount of forethought and attention from the user. Not only does the user need to remember to create calendar entries for the tasks and events that require his attention in the near future, but he also needs to spend significant effort in deciding how to reschedule the tasks or events that he has overlooked or purposely missed.

Oftentimes, the user's schedule can change suddenly as new tasks require his attention, and as other tasks are cancelled or postponed. If the user's schedule is busy, the user may need to spend too much time adjusting his schedule to accommodate each urgent task that needs his attention, or to optimize his schedule after tasks or events are removed. Therefore, instead of adjusting his calendar to reflect each change in his schedule, the user is likely to let his schedule become outdated as new tasks are not added to the calendar and missed tasks and events are not rescheduled. To make matters worse, the user may forget to re-visit older calendar tasks that the user has failed to complete until the task itself becomes an urgent task.

SUMMARY

One embodiment provides a system that automatically updates a user's schedule. During operation, the system can detect a schedule-modifying event for a user, such as an event which is likely to require the user to modify a set of scheduled activities. The system then generates a schedule modification, which includes at least one change the user's set of scheduled activities, to account for the schedule-modifying event. The system can also reschedule the user's set of scheduled activities to accommodate the schedule modification.

In some embodiments, a scheduled activity includes at least one of a location; a set of participants; an importance score; a time range; and activity-related information.

In some embodiments, the activity-related information includes at least one of: location-related information; transportation information; a coupon; an advertisement; an item list indicating items for the user to bring to the scheduled activity; an electronic document related to the scheduled activity; information about other participants of the scheduled activity; and itinerary-related information for the scheduled activity.

In some embodiments, the system can generate the schedule modification by deriving a new scheduled activity for the user, rescheduling an existing scheduled activity, adding a participant to an existing scheduled activity, removing a participant from an existing scheduled activity, modifying a location for an existing scheduled activity, and/or modifying activity-related information associated with a scheduled activity.

In some embodiments, while generating the schedule modification, the system automatically derives an activity for the user based on historical information associated with the user.

In some embodiments, while generating the schedule modification, the system compares the schedule-modifying event to historical events associated with the user to identify one or more matching historical events. The system then determines, from the matching historical events, one or more target activities that the user has created or modified in response to the historical events. The system creates a scheduled activity based on the one or more target activities.

In some embodiments, the target activity includes an activity that is periodically repeated by the user, and that is not in the user's set of scheduled activities.

In some embodiments, the target activity includes an activity that is historically correlated to an activity in the user's set of scheduled activities (e.g., the user performs the target activity at around the time the user also performs an activity that is similar to one of the user's scheduled activities), and/or an activity that the user performs after one or more activities in the user's set of scheduled activities (e.g., the user performs the target activity after or in response to performing an activity that is similar to one of the user's scheduled activities).

In some embodiments, while rescheduling the set of scheduled activities, the system generates one or more alternative schedules by processing the set of scheduled activities using one or more scheduling techniques. The system then processes a respective schedule using a utility function to compute a utility score for the respective schedule. The system selects, from the alternative schedules, a schedule with a highest utility score.

In some variations, the utility function takes as input one or more of: a priority level or importance score for a respective scheduled activity; a time gap between scheduled activities; a time duration during the scheduled activities; a distance travelled between scheduled activities; and a travel time duration between scheduled activities.

In some variations, the utility function takes as input one or more of: a cost associated with rescheduling a scheduled activity; an activity deadline; a cost for missing a deadline for a scheduled activity; and a scheduling dependency between two or more scheduled activities.

In some embodiments, in response to generating the schedule modification, the system presents the schedule modification to the user, and receives a response to the schedule modification from the user. The system then updates the schedule modification based on the response. The system can also store a historical event that includes the schedule-modifying event in association with the updated schedule modification.

In some embodiments, the system detects the schedule-modifying event in response to determining that the user is traveling to a predetermined location, determining that the user has arrived at a predetermined location, detecting a change in a weather forecast, detecting a change in travel conditions (e.g., road traffic conditions, a roadwork zone, a road closure, a train schedule, a flight schedule, etc.), and/or detecting that a proximity between the user and another participant of a scheduled activity is within a threshold proximity.

In some embodiments, the system detects the schedule-modifying event in response to determining that the user has missed a scheduled activity, and/or determining that a new scheduled activity associated with the user has been created, modified, or cancelled.

In some embodiments, the system detects the schedule-modifying event in response to determining that the user has performed an action that oftentimes precedes the user creating anew scheduled activity, and/or in response to automatically deriving anew activity for the user based on the user's historical activities and preferences.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 illustrates an exemplary computer system that facilitates automatically updating an activity schedule for a user in accordance with an embodiment.

FIG. 2 presents a flow chart illustrating a method for rescheduling a user's activities in accordance with an embodiment.

FIG. 3 presents a flow chart illustrating a method for generating a recommended modification to the user's schedule in accordance with an embodiment.

FIG. 4 presents a flow chart illustrating a method for generating an updated schedule in accordance with an embodiment.

FIG. 5A illustrates an exemplary schedule created by a user in accordance with an embodiment.

FIG. 5B illustrates an exemplary schedule that has been automatically updated in accordance with an embodiment.

FIG. 5C illustrates an exemplary schedule that includes an optimal route for a user in accordance with an embodiment.

FIG. 51) illustrates an exemplary schedule that includes an optimal route that has been automatically updated in accordance with an embodiment.

FIG. 6 illustrates a user interface that presents a recommended scheduled activity to a user in accordance with an embodiment.

FIG. 7 presents a flow chart illustrating a method for providing a recommended schedule modification to a user in accordance with an embodiment.

FIG. 8 illustrates an exemplary apparatus that facilitates automatically updating a user's schedule in accordance with an embodiment.

FIG. 9 illustrates an exemplary computer system that facilitates automatically updating a user's schedule in accordance with an embodiment.

In the figures, like reference numerals refer to the same figure elements.

DETAILED DESCRIPTION

The following description is presented to enable any person skilled in the art to make and use the embodiments, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present disclosure. Thus, the present invention is not limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.

Overview

Embodiments of the present invention solve the problem of providing an automatic calendar-managing system, which can automatically optimize a user's calendar in response to detecting a schedule-modifying event. The system can analyze data from several sensor streams related to a user or organization, and can use information from these sensor streams to update a calendar model for the user or the organization. This calendar model includes a set of activities (e.g., multiple inter-related activities) that form a schedule for the user or organization.

For example, as a user progresses through his day, the system can automatically optimize the user's schedule to accommodate any new tasks that need to be performed, or to accommodate any last-minute changes to the user's schedule. If the system determines that the user needs to perform a task that is not currently in his calendar, or if the user creates or updates a calendar entry in a way that creates a sub-optimal schedule, the system can automatically update one or more of the user's calendar entries to create an optimized schedule.

In some embodiments, the system can use the information related to the user to determine which activity the user may be performing, and/or to recommend changes to the user's schedule. For example, the system can use this user information to determine whether the user is performing a scheduled activity from his calendar, to determine whether the user is available to complete an action item from his calendar or task queue, or to determine whether the user may not be able to complete a scheduled activity on his calendar.

The system can also use information related to the user or to other users (e.g., other participants of a scheduled activities) to coordinate activities between the user and the other users. For example, the system can perform complex activity planning or enterprise task scheduling within an organization to account for various personal or business goals (e.g., a project deadline). Organizations oftentimes perform similar activities from project to project, and may perform some of these activities in a similar sequence. The system can use historical activity information from past projects to determine a sequence in which a project's activities need to occur. The system can keep track of a plurality of tasks and/or scheduled activities from the organization (e.g., related to the project), and can dynamically reschedule tasks or activities to preserve an activity order or to mitigate any scheduling conflicts.

FIG. 1 illustrates an exemplary computer system 100 that facilitates automatically updating an activity schedule for a user in accordance with an embodiment. Computer system 100 can include a computer network 102, which can include any wired or wireless network that interfaces various computing devices to each other, such as a computer network implemented via one or more technologies (e.g., Bluetooth, Wi-Fi, cellular, Ethernet, fiber-optic, etc.). Computer system 100 can also include a computing device 104 coupled to network 102 and associated with a user 106, such as an portable computing device that user 106 can travel with, use to communicate with others, perform tasks, and manage a personal or shared calendar. For example, computing device 104 can include a smartphone 104.1, a tablet computer 104.2, or any other personal computing device 104.n such as a laptop computer, a desktop computer, etc.

As user 106 performs activities throughout the day (e.g., travels to certain locations, meets with others, accesses certain electronic documents, updates a personal or shared calendar, etc.), computing device 104 can gather contextual information for user 106 that facilitate determining activities being perforated by user 106, and determining whether a calendar associated with user 106 needs to be updated and/or optimized.

In some embodiments, computing device 104 and/or an application server 116 can dynamically update the activities and schedules for user 106 in real-time as user 106 progresses through his day. Computing device 104 can also present user 106 with any changes to his schedule, as well as any information related to his activities and/or schedule (e.g., travel information, information related to other activity participants, relevant documents, a list of items to bring to the activity, relevant coupons or advertisements, etc.).

During operation, computing device 104 can analyze the gathered information related to user 106 to determine an activity being performed by user 106, and to determine whether the activity affects a schedule associated with user 106 (e.g., whether the activity is a schedule-modifying event). Also, computing device 104 can periodically send the gathered information to application server 116, and application server 116 (e.g., a corporate server, or a server that provides a calendar-managing service) can analyze the gathered information to determine whether the activity being performed by user 106 affects a schedule associated with user 106 or some other entity. For example, user 106 may oftentimes work on projects with users 110 and 114, such that they may be participants of a common set of scheduled activities. Application server 116 may maintain calendar information for these scheduled activities in a shared calendar, or in separate calendars for each of these users.

PatentSwarm provides a collaborative workspace to search, highlight, annotate, and monitor patent data.

Start free trial Sign in