Configurable Setting Method and Computing Device for Automatic Update of Calendar Items

By introducing a selective update engine in the electronic calendar system, the shortcomings of conference updates in the existing system are solved, automated conference update processing and efficiency improvement are achieved, and the system and user experience is improved.

CN111886617BActive Publication Date: 2025-05-27MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN201980019119.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2018-03-14
Filing Date
2019-03-07
Publication Date
2025-05-27
Estimated Expiration
2039-03-07

AI Technical Summary

Technical Problem

Existing e-calendar systems have flaws when meeting updates, such as meeting invitees may not be able to accept updates, it is difficult to determine the specific change of the update, and meeting updates can lead to email inbox confusion and overloaded email servers.

Method used

Introduced a selective update engine that can be configured to determine whether a meeting update is executable and automatically update calendar items or delete meeting updates when it is not executable, reducing dependence on meeting invitee inputs, and improving system efficiency by filtering and automatically processing meeting updates.

Benefits of technology

Through the selective update engine, it solves the confusion caused by the inability to accept updates and updates to the conference invitees, improves the performance of the email server and reduces the load on the email inbox of the conference invitees.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN111886617B_ABST
    Figure CN111886617B_ABST
Patent Text Reader

Abstract

Techniques for configuring settings for automatic updates of calendar items in an electronic calendar system are disclosed in this application. In one embodiment, a server may receive and store an update configuration record that indicates that a change to a start date, start time, end date, end time, or location of a meeting will make a meeting update executable. When an incoming meeting update is received, the server may determine whether the incoming meeting update includes a change to one of the start date, start time, end date, end time, or location. If so, the server may automatically modify the scheduled meeting appointment in the recipient's calendar folder according to the received incoming meeting update without any input from the recipient.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] An electronic calendar is a software application designed to provide an electronic version of a physical calendar to users. Such software applications typically provide an appointment book, an address book, and a contact list. For example, an electronic appointment book can provide functions such as sending electronic meeting invitations, receiving and notifying of newly received meeting invitations, and a mechanism for accepting, rejecting, or suggesting a new date / time for a received meeting invitation. Once a meeting invitation is accepted, the electronic appointment book can also store the meeting as a calendar item and track the current date / time to provide reminders for scheduled meetings. Summary of the Invention

[0002] This summary is provided to introduce some concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.

[0003] An electronic calendar system can assist in scheduling meetings, recording reminders, or performing other appropriate calendar functions. For example, a meeting organizer can use the electronic calendar system to generate and send an electronic meeting invitation to meeting invitees via, for example, email. The meeting invitation can include a start date / time, an end date / time, a location, a discussion topic, a list of invitees, one or more additional documents, or other suitable meeting details. Once a meeting invitee accepts the meeting invitation, the electronic calendar system can store the meeting appointment along with the meeting details as a calendar item in the electronic appointment book of each meeting invitee.

[0004] These meeting appointments and other suitable types of calendar items may be updated from time to time. For example, a meeting organizer can modify one or more of the meeting details of a scheduled meeting after the meeting invitation has been sent to the meeting invitees and / or the meeting invitees have accepted the meeting invitation. The meeting organizer can request a modification to the location, start date / time, end date / time, description, schedule, and / or other details of a scheduled meeting. Once the modification is received, the electronic calendar system can generate and send a meeting update reflecting the modified meeting details to each meeting invitee.

[0005] In some electronic calendar systems, all meeting updates are sent as emails to the email inboxes of each meeting invitee for action by that meeting invitee. Once the meeting invitee accepts, the electronic calendar system can update the calendar entry previously stored in each meeting invitee's electronic calendar book. However, this update technique may have certain drawbacks. For example, the meeting invitee may be using a client device (e.g., a smartphone) that lacks the ability or functionality to accept the meeting update. The meeting invitee may also have difficulty determining which parts of the meeting details have changed. Additionally, these meeting updates may cause clutter in the meeting invitee's email inbox and impose a heavy workload on the corresponding email server.

[0006] Several embodiments of the disclosed technology can address at least some of the above drawbacks by implementing a selective update engine in the electronic calendar system. The selective update engine can be configured to determine whether a meeting update is executable or configured by the meeting invitee when the meeting update arrives at the meeting invitee's email folder. In some embodiments, a meeting update is executable when the electronic calendar system requires input from the meeting invitee to process the meeting update. For example, a meeting update is executable when the meeting update specifically mentions or requests input from the meeting invitee. In another example, a meeting update is executable when one or more "critical" meeting details have been modified. These critical meeting details can include, for example, start date / time, end date / time, etc. The critical meeting details can be pre-configured by, for example, a system administrator, or can be configured by the meeting invitee or other appropriate entity.

[0007] Once it is determined that a meeting update is not executable, the selective update engine can automatically update the calendar entry previously stored in the electronic calendar book without input from the meeting invitee. The selective update engine can also automatically delete the received meeting update from the meeting invitee's email folder, for example, by moving the received meeting update to the "Deleted Items" folder. On the other hand, once it is determined that the meeting update is executable, the selective update engine can be configured to forward the received meeting update (e.g., as an email) to the inbox in the meeting invitee's email folder for further action.

[0008] Certain embodiments of the disclosed technology can improve the efficiency of updating calendar entries in an electronic appointment book by filtering received meeting update messages according to one or more configurable execution criteria. When a meeting update contains only modifications to non-critical meeting details, the selective update engine can automatically incorporate the modification into the stored calendar entry without input from the meeting invitees. Thus, the lack of the ability to accept the meeting update on the client device can be eliminated. Additionally, by automatically deleting at least some of the received meeting updates, certain embodiments of the disclosed technology can reduce the clutter in the meeting invitees' email inboxes and reduce the workload of the corresponding email server. Thus, the performance of the email server and / or the corresponding email service can be improved. BRIEF DESCRIPTION OF THE DRAWINGS

[0009] Figures 1A to 1D is a schematic diagram showing an electronic calendar system that implements selective updates of calendar entries during certain operational phases according to an embodiment of the disclosed technology.

[0010] Figure 2 is an example user interface suitable for configuring user-adjustable critical meeting details according to an embodiment of the disclosed technology.

[0011] Figure 3 and Figure 4 is a flowchart showing the processing procedure for selective updates of calendar entries according to an embodiment of the disclosed technology.

[0012] Figure 5 is suitable for Figures 1A to 1D certain components of the electronic calendar system in DETAILED DESCRIPTION

[0013] Certain embodiments of systems, devices, components, modules, routines, data structures, and processing procedures for selective updates of calendar entries in a computing system are described below. In the following description, specific details of the components are included to provide a thorough understanding of certain embodiments of the disclosed technology. Those skilled in the relevant art should also understand that the technology can have additional embodiments. It is also possible to practice the technology without some of the details of the embodiments described below with reference to Figures 1A to 5 the embodiments described.

[0014] As used in this application, the term "calendar server" generally refers to a computer or server dedicated to running a software application configured to provide an electronic version of an entity calendar to one or more users. Such an application typically can provide an email folder, a appointment book, an address book, and a contact list. For example, such an application can provide functions such as generating electronic meeting invitations / updates, receiving and notifying of newly received meeting invitations, and a mechanism for accepting, rejecting, or suggesting a new date / time for any received meeting invitation. Examples of such applications include Microsoft qmail, Exim, and sendmail. A calendar server can also be configured to provide a calendar folder for a user. The calendar folder can contain data representing calendar items such as meeting appointments, reminders, and the like. The calendar folder can also be synchronized with a corresponding local calendar folder on a client device accessible by the user via a computer network such as the Internet.

[0015] Also used in this application, the term "meeting invitation" generally refers to a digital data packet containing a request for a meeting with one or more invitees or other suitable types of users. The meeting request can contain structured or unstructured data representing various data fields. For example, example data fields can include the identity of the meeting organizer of the meeting, start date / time, end date / time, location, meeting description, or other appropriate parameters or details. As used in this application, the term "meeting update" generally refers to a digital data packet containing data representing one or more changes to the start date / time, end date / time, location, meeting description, or other appropriate parameters or details of a meeting.

[0016] In some electronic calendar systems, all meeting updates are sent as emails to the email inbox of each meeting invitee for the meeting invitee to act on. However, this update technique may have certain drawbacks. For example, the meeting invitee may be using a client device that lacks the ability to accept the meeting update. The meeting invitee may also have difficulty determining which part of the meeting details has changed. Additionally, such meeting updates may cause clutter in the meeting invitee's inbox and impose a heavy workload on the meeting invitee's email server.

[0017] Certain embodiments of the disclosed technology are directed to a selective update engine implemented in an electronic calendar system for filtering received meeting updates. The selective update engine can determine whether a particular meeting update is actionable by a meeting invitee based on a set of pre-configured criteria or rules. For example, a meeting update is actionable when it specifically mentions or requests input from the meeting invitee. In another example, a meeting update is actionable when one or more "critical" meeting details (e.g., start date / time or end date / time) have been modified. Critical meeting details can be pre-configured by, for example, a system administrator, or can be configured by the meeting invitee or other appropriate entity.

[0018] For meeting updates determined to be non-actionable, the selective update engine can automatically update the previously stored calendar item in the electronic calendar book without input from the meeting invitee. The selective update engine is also capable of deleting the received meeting update from the meeting invitee's email folder, for example, by moving the received meeting update to a "deleted items" folder. Thus, not all meeting updates will be directly forwarded to the meeting invitee's inbox. Accordingly, the lack of the ability to accept meeting updates on the client device can be avoided. Additionally, by automatically deleting at least some of the received meeting updates, clutter in the meeting invitee's inbox and the corresponding email server workload can be reduced. Thus, as described in more detail below with reference to Figures 1A to 5 the performance of the email server and / or the corresponding email service can be improved.

[0019] Figures 1A to 1D is a schematic diagram of a computing system 100 that illustrates intelligent management of calendar items during certain operational phases in accordance with embodiments of the disclosed technology. In Figure 1A and other figures in this application, various software components, objects, classes, modules, and routines can be computer programs, processes, or procedures written in C, C++, C#, Java, and / or other suitable programming languages. Components can include, but are not limited to, one or more modules, objects, classes, subroutines, properties, processes, threads, executables, libraries, or other components. Components can be in source code or binary form. Components can include aspects of source code prior to compilation (e.g., classes, properties, programs, routines), compiled binary units (e.g., libraries, executables), or artifacts (e.g., objects, processes, threads) instantiated and used at runtime.

[0020] Components in a system can take different forms within the system. As an example, a system including a first component, a second component, and a third component can, but is not limited to, include a system where the first component is an attribute in source code, the second component is a binary compiled library, and the third component is a thread created at runtime. The computer program, process, or treatment can be compiled into an object, middleware, or machine code and be submitted for execution by one or more processors of a personal computer, a network server, a laptop computer, a smartphone, and / or other suitable computing devices.

[0021] Similarly, components can include hardware circuits. Those of ordinary skill in the art should recognize that hardware can be considered solidified software, and software can be considered liquefied hardware. Just as an example, software instructions in a component can be burned into a programmable logic array circuit, or can be designed as a hardware circuit with appropriate integrated circuits. Similarly, hardware can be emulated by software. Various implementations of source code, middleware, and / or object code and associated data can be stored in a computer memory including read-only memory, random access memory, disk storage media, optical storage media, flash devices, and / or other suitable computer-readable storage media not including propagated signals.

[0022] As Figure 1A shown, the computing system 100 can include a computer network 104 that interconnects client devices 102 with one or more calendar servers 106. The client devices 102 can correspond to a meeting organizer 101 and one or more meeting invitees 103, respectively. For illustrative purposes, two meeting invitees 103a and 103b are shown in Figures 1A to 1D but the computing system 100 can be configured to accommodate any appropriate number of meeting invitees 103. The computer network 104 can include an intranet, a wide area network, the Internet, or other suitable types of networks.

[0023] The calendar server 106 is interconnected with email folders 114a and 114b and calendar folders 115a and 115b that respectively correspond to the meeting invitees 103. The calendar server 106 can also be interconnected to a data store 108 that contains one or more records 110 of update configurations, each of which has data representing a set of preconfigured execution criteria, and each execution criterion identifies the conditions under which input from a meeting invitee is required to process a meeting update at the calendar server 106. In some embodiments, the update configurations 110 can be preconfigured by a system administrator (not shown). In other embodiments, the meeting invitees 103 can configure at least some of the update configurations 110 via a user interface provided by the calendar server 106. Referring below to Figure 2A sample user interface is described in more detail.

[0024] Although specific components of the computing system 100 are shown in Figure 1A , in other embodiments, the computing system 100 may also include additional and / or different components or arrangements. For example, in certain embodiments, the computing system 100 may further include additional network storage devices, additional servers, and / or other suitable components (not shown). In other embodiments, the data storage 108 may be integrated into the calendar server 106.

[0025] The client devices 102 may each include computing devices that assist the corresponding meeting organizer 101 or meeting invitee 103 in accessing the computing services provided by the calendar server 106 via the computer network 104. For example, in the illustrated embodiment, the client devices 102 each include desktop computers configured to execute appropriate instructions to provide web pages, email clients, calendar clients, contact lists, or other suitable computing services. In other embodiments, the client devices 102 may also include laptop computers, tablet computers, smart phones, or other suitable computing devices.

[0026] In aspects in accordance with the disclosed technology, the calendar server 106 may be configured to filter received meeting updates 118 (shown in Figure 1B ) and automatically update the corresponding calendar entries based on pre-configured executable criteria included in the update configuration 110. As shown in Figure 1A , the calendar server 106 may include one or more processors 304 (shown in Figure 5 ) and a memory 306 (shown in Figure 5 ), which contains instructions executable by the one or more processors to cause the calendar server 106 to provide operatively coupled input components 132, a selective update engine 136, and output components 138. Although specific components of the calendar server 106 are shown in Figure 1A , in other embodiments, the calendar server 106 may also include network interface components, database management components, or other suitable types of components.

[0027] The input component 132 may be configured to receive a meeting request 116 from the meeting organizer 101 via the client device 102 and the computer network 104. As shown in Figure 1A , in certain embodiments, the meeting organizer 101 may generate and send the meeting request 116 via a user interface 142 displayed on the client device 102. The user interface 142 may be part of a web page of a calendar service (e.g., Google ), or a calendar client (e.g., Microsoft ) as part of. In other embodiments, the meeting organizer 101 may generate and send a meeting request 116 via an application on a mobile device or in other suitable ways.

[0028] The user interface 142 may include a plurality of data fields 143 that contain parameters or details of the requested meeting that can be configured by the meeting organizer 101. In Figure 1A the example shown, the data fields 143 include a subject field 143a (i.e., "Project Progress Review"), a location field 143b (i.e., "Main Conference Room"), a start time field 143c (i.e., "Tuesday 2 / 1 / 2018 1:00 PM"), an end time field 143d (i.e., "Tuesday 2 / 1 / 2018 2:00 PM"), and a description field 143e (i.e., "To be provided"). The user interface 142 may also include action elements (e.g., a "Send" button 148), and its action may cause a web service or application corresponding to the user interface 142 to generate and send a meeting request 116 with the aforementioned parameters or details. In other embodiments, the user interface 142 may also include data fields 143 for configuring reminder periods, time zones, meeting records, or other suitable parameters.

[0029] Then, the input component 132 can be configured to receive and optionally preprocess the received meeting request 116. For example, in some embodiments, the input component 132 can be configured to authenticate the meeting request 116 based on a digital certificate attached to the meeting request 116. In other embodiments, the input component 132 can be configured to determine whether the meeting request 116 actually comes from the meeting organizer 101 based on, for example, the public key of the meeting organizer 101. In other embodiments, the input component 132 can also be configured to verify that the meeting request 116 is in an acceptable data format, contains necessary data values, and / or perform other suitable operations on the meeting request 116. Once the optional preprocessing is completed, the input component 132 can forward the meeting request 116 to the email folder 114 and the client device 102 of the meeting invitee 103, as Figure 1A shown.

[0030] In Figure 1AIt is also shown that once a meeting invitee 103 accepts a meeting request 116, for example, by providing an input to the client device 102, the output component 138 can be configured to create a calendar entry 117 and store it in the calendar folder 115 of the corresponding meeting invitee 103. Each calendar entry 117 can include values contained in a plurality of data fields 143 included in the meeting request 116, as well as reminder, classification, category, or other suitable information regarding the calendar entry 117.

[0031] The calendar entries 117 stored in the calendar folder 115 can be updated from time to time. For example, as Figure 1B shown, the meeting organizer 101 can decide to modify the description field 143e, for example, to replace "To be provided" with "Quick review of the progress of project dynamo". Once an action on the "Send update" button 149 is received, a meeting update 118 can be generated and sent to the calendar server 106. In Figure 1B this, a specific modification to the meeting request 116 ( Figure 1A ) is shown for illustrative purposes. In other embodiments, additional and different modifications can also be accommodated, and examples thereof are described in more detail below with reference to Figures 1B to 1D more detail.

[0032] Once the meeting update 118 is received, the input component 132 can perform the optional preprocessing described above and forward the meeting update 118 to the selective update engine 136 for selective automatic processing. In certain embodiments, the selective update engine 136 can be configured to determine whether the meeting update 118 is executable by the meeting invitee 118 according to the update configuration 110 in the data store 108. In certain implementations, the meeting update 118 is executable when the calendar server 106 requires input from the meeting invitee 103 to process the meeting update 118. For example, the meeting update 118 is executable when the meeting update 118 specifically mentions or requests input from the meeting invitee 103 (e.g., the first meeting invitee 103a). In another example, the meeting update 118 is executable when one or more "critical" meeting details have been modified. Such critical meeting details can include, for example, start date / time, end date / time, etc. The critical meeting details can be preconfigured by, for example, a system administrator, or can be configured by the meeting invitee 103 or other suitable entity using a configuration interface. An exemplary configuration interface is described in more detail below with reference to Figure 2 more detail.

[0033] In Figure 1BIn the example shown, the selective update engine 136 can be configured to determine that changes to the parameters or details of the meeting are not executable because the changes only involve updates to the description field 143e. In response to determining that the meeting update 118 is not executable, the selective update engine 136 can instruct and command the output component 138 to automatically update the corresponding calendar item 117 in their respective calendar folders 115 without input from the meeting invitees 103( Figure 1A ). For example, the corresponding description field 143e of the calendar item 117 can be modified from "To be provided" to "Quick review of the progress of work on project dynamo". Next, the updated calendar item 117' can be stored in their respective calendar folders 115.

[0034] The selective update engine 136 can also be configured to automatically delete the received meeting update 118 from the respective inboxes of the email folders 114 of the meeting invitees 103. For example, the selective update engine 132 can be configured to move the received meeting update to the "Deleted Items" folder, clear the new message flag for the meeting update 118, remove the meeting update 118 from the email folder 114, or perform other suitable operations so that the meeting update 118 is not presented (surface) to the meeting invitees 103.

[0035] Several embodiments of the disclosed technology can thus improve the efficiency of updating the calendar items 117 in the calendar folders 115 by filtering the received meeting updates 118 according to one or more execution criteria included in the update configuration record 110. When the meeting update 118 only contains modifications to non-critical meeting details (e.g., updates to the description field 143e), the selective update engine 136 can automatically incorporate the modification into the stored calendar item 117 without input from the meeting invitees 103. Thus, the lack of the ability to accept the meeting update 118 on the client device 102 can be avoided. Additionally, by automatically deleting at least some of the received meeting updates 118, several embodiments of the disclosed technology can reduce the clutter in the inboxes of the meeting invitees 103 and reduce the workload of the corresponding email server (not shown). Thus, the performance of the email server and / or the corresponding email service is improved.

[0036] Figure 1C Another example is shown where the modification to the parameters or details of the meeting is considered executable. For example, as Figure 1CAs shown, the meeting organizer 101 may decide to change the start time from "Tuesday 2 / 1 / 2018 1:00 PM" to "Tuesday 2 / 2 / 2018 1:30 PM" and the end time from "Tuesday 2 / 1 / 2018 2:00 PM" to "Tuesday 2 / 2 / 2018 2:30 PM". In some embodiments, such a change may be considered executable because the system administrator has configured the update configuration 110 to indicate that when the start time or end time fields 143c and 143d are modified, such a change is considered executable. In other embodiments, an individual meeting invitee 103 may also configure the update configuration 110 to override or supplement the system administrator's update configuration 110.

[0037] Once the meeting organizer 101 drives the "Send Update" button 149, a meeting update 118' with the modified value in the start / end time field 143c may be generated and sent to the calendar server 106. Similar to the operations discussed above with reference to Figure 1B the input component 132 may then receive the meeting update 118' and forward it to the selective update engine 136 for further processing. In the illustrated example, the selective update engine 136 may determine based on the update configuration 110 that the modification to the parameter or detail (i.e., start / end times 143d and 143e) is regarding an executable change. Thus, the selective update engine 136 may instruct and command the output component 138 to forward the meeting update 118' to the inboxes at the email folders 114a and 114b of the meeting invitees 103a and 103b respectively via the computer network 104.

[0038] As Figure 1D shown, the meeting invitee 103 may then accept, reject, or otherwise provide input to the meeting update 118'. In the illustrated example, two meeting invitees 103 accept the meeting update 118' and in response, the client device 102 may generate a notification 119 that the update has been accepted and send it to the calendar server 106. Once the notification 119 that the update has been accepted is received, the selective update engine 136 or other suitable component of the calendar server 106 may instruct the output component 138 to modify the calendar entries 117 in their respective calendar folders 115 according to the input provided by the meeting invitee 103 ( Figure 1A ). The updated calendar entries 117” may then be stored in the calendar folders 115.

[0039] Figure 2 is an exemplary configuration interface 150 for configuring the Figure 1A update configuration record 110 in accordance with embodiments of the disclosed technology. Although for illustrative purposes, in Figure 2Specific meeting parameters or details are shown, but in other embodiments, the configuration interface 150 may include other suitable parameters, arrangements, conditions, or other suitable features of the meeting. As Figure 2 shown, the configuration interface may include a plurality of selection fields 152, which are configured to allow a system administrator or a meeting participant 103 ( Figure 1A ) to specify which parameters or details of the meeting are executable 2. For example, as Figure 2 shown, the selection field 152 may separately include a description and a pair of selection buttons marked "Y" or "N" for yes or no. In the example shown, the selection fields 152a and 152b corresponding to the changed start date / time and the changed end date / time are designated as executable. In contrast, the selection fields 152c - 152d corresponding to the changed location, the changed meeting description, and the changed participants are designated as non - executable. The configuration interface 150 may also include one or more action elements, such as an apply button 154 and a cancel button 156.

[0040] In operation, a system administrator or a meeting participant 103 may provide input to one or more selection fields 152 to specify that one or more attributes or details are executable, for example, by clicking on the selection buttons. Then, the system administrator or the meeting participant 103 may confirm any changes to the updated configuration 110 by clicking the apply button 154, or may cancel the changes by clicking the cancel button 156.

[0041] Although Figure 2 the configuration interface 150 is shown as a graphical user interface, in other embodiments, the configuration interface 150 may include other suitable types of human - machine interfaces. For example, in some implementations, the updated configuration 110 may be set by executing commands in a task automation and configuration management framework. An example of such a framework is PowerShell from Microsoft Corporation in Redmond, Washington. PowerShell provides a command - line shell and an associated scripting language. The following is an example PowerShell command for setting the updated configuration 110:

[0042] Set - OrganizationConfig - VisibleMeetingUpdateProperties “Subject,Property1,Property2” - Id “FooOrg.com”

[0043] In the example command above, an instruction, namely "Set-OrganizationConfig", can be executed to set a meeting update with changes to the subject property executable for an example entity called "FooOrg".

[0044] Figure 3 and Figure 4 is a flowchart showing a process for selective update of calendar items according to an embodiment of the disclosed technology. Although the process is described in the context of the computing system 100 of Figures 1A to 1D it, embodiments of the process can also be implemented in other computing systems with additional and / or different components.

[0045] As Figure 3 shown, the process 200 can include, at stage 202, receiving an update to a calendar item at a server. The update can include an electronic message containing one or more changes to one or more parameters or details of a meeting that a user has been invited to attend. The process 200 can then include a determination stage 204 for determining whether the update is executable by the user according to a set of preconfigured criteria, each of the set of criteria representing a condition according to which input from the user is required to process the update at the server. In some implementations, the meeting update is executable when the server requires input from the meeting invitee to process the meeting update. For example, the meeting update is executable when the meeting update specifically mentions or requests user input. In another example, the meeting update is executable when one or more "critical" meeting details have been modified. Such critical meeting details can include, for example, start date / time, end date / time, etc. The critical meeting details can be preconfigured by, for example, a system administrator, or can be configured by the meeting invitee or other suitable entity. Example operations for determining whether the received update is executable are described in more detail below with reference to Figure 4 More detailed description of the example operations for determining whether the received update is executable.

[0046] Then, the process 200 can include: in response to determining that the update is executable at stage 206, transmitting the received update to the user's email inbox. The process 200 can then include another determination stage 212 for determining whether user input to the update has been received. In response to determining that user input has been received, the process 200 proceeds to update the calendar item according to the user input received at stage 216. Otherwise, the process 200 resumes monitoring for user input. In response to determining that the update is not executable, the process 200 can automatically modify the calendar item according to the received update without user input at stage 208. The process 200 can also include deleting the received update, for example, by moving the received meeting update to the user's "Deleted Items" folder.

[0047] Figure 4 is a flowchart showing example operations for determining whether a received meeting update is executable according to an embodiment of the disclosed technology. As Figure 4 shown, the operation can include retrieving a calendar entry corresponding to the received update at stage 222 from, for example, calendar folder 115 ( Figure 1B ). The operation can then include a determination stage 224 to determine whether a calendar entry corresponding to the received update already exists. In response to determining that a calendar entry corresponding to the received update does not exist, the operation can include indicating at stage 226 that the received update is executable.

[0048] In response to determining that a calendar entry corresponding to the received update does indeed exist, the operation can include another determination stage 228 for determining whether the user has responded to the meeting invitation corresponding to that calendar entry. In response to determining that the user has not yet responded to the meeting invitation corresponding to that calendar entry, the operation can proceed to indicating at stage 226 that the update is executable.

[0049] In response to determining that the user has responded to the meeting invitation corresponding to that calendar entry, the operation can proceed to another determination stage 230 to determine whether the update mentions the user, for example, by name, email, alias, etc. In response to determining that the update mentions the user, the operation can proceed to indicating at stage 226 that the update is executable. In response to determining that the update does not mention the user, the operation can proceed to another determination stage 232 to determine whether the "critical" parameters or details of the meeting have changed. As referred to above Figures 1A to 2 described, a system administrator or user can configure or pre-specify which parameters or details of a meeting are "critical" or executable. In response to determining that the "critical" parameters or details of the meeting have changed, the operation can proceed to indicating at stage 226 that the update is executable. In response to determining that one or more of the changes included in the received update are not related to any "critical" parameters or details, the operation can proceed to indicating at stage 236 that the received update is not executable.

[0050] Figure 5 is a computing device 300 suitable for Figure 1A certain components of the distributed computing system 100 in Figure 1A . For example, the computing device 300 can be suitable for

[0051] Depending on the desired configuration, processor 304 can be of any type, including but not limited to a microprocessor (μP), a microcontroller (μC), a digital signal processor (DSP), or any combination thereof. Processor 304 can include a multi-level cache (such as level 1 cache 310 and level 2 cache 312), a processor core 314, and registers 316. Exemplary processor core 314 can include an arithmetic logic unit (ALU), a floating point unit (FPU), a digital signal processing core (DSP core), or any combination thereof. Example memory controller 318 can also be used with processor 304, or in some implementations, memory controller 318 can be an internal component of processor 304.

[0052] Depending on the desired configuration, system memory 306 can be of any type, including but not limited to volatile memory (such as RAM), non-volatile memory (such as ROM, flash memory, etc.), or any combination thereof. System memory 306 can include an operating system 320, one or more applications 322, and program data 324. The basic configuration 302 described herein is Figure 5 illustrated by those components within the dashed lines.

[0053] Computing device 300 can have additional features or functionality and additional interfaces to assist in communication between the basic configuration 302 and any other devices and interfaces. For example, bus / interface controller 330 can assist in communication between the basic configuration 302 and one or more data storage devices 332 via a storage interface bus 334. Data storage devices 332 can be removable storage devices 336, non-removable storage devices 338, or a combination thereof. Examples of removable and non-removable storage devices include disk devices such as floppy disk drives and hard disk drives (HDDs), optical disk drives such as compact disk (CD) drives or digital versatile disk (DVD) drives, solid state drives (SSDs), and tape drives, among others. Example computer storage media can include volatile and non-volatile, removable and non-removable media implemented in any method and technology for storage of information such as computer readable instructions, data structures, program modules, or other data. The term "computer readable storage medium" or "computer readable storage device" does not include propagated signals and communication media.

[0054] System memory 306, removable storage device 336, and non-removable storage device 338 are examples of computer-readable storage media. Computer-readable storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technologies, CD-ROM, digital versatile disks (DVDs) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and that is accessible by computing device 300. Any such computer-readable storage media may be part of computing device 300. The term "computer-readable storage media" does not include propagated signals and communication media.

[0055] Computing device 300 may also include interface bus 340 to facilitate communication from various interface devices (such as output device 342, peripheral interface 344, and communication device 346) to the basic configuration 302 via bus / interface controller 330. Example output device 342 includes graphics processing unit 348 and audio processing unit 350, which may be configured to communicate with various external devices (such as a display or speakers) via one or more A / V ports 352. Example peripheral interface 344 includes serial interface controller 354 or parallel interface controller 356, which may be configured to communicate with external devices such as input devices (e.g., keyboard, mouse, pen, voice input device, touch input device, etc.) or other peripheral devices (e.g., printer, scanner, etc.) via one or more I / O ports 358. Example communication device 346 includes network controller 360, which may be arranged to facilitate communication with one or more other computing devices 362 via one or more communication ports 364 on a network communication link.

[0056] The network communication link may be an example of a communication medium. Communication media typically may be embodied by computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism, and may include any information delivery media. A "modulated data signal" may be a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), microwave, infrared (IR), and other wireless media. As used in this application, the term computer-readable media may include storage media and communication media.

[0057] The computing device 300 can be implemented as part of a small form factor portable (or mobile) electronic device (such as a cellular phone, a personal data assistant (PDA), a personal media player device, a wireless network viewing device, a personal headset device, an application specific device, or a hybrid device incorporating any of the above functions). The computing device 300 can also be implemented as a personal computer, including laptop and non-laptop configurations.

[0058] From the foregoing, it will be appreciated that specific embodiments of the disclosure have been described herein for purposes of illustration, but that various modifications may be made without departing from the disclosure. Additionally, many elements of one embodiment may be outside of or alternative to the elements of other embodiments or may be combined with the elements of the other embodiments. Accordingly, the technology is not limited except as by the appended claims.

Claims

1. A method for automatic update of calendar items in an electronic calendar system having a server interconnected with client devices via a computer network, the method comprises: storing, at the server, an update configuration record representing one or more meeting details, the update configuration record indicating that a meeting update having a change to the one or more meeting details is processed in the presence of an input from the recipient of the meeting update; when an incoming meeting update is received at the server for a calendar item representing a previously scheduled meeting appointment and including a plurality of data fields having corresponding values, determining whether the incoming meeting update includes a change to a value in at least one of the plurality of data fields of the previously scheduled meeting appointment, the at least one data field corresponding to one of the one or more meeting details indicated in the stored update configuration record as causing the incoming meeting update to be processed in the presence of an input from the recipient; and in response to determining that the incoming meeting update does not include a change to a value in at least one meeting detail of the one or more meeting details, the at least one meeting detail being indicated in the stored update configuration record as causing the incoming meeting update to be processed only in the presence of an input from the recipient, automatically modifying, according to the incoming meeting update, the value in at least one data field of the data fields of the calendar item in the recipient's calendar folder representing the previously scheduled meeting appointment, the at least one data field corresponding to the at least one meeting detail of the one or more meeting details having the change, without an input from the recipient; and automatically deleting the incoming meeting update without forwarding the incoming meeting update to the recipient's inbox at the server.

2. The method according to claim 1, wherein receiving and storing the update configuration record at the server comprises: receiving an input from a system administrator or the recipient via a graphical user interface or a command line interface; and storing the received input as the update configuration record at the server.

3. The method according to claim 1, further comprises: when the incoming meeting update is received at the server, in response to determining that the incoming meeting update includes a change to at least one detail indicated in the stored update configuration record as causing the incoming meeting update to be processed only in the presence of an input from the recipient of the one or more meeting details, forwarding the incoming meeting update to the recipient's inbox; receiving an input from the recipient for the incoming meeting update in the inbox; and modifying the previously scheduled meeting appointment in the recipient's calendar folder at the server according to the input received from the recipient.

4. The method according to claim 1, further comprises: when the incoming meeting update is received at the server, Determine whether the previously scheduled meeting appointment already exists in the recipient's calendar folder at the server; and In response to determining that the previously scheduled meeting appointment does not exist in the recipient's calendar folder at the server, indicate that the incoming meeting update is processed only if there is input from the recipient.

5. The method according to claim 1, further comprising: When receiving the incoming meeting update at the server, Determine whether the recipient has responded to a previous meeting invitation for the meeting corresponding to the previously scheduled meeting appointment; and In response to determining that the recipient has not responded to the previous meeting invitation, indicate that the incoming meeting update is processed only if there is input from the recipient.

6. The method according to claim 1, further comprising: When receiving the incoming meeting update at the server, Determine whether the incoming meeting update specifically requests input from the recipient; and In response to determining that the incoming meeting update specifically requests input from the recipient, indicate that the incoming meeting update is processed only if there is input from the recipient.

7. The method according to claim 1, wherein Determining whether the incoming meeting update contains a change to at least one of the one or more meeting details indicated in the stored update configuration record as causing the incoming meeting update to be processed only if there is input from the recipient includes: Comparing the details of the previously scheduled meeting appointment in the recipient's calendar folder with the one or more meeting details in the incoming meeting update to generate a list of changed details; Determining whether at least one detail in the generated list of details corresponds to one specified in the update configuration record as causing the incoming meeting update to be processed only if there is input from the recipient; and In response to determining that at least one detail in the generated list of details corresponds to one specified in the update configuration record as causing the incoming meeting update to be processed only if there is input from the recipient, indicate that the incoming meeting update is processed only if there is input from the recipient.

8. The method according to claim 1, wherein Determining whether the incoming meeting update contains a change to at least one of the one or more meeting details indicated in the stored update configuration record as causing the incoming meeting update to be processed only if there is input from the recipient includes: Comparing the details of the previously scheduled meeting appointment in the recipient's calendar folder with the one or more meeting details in the incoming meeting update to generate a list of changed details; Determining whether at least one detail in the generated list of details corresponds to one specified in the update configuration record as causing the incoming meeting update to be processed only if there is input from the recipient; and In response to determining that none of the generated list of details corresponds to one specified in the updated configuration record as being such that the incoming meeting update is to be processed only in the presence of input from the recipient, indicate that the incoming meeting update is not to be processed only in the presence of input from the recipient.

9. The method according to claim 1, wherein, determining whether the incoming meeting update includes a change to at least one meeting detail among the one or more meeting details indicated in the stored updated configuration record as being such that the incoming meeting update is to be processed only in the presence of input from the recipient includes: determining whether the incoming meeting update includes a change to the start date, start time, end date, end time, or location of the meeting; and in response to determining that the incoming meeting update includes a change to the start date, start time, end date, end time, or location of the meeting, indicate that the incoming meeting update is to be processed only in the presence of input from the recipient.

10. A computing device configured to be interconnected via a computer network with one or more client devices, the computing system comprising: a processor; and a memory operatively coupled to the processor, the memory containing an email folder and a calendar folder of the recipient and instructions executable by the processor to cause the computing device to perform a processing procedure according to one of claims 1-9.

Citation Information

Patent Citations

  • Controlled synchronization between a group calendar and individual work calendars

    US20090248480A1