Multiple Event Calendar Processing

US 2009 319 319A1

drawing #0

Show all 6 drawings

A computer-implemented method of processing a plurality of events within a calendar application can include receiving a user input specifying a period of time within a calendar associated with a user, detecting a plurality of events occurring within the period of time, and determining at least one attribute for each of the plurality of events. An event clearing technique can be selected for each of the plurality of events according to the at least one attribute of each respective event. The specified time period can be cleared by executing the selected event clearing technique for each of the plurality of events, wherein an updated calendar is generated. The updated calendar can be output.

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 of processing a plurality of events within a calendar application, the method comprising:
receiving a user input specifying a period of time within a calendar associated with the user;
detecting a plurality of events occurring within the period of time;
determining at least one attribute for each of the plurality of events;
selecting an event clearing technique for each of the plurality of events according to the at least one attribute of each respective event;
clearing the specified period of time by executing the selected event clearing technique for each of the plurality of events, wherein an updated calendar is generated; and
outputting the updated calendar.

Show 11 dependent claims

13. A computer-implemented method of processing a plurality of events within a calendar application, the method comprising:
receiving a user input from a user specifying a period of time;
detecting a plurality of events occurring within the period of time;
determining a type for each of the plurality of events, wherein type depends upon whether the event is a meeting event;
selecting an event clearing technique for each of the plurality of events according to the type of the event;
clearing the specified period of time by executing the selected event clearing technique for each of the plurality of events, wherein an updated calendar is generated; and
outputting the updated calendar.

Show 2 dependent claims

16. A computer program product comprising:
a computer-usable medium comprising computer-usable program code that processes a plurality of events within a calendar application, the method comprising:
computer-usable program code that receives a user input specifying a period of time within a calendar associated with the user;
computer-usable program code that detects a plurality of events occurring within the period of time;
computer-usable program code that determines at least one attribute for each of the plurality of events;
computer-usable program code that selects an event clearing technique for each of the plurality of events according to the at least one attribute of each respective event;
computer-usable program code that clears the specified period of time by executing the selected event clearing technique for each of the plurality of events, wherein an updated calendar is generated; and
computer-usable program code that outputs the updated calendar.

Show 4 dependent claims

Description

BACKGROUND

Calendar applications can provide a graphical user interface (GUI) which enables a user to associate events with various time and/or dates in a calendar associated with the user. Providing a variety of viewing modes, such as daily, weekly, or monthly views of the schedule of the user, the calendar application supplies an interface through which the user can interact with scheduling information. The user can add calendar events by typing standard phrases into the GUI or via other user operations on objects internal or external to the calendar application.

Calendar applications can be an integral part of time and project management tools. This integration of applications allows the calendar application to serve as a central hub for scheduling, arranging meetings, and task management. This information can be shared between applications on a single data processing device, among clients sharing a central network server, and/or via a communications network, e.g., a wireless network or the Internet. As a result, multiple calendars can be manipulated, and shared among users, with the calendar application allowing the users various levels of access.

The sharing of scheduling information between the calendar application and another application can allow the user to affect calendar scheduling from within the user interface of the other application. For example, the user can open an electronic mail message from within an electronic mail application, wherein the electronic mail message contains an invitation to a future meeting. The GUI of the mail application can provide a selectable icon which, when activated by the user, can insert information related to the meeting into the calendar of the user. Upon the user accessing the calendar application, the event information is available within the calendar of the user, without the user having to manually enter the meeting information into the calendar application.

BRIEF SUMMARY OF THE INVENTION

The embodiments disclosed herein relate to calendar applications. One embodiment of the present invention can include a computer-implemented method of processing a plurality of events within a calendar application. The method can include receiving a user input specifying a period of time within a calendar associated with a user, detecting a plurality of events occurring within the period of time, and determining at least one attribute for each of the plurality of events. The method can include selecting an event clearing technique for each of the plurality of events according to the at least one attribute of each respective event, clearing the specified period of time by executing the selected event clearing technique for each of the plurality of events, wherein an updated calendar is generated. The updated calendar can be output.

Another embodiment of the present invention can include a computer-implemented method of processing a plurality of events within a calendar application. The method can include receiving a user input from a user specifying a period of time, detecting a plurality of events occurring within the period of time, and determining a type for each of the plurality of events, wherein type depends upon whether the event is a meeting event. The method can include selecting an event clearing technique for each of the plurality of events according to the type of the event, clearing the specified period of time by executing the selected event clearing technique for each of the plurality of events, wherein an updated calendar is generated. The updated calendar can be output.

Yet another embodiment of the present invention can include a computer program product including a computer-usable medium having computer-usable program code that, when executed, causes a machine to perform the various steps and/or functions described herein.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a first pictorial view illustrating a graphical user interface (GUI) for a calendar application in accordance with one embodiment of the present invention.

FIG. 2 is a second pictorial view illustrating a GUI for a calendar application in accordance with another embodiment of the present invention.

FIG. 3 is a flow chart illustrating a method of processing a plurality of events within a calendar application in accordance with another embodiment of the present invention.

FIGS. 4A-4B, taken collectively, form a flow chart illustrating a method of processing a plurality of events within a calendar application in accordance with another embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

As will be appreciated by one skilled in the art, embodiments of the present invention may take the form of a system, method, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.), or an embodiment combining software and hardware aspects that may all generally be referred to herein as a circuit, module or system. Furthermore, an embodiment of the present invention may take the form of a computer program product embodied in any tangible medium of expression having computer-usable program code embodied in the medium.

Any combination of one or more computer usable or computer readable medium(s) may be utilized. The computer-usable or computer-readable medium may be, for example, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples (a non-exhaustive list) of the computer-readable medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CDROM), an optical storage device, a transmission media such as those supporting the Internet or an intranet, or a magnetic storage device. Note that the computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory. In the context of this document, a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer-usable medium may include a propagated data signal with the computer-usable program code embodied therewith, either in baseband or as part of a carrier wave. The computer usable program code may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc.

Computer program code for carrying out operations of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the C programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).

The present invention is described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computer-readable medium that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks.

The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.

The embodiments disclosed herein, relate to group processing of calendar events within a calendar application. A user can specify a period of time using a graphical user interface (GUI) of the calendar application. Upon specifying the period of time, the system can search for one or more or all events occurring within the period of time. Attributes associated with each identified event can be determined and an event clearing technique can be selected for each event according to the attributes associated with each respective event. The user specified period of time can be cleared by processing each event using the event clearing technique selected for each detected event. Responsive to the processing of one or more or all of the events, an updated version of the calendar of the user can be generated and output.

FIG. 1 is a first pictorial view illustrating a GUI 100 for a calendar application in accordance with one embodiment of the present invention. In the embodiment that follows, the GUI 100 can represent an interface through which a user can access the calendar application. The GUI 100 can be used to access, enter, and edit event information within a calendar of the user. As used herein, an event, can refer to a meeting, task, appointment, deadline, reminder, or any other type of scheduling information that may be entered into a calendar application. An event typically will be associated with a time, date or both, e.g., via an alarm, reminder, or other mechanism. A calendar can refer to a collection of events maintained and/or stored in memory by a calendar application for a particular user or users.

As used herein, a system, can refer to a data processing system executing calendar application software on a data processing system suitable for storing and/or executing program code, whether a single user device running independently or a client and server executing cooperatively in a distributed computing environment. The data processing system suitable for storing and/or executing program code can include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.

Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the data processing system either directly or through intervening I/O controllers. Network adapters may also be coupled to the data processing system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modems, and Ethernet cards are just a few of the currently available types of network adapters.

As pictured, the GUI 100 presents the user with a month view of the calendar of the user. The GUI 100 can include a task bar 105, a clear block icon 110, and a plurality of calendar date boxes such as calendar date box 115. The task bar 105 contains various icons selectable by the user with a pointer 120 for performing various functions in the calendar application. It should be noted that GUI 100 can be implemented in a variety of ways and the representation of the calendar of the user can take on numerous forms. For example, the calendar view in FIG. 1 is the monthly calendar view with a series of selectable menus and icons through which the user can invoke functions of the application. Alternatively, the GUI can present a calendar view showing user activities scheduled within a single day, where the functionality of the application can be invoked with an exclusively menu driven architecture. As such, GUI 100 presents just one embodiment for invoking the functionality of the embodiments disclosed in this specification.

Using the pointer 120, the user can select the clear block icon 110. Responsive to activation of clear block icon 110, the system can initiate a process of specifying a period of time to be cleared in the calendar, and floating window 125 presented. As used herein, to clear, can refer a number of programmatic actions which lead to the removal of an event from within a predefined period of time. For example, clearing can refer to deleting, declining, delegating, and/or rescheduling an event. In the floating window 125, the user can enter a start date and an end date specifying the period of time to be cleared in the calendar. Although floating window 125 is used herein, various mechanisms can be used to allow the user to specify the period of time. For example, the user can align pointer 120 over calendar date box 115, select calendar date box 115, and drag the pointer 120 across a block of calendar date boxes. The drag operation can select one or more calendar date boxes as the range of calendar dates to be cleared in the calendar.

As shown, each calendar date box, e.g., such as calendar date box 115, can display events occurring within a particular period of time in the calendar. Each event can specify at least a time associated with the event. Other information that may be associated with each event can include, but is not limited to, a period of time, a location, attendees of the event, comments related to the event, or other information. It should be noted that the period of time represented by the calendar date box 115 may not be a single day, but can represent any unit of time, e.g., a week, 8 hours or a single hour, as determined by the selected calendar view.

Responsive to the selection of the period of time to be cleared, the system can search for events stored within the calendar application and identify events that occur or are associated with a date and/or time within the specified period of time. Upon detecting a plurality of events in the specified period of time, the system can generate a list specifying the detected events as well as the information associated with each detected event.

FIG. 2 is a second pictorial view illustrating the GUI 100 for a calendar application in accordance with another embodiment of the present invention. FIG. 2 depicts the GUI 100 of FIG. 1 after a period of time to be cleared has been specified and a list of events occurring within the specified time has been compiled or detected.

Having specified the time period to be cleared, a visual indicator 130 can be displayed in the GUI 100. The visual indicator 130 graphically indicates to the user the specified period of time to be cleared. It should be appreciated that, the specified period of time to be cleared can be indicated using any of a variety of techniques and the embodiments disclosed herein should not be limited to the examples shown. For instance, each calendar block within the specified period of time can be highlighted, shaded or blackened to indicate that the calendar block is within the specified period of time to be cleared and that no further events will be accepted that occur within the specified period of time, e.g., on a shaded calendar block. In addition, the user may be prevented from making additional entries to the specified period of time and invitations to events occurring within the specified period of time may be declined, automatically.

Having detected the list of events to be cleared within the specified period of time, the system can identify attributes of the each detected event. Attributes of an event can include, but are not limited to, a time of the event, a location for the event, invitees to the event, a subject of the event, a duration of the event, whether the event is a recurring event, e.g., a weekly meeting, or any other characteristic of the event that may enable the system to select an event clearing technique for the event, e.g., meeting leader or organizer, essential participants, non-essential participants, etc.

The event clearing technique can be determined for each event of the list of events according to the attributes associated with each event. As used herein, an event clearing technique, can refer to a method of processing an event which automatically clears the event and implements any further processing required for resolving the event. For example, the event clearing technique can delete an event from the calendar of the user. The event clearing technique can remove the event from the calendar of the user and transmit an electronic message to one or more others associated with the event, e.g., send a declination message. In another example, the event clearing technique can delete an event and transmit a message delegating the event to another user. In still another example, an event clearing technique can reschedule an event to a time and/or date that is outside of the period of time to be cleared.

In one embodiment, the GUI 100 can graphically display, within a window 135, a list containing each of the events detected within the specified period of time. The list of detected events in window 135 can be reviewed by the user. Any events within window 135 that may be determined by the user to require special processing can be selected for manual processing by the user. Further, the system can present information related to any user selected events and provide an interface from which the user can manually process the event(s).

For example, clearing the 11:30 a.m. management review meeting, denoted as event 140, in calendar date box 115 may require the forwarding of review documents by the user to a supervisor. The extra step of transmitting the review documents can lead the user to determine that an automated event clearing technique is inadequate to properly process the clearing of event 140. Selecting the event 140 with the pointer 120 from the list in window 135, the user can indicate to the system that manual processing of event 140 is desired. Upon the user completing the manual processing of event 140, the remainder of the events in window 135 can be automatically processed by the system using the particular event clearing technique automatically selected for each respective event.

Responsive to each detected event being cleared, the calendar of the user can be updated, and the updated calendar of the user can be output. As used herein, output or outputting can include, but is not limited to, storing data in memory, e.g., writing to a file, writing to a user display or other output device, e.g., playing audible notifications, sending or transmitting to another system, exporting, or the like.

In one embodiment, event information associated with a current state of each of the cleared events can be stored and, responsive to a user input subsequent to the clearing of the events, restored to a time and/or date location occupied in the calendar of the user prior to the events being cleared. In this manner, the user can avoid re-entering cleared event information, e.g. time and/or date of the event, attendees of the event, or the like, when, at a time subsequent to the clearing of the specified period of time, the user wishes to restore the information or place his or her calendar in the state that existed prior to the automated clearing of the events.

For example, on a Monday the user may clear the following week of events in order to leave town to address a problem with a customer. On Wednesday, the problem with the customer can be resolved, thereby eliminating the need to leave town. Responsive to an input from the user, a restore function can be implemented by the system which returns the events, and the information associated with the events, to an original time and/or date location occupied by the events prior to the clearing operation.

In another embodiment, the clearing of the user specified period of time can be delayed for a pre-determined period of time. For example, the user can specify a week in the calendar of the user to be cleared, but indicate that clearing operations are not to be implemented until two days prior to the week to be cleared. In this manner, when the user may be unsure whether the period of time requires clearing, the clearing request can be input to the system, but the process of clearing the specified period of time can be delayed for a period of time necessary to determine that the clearing of the specified the period of time is required.

In yet another embodiment, a common response can be transmitted to each user associated with each cleared event. For example, as an event is processed, an electronic message Bill will be unable to attend the meeting can be transmitted to each member associated with the meeting.

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

Start free trial Sign in