INTEGRATED CALENDAR AND TASK SCHEDULER

US 2009 89 133A1

drawing #0

Show all 7 drawings

A computer implemented method for integrating a calendar and task scheduler to enable automatic scheduling of meetings and assignment of tasks based on priority. With the illustrative embodiments, a task in a user's calendaring system may be split into multiple time blocks, and each time block for the task may then be scheduled around meetings in a user's calendar. Tasks that are scheduled in the user's calendar may also be automatically rescheduled when meetings within the user's calendar change. Tasks may be scheduled over lower priority meetings in the user's calendar as needed in order to meet the due dates assigned to the tasks. The illustrative embodiments also allow for automatically adjusting meeting or task priorities based on policies, and identifying classes of activities that may be performed concurrently.

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 for managing a user's tasks within an integrated calendaring and task scheduler, the computer implemented method comprising:
creating a first task to be performed by a user in the user's calendaring and task scheduler, wherein the first task comprises a completion block of time;
determining if there is an available block of free time prior to a due date of the first task in the user's calendaring and task scheduler;
responsive to determining that there are no available blocks of free time in the user's calendaring and task scheduler prior to the due date of the first task, comparing a priority level of the first task and a priority level of a meeting or second task scheduled in the calendaring and task scheduler; and
responsive to determining that the priority level of the meeting or second task is lower than the priority level of the first task, scheduling the first task over at least a portion of a time block of the lower priority meeting or second task.

Show 6 dependent claims

8. A computer implemented method for managing tasks within an integrated calendaring and task scheduler, the computer implemented method comprising:
assigning a priority level to a task when the task is created in a user's calendaring and task scheduler;
comparing a due date of the task against a completion date of the task; and
responsive to determining that the due date of the task is within a predetermined proximity to the completion date of the task, adjusting the priority level of the task based on the predetermined proximity of the due date to the completion date.

Show 8 dependent claims

17. A computer implemented method for managing tasks within an integrated calendaring and task scheduler, the computer implemented method comprising:
creating classes of activities comprising meetings and tasks in a user's calendaring and task scheduler;
specifying pairs of classes wherein inclusion of a meeting or task in one of the pair of the class of activities allows a meeting or task in the other class of the pair to be performed concurrently; and
scheduling the two or more meetings or tasks within a same block of time in the user's calendaring and task scheduler.
18. A computer implemented method for scheduling a meeting among calendaring systems, the computer implemented method comprising:
sending, from a meeting coordinator's calendaring system to a plurality of invitee calendaring systems, a request for a list of available meeting times for a proposed meeting, wherein the request passes information to be used by each invitee's calendaring system to assign a priority level to the proposed meeting;
responsive to each invitee's calendaring system receiving the request, determining the priority of the proposed meeting using the information;
compiling a list of free times of length greater than or equal to the length of the proposed meeting;
compiling a list of lower priority times allocated to lower priority calendar items of length greater than or equal to the length of the proposed meeting;
providing the lists from each invitee's calendaring system to the meeting coordinator's calendaring system, wherein the meeting coordinator's calendaring system computes an intersection of the free time lists and an intersection of the lower priority time lists, wherein the intersection of the free time lists and the intersection of the lower priority time lists are presented to the meeting coordinator as available times for the proposed meeting;
using the intersection of the free time lists and the intersection of the lower priority time lists to select a time to schedule the proposed meeting; and
sending a meeting invitation comprising the selected time of the scheduled meeting to each invitee's calendaring system.

Show 2 dependent claims

Description

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to an improved data processing system, and in particular to a computer implemented method for integrating a calendar and task scheduler to enable automatic scheduling of meetings and assignment of tasks based on priority.

2. Description of the Related Art

An electronic calendar system is designed to maintain useful information for a user. Electronic calendar systems allow maintenance of a personal schedule of activities such as meeting appointments, teleconference schedules, vacation and business travel plans, and so forth. Examples of electronic calendaring systems include Microsoft Outlook 2000, Lotus Organizer, and Lotus NoteS. Such systems are quite popular among users. Outlook is a trademark of Microsoft Corporation. Lotus Organizer and Lotus Notes are trademarks of International Business Machines Corporation.

Use of electronic calendaring systems for purposes such as scheduling meetings of multiple persons is known in the art. Conventional electronic calendar systems allow users to send electronic invitations to other users and for a user receiving an electronic calendar invitation to either accept or decline the invitation. An invitation typically includes a description of the event, a location of the event, and a scheduled start and end time of the event. An invitation decline message may be returned to the user that issued the invitation when the invitation is declined by an invited user. Likewise, an invitation acceptance message may be returned to the user that issued the invitation when the user accepts the invitation. When a user accepts an invitation, the scheduled event is recorded in the electronic calendar of the accepting user. Additionally, a record of the calendar of the user that issued the invitation is updated to reflect the expected attendance by the accepting user. Accordingly, the calendar of the user that issued the invitation includes an indication of the number of users that have accepted the invitation and the inviting user can plan for the event in response to the anticipated attendance.

For example, an invitation list may be created for a particular meeting, and a calendaring software application may then use this list to check each invitee's calendar for available time periods. A meeting may then be scheduled during a time period in which all, or some majority, of the invitees have sufficient time available on their calendar.

Conventional task planning tools in a calendaring system allow a user to schedule tasks to be performed by the user within blocks of time allocated for project work. The user may also estimate the time needed to complete a task, set start times and due dates for the task, and record the completion of the task. For example, a user may schedule a block of time for a task against free time in the user's calendar. The free time may include any time in which the user does not have a scheduled meeting of appointment in the calendar. However, with conventional task planning tools, when meetings and appointments are added or removed from the user's calendar, the user must manually adjust the blocks of time allocated for tasks. Thus, if the user is invited to a new meeting which occurs during a block of time already allocated to a task, the user must manually adjust the time allotted to the task to another block of free time in the user's calendar.

From a meeting scheduling perspective, the coordinator of a meeting must typically do a lot of coordination via the telephone or electronic mail to find a time slot when the meeting participants can get together. When scheduling a meeting, this coordination is necessary in existing calendaring systems because the free time shown on a user's calendar does not reflect any priorities of the user. For instance, the user may have multiple meetings and tasks scheduled in the user's calendar. Since the meeting coordinator has no way to determine whether a meeting or a task in the user's calendar has a higher priority than the meeting to be scheduled, the meeting coordinator must contact the user to determine whether the time blocked for another meeting or task is a hard commitment, or whether the time could be made available if the priority of the existing task or meeting is low.

SUMMARY OF THE INVENTION

The illustrative embodiments provide a computer implemented method for integrating a calendar and task scheduler to enable automatic scheduling of meetings and assignment of tasks based on priority. A task to be performed by a user is created in the user's calendaring and task scheduler. The task comprises a completion block of time. A determination is then made as to whether there is an available block of free time prior to a due date of the task in the user's calendaring and task scheduler. If there are no available blocks of free time in the user's calendaring and task scheduler prior to the due date of the task, the priority level of the task is compared to the priority level of a meeting or second task scheduled in the calendaring and task scheduler. If the priority level of the meeting or second task is lower than the priority level of the task, the task is scheduled over at least a portion of a time block of the lower priority meeting or second task.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:

FIG. 1 is a exemplary block diagram of a data processing system in which the illustrative embodiments may be implemented;

FIG. 2 is an exemplary block diagram illustrating components of a calendaring and task scheduling device in accordance with the illustrative embodiments;

FIG. 3 is an exemplary block diagram illustrating calendar and task scheduling applications in accordance with the illustrative embodiments;

FIG. 4 is a flowchart illustrating an exemplary process for scheduling a meeting or appointment in accordance with the illustrative embodiments;

FIG. 5 is a flowchart illustrating an exemplary process for creating a task in accordance with the illustrative embodiments;

FIG. 6 is a flowchart illustrating an exemplary process for scheduling a task in accordance with the illustrative embodiments;

FIG. 7 is a flowchart illustrating an exemplary process for rescheduling a task in accordance with the illustrative embodiments;

FIG. 8 is a flowchart illustrating an exemplary process for rescheduling a task in accordance with the illustrative embodiments; and

FIG. 9 is a flowchart illustrating an exemplary process for scheduling a meeting in accordance with the illustrative embodiments.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

Turning now to FIG. 1, a diagram of a data processing system is depicted in accordance with an illustrative embodiment of the present invention. In this illustrative example, data processing system 100 is shown to include communications fabric 102, which provides communications between processor unit 104, memory 106, persistent storage 108, communications unit 110, input/output (I/O) unit 112, and display 114, although one or more of these components may be omitted from the data processing system.

Processor unit 104 serves to execute instructions for software that may be loaded into memory 106. Processor unit 104 may be a set of one or more processors or may be a multi-processor core, depending on the particular implementation. Further, processor unit 104 may be implemented using one or more heterogeneous processor systems in which a main processor is present with secondary processors on a single chip. As another illustrative example, processor unit may be a symmetric multiprocessor system containing multiple processors of the same type.

Memory 106, in these examples, may be, for example, a random access memory. Persistent storage 108 may take various forms depending on the particular implementation. For example, persistent storage 108 may be, for example, a hard drive, a flash memory, a rewritable optical disk, a rewritable magnetic tape, or some combination of the above.

Communications unit 110, in these examples, provides for communications with other data processing systems or devices. In these examples, communications unit 110 is a network interface card. Communications unit may provide communications through the use of either or both physical and wireless communications links.

I/O unit 112 allows for input and output of data with other devices that may be connected to data processing system 100. For example, I/O unit 112 may provide a connection for user input through a keyboard and mouse. Further, I/O unit 112 may send output to a printer. Display 114 may be provided to display information to a user.

Instructions for the operating system and applications or programs are located on persistent storage 108. These instructions may be loaded into memory 106 for execution by processor unit 104. The processes of the different embodiments may be performed by processor unit 104 using computer implemented instructions, which may be located in a memory, such as memory 106.

It should be appreciated that FIG. 1 is only exemplary and are not intended to assert or imply any limitation with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environments may be made.

The illustrative embodiments provide a mechanism for integrating a calendar and task scheduler to enable automatic scheduling of meetings and assignment of tasks based on priority. A calendar tool is provided which allows a user to schedule meetings and appointments. A task planning tool is also provided which allows the user to enter information about tasks to be performed by the user. With the illustrative embodiments, the integrated calendar and task scheduler uses a scheduling algorithm which allocates blocks of time in which the user will work on the tasks. These tasks are typically allocated to free time in the user's calendar. Free time is time not otherwise allocated to meetings, appointments, or other tasks. If a particular task requires more time for completion than an available block of free time, the calendar and task scheduler in the illustrative embodiments may split the time allocated to complete the task into multiple time blocks to avoid overlapping any existing appointments and meetings. These multiple time blocks are then scheduled in the free time between meetings and appointments as needed to complete the task.

When entering tasks in the task scheduler, the user assigns a minimum block of time to each task. This minimum block of time comprises the minimum amount of time necessary to work on the particular task at one sitting. For example, if a task has a 5 minute start up and shut down time, it may not be worthwhile to the user to schedule the task in a 15 minute block of free time between appointments. Instead, the user may assign a minimum time block of 1 hour to the task. This minimum block of time for each task should also be considered when splitting the time allocated to complete a task into multiple time blocks.

The user may also assign a priority level to each meeting and task. The priority level may be a numerical value which indicates the importance of a particular meeting or task. Meetings and tasks with higher priority levels may be performed before other tasks with lower priority levels. Priorities are assigned to meetings and tasks so that when work on a higher priority task conflicts with a lower priority task or meeting, the higher priority task may be scheduled during lower priority meetings as needed in order to complete the higher priority task by the task's due date. Such lower priority tasks may be reallocated to a different time block in the user's calendar, and lower priority meeting may be cancelled, declined, or rescheduled. In addition, when scheduling a meeting, lower priority tasks or meetings may not appear in the user's calendar as booked if the meeting that is being scheduled has a higher priority. It should be noted that the person or entity initiating a meeting with the user may suggest a priority for the meeting, which the user may factor in depending on criteria defined by the user.

The priority level assigned to each task may be changed automatically by the scheduling algorithm. For example, as the due date for a task approaches, the priority for the task may increase. In another example, the priority for a task may increase according to the number of changes to the published schedules of the task, thereby acting as a procrastination limit for the user.

The user may also assign meetings or tasks to classes which comprise specific sets of activities that may be performed by the user concurrently, thereby allowing these sets of activities to overlap on the user's calendar. These activities are typically low concentration activities. For example, meetings in the class participate in a telephone conference call may be specified to occur concurrently with tasks in the class travel to the airport. The calendar and task scheduler in the illustrative embodiments may automatically double-book such identified items to allow multi-tasking on more than one task or meeting.

When the user enters one or more unscheduled tasks in the task scheduling tool, the scheduling algorithm in the illustrative embodiments locates the highest priority unscheduled and uncompleted task whose minimum time block fits into the next available block of free time. This identified task should have no unresolved dependencies on other tasks or meetings. If there are multiple tasks which meet these initial criteria, the scheduling algorithm gives preference to the task that has the least remaining time to completion. If the next available block of free time is less than or equal to the remaining time needed to complete the selected task, all of the next available free time is allocated to the task. If the next available block of free time is greater than the remaining time needed to complete the selected task, a portion of the next available free time comprising an amount of time equal to the time remaining for completion of the task is allocated to the task. In either case, the available free time (up to the remaining time for completion of the task) is allocated to the task and marked scheduled (no longer free) in the calendar. The scheduling algorithm repeats this process until all unscheduled tasks are scheduled.

As meetings and appointments are added to or removed from the user's calendar, the blocks of time which are allocated to scheduled tasks are automatically rescheduled based on priorities assigned to the meetings and the tasks. A free time function in the scheduling algorithm first looks for free time in the user's calendar to reschedule a task. The free time function then looks for time availability based on time blocks already booked for lower priority meetings or tasks. In this manner, tasks may be ordered based on the priority assigned to each task, and then the tasks are rescheduled within the free time indicated in the user's calendar, or within time blocks that already contain scheduled meetings or tasks but have a lower priority than the rescheduled task.

Turning now to FIG. 2, an exemplary block diagram illustrating components of a calendaring and task scheduler device is shown in accordance with the illustrative embodiments. Calendaring and task scheduler client device 200 may include, for example, graphical user interface (GUI) 202, calendar application 204, task application 206, application programming interface (API) 208, and operating system (OS) 210.

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

Start free trial Sign in