Handheld computing devices, notebook computers, desktop computers, smartphones and other computing devices frequently have installed a calendar application that provides an electronic version of a calendar. A user may populate the electronic calendar with events (e.g., appointments, meetings, or anniversaries) that are to take place at a certain time, and location.
The electronic calendar application in many cases is networked solution that allows for the sharing of information between users. The calendaring application typically allows individual calendar users to send invitations, accept invitations, send counterproposals, and otherwise negotiate scheduling of a meeting or other proposed event. From the perspective of the person sending the invitation, a major goal in sending the application is to select a time for the even that will permit a high number of the invitees to attend.
Finding a common free time slot for a meeting across multiple calendars can be challenging, however. In a large organization often you see a situation where a meeting organizer desires to schedule a meeting with a large number of invitees, or to move an existing meeting to a different slot. This task can be often become time consuming, tedious, and inefficient. For example, a meeting organizer may find it necessary to contact his or her team members to request that the team members move meetings or to understand the priorities of the team members' other meetings.
To address these issues, various embodiments described in more detail below provide for applying management actions to calendar conflicts. Examples described herein may operate by accessing a current meeting invitation to an invitee user, wherein there is a timing conflict between the current invitation and another calendar event of the invitee user. Data indicative of a set of calendar events, and data indicative of a set of past behaviors of the invitee user following the invitee user's receipt of meeting invitations, may be accessed. A relevant behavior can be identified from the past behavior data. A management action can then be determined in consideration of identified relevant behavior, and applied to the current timing conflict.
In an example described herein, the relevant behavior is with respect to a previous meeting invitation that was sent to the invitee user and that has a same invitation attribute as does the current invitation. In examples, the invitation attribute may include at least one of a meeting type, a meeting subject, an invitee, and a number of invitees or participants. In another example described herein, the relevant behavior may be identified with respect to multiple previous meeting invitations sent to the invitee user and having the same invitation attribute, with determination and application of the management action occurring in consideration of a count of occurrences that the invitee user exhibited the relevant behavior. In examples, the relevant behavior may be the user causing sending of a rejection message or a timing counterproposal. In other examples, the relevant behavior may be a failure to respond to a meeting invitation.
In examples, the relevant behavior may be a failure to attend all or part of a meeting. In examples, the presence data may be accessed, e.g., from a computing device associated with the invitee user, and utilized in identifying the failure to attend. In a particular example, the presence data may include includes positioning data or motion analytics data. In other examples, the user's failure to attend all or part of a meeting may be identified by failure of the user to access a telephone connection, web application, or network designated in a meeting invitation.
In examples, the management action may include at least one of removing the invitee user from the current meeting invitation, sending a message to the invitee user requesting rescheduling of the subject calendar event, and changing the time or date of the current meeting invitation. In an example described herein, the management action may be sent to a computing device as a recommendation to be displayed to the invitee user, or to another user, e.g., a meeting organizer that initiated sending of the current meeting invitation to the invitee user.
In examples, the management action to be applied to the current timing conflict may be determined in consideration of the relevant behavior and a priority level of the subject calendar event. In an example, the priority level may be a priority level that has been derived based upon a rule that assigns the priority level according to a number of invitees or participants for the subject calendar event. In another example, the priority level may be a priority level that has been derived based upon a rule that assigns the priority level according to whether the invitation for the subject calendar event was sent by, or includes, a key user.
In an example of the disclosure, data may be accessed to cause a calendar-view display of the subject calendar event that is viewable by the meeting organizer. The display may include a representation of the invitee user, and an indicator of the priority level of the subject calendar event that is in timing conflict with the current meeting invitation. The priority level may be a priority level determined according to a rule that assigns the priority level according to a number of invitees or participants for the subject calendar event, or according to whether the invitation for the subject calendar event was sent by, or includes, a key user. In a particular example in which the subject calendar event has multiple invitees, the priority level indicator that is displayed is an indicator representative of an average priority of the subject calendar event in consideration of the multiple of invitees.
In this manner, embodiments of this disclosure present an automated and efficient manner to enable a meeting organizer to apply a management action to a situation where a current meeting invitation conflicts with another meeting invitation, a previously scheduled meeting, or other calendar event. Users of electronic calendars, especially users in environments where there are frequent meetings with a large number of invitees, will appreciate the ability to reconcile schedule conflicts and schedule meetings with fewer clicks and without a need for offline discussions between the meeting organizer and the invitees. Such advantages of the disclosure will cause customer satisfaction with electronic calendars and scheduling systems, and their providers, to increase.
The following description is broken into sections. The first, labeled “Components,” describes examples of various physical and logical components for implementing various embodiments. The second section, labeled as “Operation,” describes steps taken to implement various embodiments.
Client device 104 is shown to include core device components 114 and sensory component 116. Core device components 114 represent generally the hardware and programming for providing the computing functions for which device 104 is designed. Such hardware can include a processor and memory, display and any physical user input buttons. The programming can include an operating system and applications. Sensory component 116 represents generally any component configured to detect a change in presence of client device 104 or an invitee user of client device 104. For example, sensory component may include any of a geographic information system (“GIS”), a Global Positioning System (“GPS”), or other positioning feature, an accelerometer, a motion analytics feature, and a communication feature that can be used to detect device position and/or motion. Sensory component 116 may be software configured to detect the start and stop of phone calls, virtual meetings, and other events where the client device facilitates interaction between the user and another individual via a network other communication channel.
Calendar conflicts management system 102, discussed in more detail below, represents generally a combination of hardware and programming configured to apply management actions to calendar conflicts. Briefly, calendar conflicts management system 102 is configured to access a current meeting invitation sent to a user, access data indicative of calendar events, access data indicative past behaviors of the user following receipt of a meeting invitation, identify a relevant behavior with respect to a previous meeting invitation having a same invitation attribute as the current invitation, and apply, in consideration of the relevant behavior, a management action to the current timing conflict. System 102 may be wholly integrated within core device omponents 114. System 102 may be implemented as a component of server device 112 where it takes action based in part on data received from core device components 114 and sensory component 116 via link 114. System 102 may be distributed across client device 104 and server device 112 where, for example, where, for example, identification of a relevant behavior of failure to attend all or part of a meeting is performed on device 104, and accessing a current meeting invitation sent to a user, accessing data indicative of calendar events, accessing data indicative past behaviors of the user following receipt of a meeting invitation, identifying a relevant behavior with respect to a previous meeting invitation having a same invitation attribute as the current invitation, and application, in consideration of the relevant behavior, of a management action to the current timing conflict are performed by server device 112. It is noted that all or portions of the calendar conflicts management system 102 may also be included on client devices 106, 108 or 110.
Invitation engine 202 represents a combination of hardware and programming configured to access a current meeting invitation to a user, wherein there exists a timing conflict between the current invitation and another calendar event of the invitee user (the another event sometimes referred to herein as a “subject calendar event”). As used herein, a “meeting invitation” refers to any message that is to communicate an invitation to a meeting, gathering, call, conference, or other happening. In an example, the current meeting invitation may be a meeting invitation that has already been sent to the invitee user. In another example, the current meeting invitation may be a meeting invitation that is being prepared for sending, or otherwise has not yet been sent to the invitee user.
Management action engine 204 represents a combination of hardware and programming configured to access data indicative of calendar events. As used in this application, a “calendar event” refers generally to any gathering, meeting, occasion, anniversary, or other happening, and includes also includes any invitations, invitation acceptances, invitation rejections, and invitation counterproposals regarding attending such happening. In example, a calendar event may be a meeting, or a meeting invitation. The calendar event may be an electronic message that is shared by the invitee user, and a user that has initiated the current meeting invitation.
The management action engine 204 is additionally configured to access data indicative of a past behavior of the user following receipt of a meeting invitation, and to identify from such past behavior data, a relevant behavior with respect to a previous meeting invitation sent to the user. The previous meeting invitation is identified from the past behavior data, and has a same invitation attribute as the current meeting invitation. As used herein, an “invitation attribute” refers generally to any quality or feature regarding a meeting invitation. In examples, an invitation attribute that is identified may be one of a meeting type, a meeting subject, an invitee, and a number of invitees or participants.
The management action engine 204 is additionally configured to apply a management action to the current timing conflict. As used herein, a “management action” refers generally to any action taken to address, partially resolve, or resolve a meeting conflict. The management action is an action selected or generated by the management action engine 204 in consideration of the identified relevant behavior. As used herein, a “behavior” refers generally to any way in which a person one acts or conducts his or herself, e.g., in response to a situation or stimulus such as the receipt of a meeting invitation. Such a behavior may be evidenced by the person's interaction with one or more computing devices. In an example, the identified relevant behavior may be the invitee user causing sending of a rejection message to a meeting organizer user. In another example, the identified relevant behavior may be the invitee user causing sending of a timing counterproposal to a meeting organizer user. In another example, the identified relevant behavior may be invitee user's failure to respond to a meeting invitation sent by a meeting organizer user.
In another example, the identified relevant behavior may be the user's failure to attend all or part of a scheduled meeting. In an example, the management action engine 204 may access presence data from a client mobile computing device associated with the user, and identify the invitee user's failure to attend the previous meeting according to the presence data. As used herein, “presence data” refers generally to data that indicates a location or, state of a user or a computing device associated with a user. In an example, the presence data that is accessed and utilized to identify a failure to attend may be or include GIS data, GPS data, triangulation data, or other positioning data. In an example, the presence data that is accessed and utilized to identify a failure to attend may be motion analytics data, e.g. motion analytics data collected at a mobile computing device that analyzes user walk gait or other motions analytics to determine a particular user is utilizing the mobile device. In another example, the failure of the invitee user to attend the previous meeting may be identified by failure of the invitee user to access a telephone connection, web application, network, or other communications vehicle designated in a meeting invitation.
In an example, the management action that is to be applied by the management action engine 204 may be an action to remove the invitee user from the current meeting invitation. In another example, the management action that is applied by the management action engine 204 may be an action to send a message to the invitee user to request that the invitee user reschedule the subject calendar event that is conflict with the current meeting invitation. In yet another example, the management action that is applied by the management action engine 204 may be an action to implement a change in the current meeting invitation, e.g., a change to a different time on the same day, or a same time on a different day, or a different time on a different day. In an example, the management action engine 204 may cause the sending of the management action to a computing device (e.g. a computing device used by or associated with the invitee user) as a recommendation to be displayed to the invitee user, in another example, the management action engine 204204 may cause the sending of the management action to a computing device used by or associated with a meeting organizer user that initiated sending of the current invitation to the first user. In yet another example, the management action engine 204 may automatically implement the management action.
In another example, the management action engine 204 may access the calendar events data 304 to identify the relevant behavior 308 with respect to multiple meeting invitations sent to the invitee user and having a same invitation attribute 312 as the current meeting invitation 302. In this example, the management action engine 204 may be applied in consideration of a count of occurrences that the invitee user exhibited the relevant behavior 308.
In another example, the management action engine 204 may generate, identify, or select a management action, and apply the management action to the current conflict, in consideration of the identified relevant behavior 308 and also in consideration of a priority level 318 for the subject calendar event. In an example, the management action engine 204 may identify a priority level 318 of the subject calendar event 316 based upon a rule. In an example, the priority rule may assign the priority level 318 according to a number of invitees for the meeting. In another example, the priority rule may assign the priority level according to a number of participants for the meeting. In yet another example, the priority rule may assign the priority level according to whether the invitation for the subject calendar event 316 is sent by, or includes, a key user.
Moving to
In a particular example depicted in
In other examples, an indicator 408 for the priority level 318 of a subject calendar event 316 may be other than color coded. Examples include different black and white gradient patterns. For example, the priority level indicator for a high priority meeting may be a block with a black and white vertical striped pattern, and a priority indicator for a low priority meeting may be a block with no pattern or with a white background. In other examples, the priority level indicator may be a numeric or text representation. In an example wherein the priority level 318 of a subject calendar event 316 is to be expressed numerically, and the meeting has multiple participants, a blended or average priority indicator 408 can be generated that is a numerical average of the numerical meeting priorities that would be generated if the invitees were evaluated separately.
in the foregoing discussion, engines 202, 204 were described as combinations of hardware and programming. Engines 202, 204 may be implemented in a number of fashions. Looking at
Memory resource 502 represents generally any number of memory components capable of storing instructions that can be executed by processing resource 504. Memory resource 502 is non-transitory in the sense that it does not encompass a transitory signal but instead is made up of more or more memory components configured to store the relevant instructions. Memory resource 502 may be implemented in a single device or distributed across devices. Likewise, processing resource 504 represents any number of processors capable of executing instructions stored by memory resource 502. Processing resource 504 may be integrated in a single device or distributed across devices. Further, memory resource 502 may be fully or partially integrated in the same device as processing resource 504, or it may be separate but accessible to that device and processing resource 504.
In one example, the program instructions can be part of an installation package that when installed can be executed by processing resource 504 to implement system 102. In this case, memory resource 502 may be a portable medium such as a CD, DVD, or flash drive or a memory maintained by a server from which the installation package can be downloaded and installed. In another example, the program instructions may be part of an application or applications already installed. Here, memory resource 502 can include integrated memory such as a hard drive, solid state drive, or the like.
In
Management module 514 represents program instructions that when executed cause processing resource 504 to cause the implementation of a portion of management action engine 204 of
A current meeting invitation to a user is accessed. There is a current timing conflict between the current invitation and a subject calendar event of the user (block 602). Referring back to
A relevant behavior with respect to a previous meeting invitation sent to the user is identified. The previous invitation is an invitation having a conflict with a calendar event and having a common invitation attribute with the current invitation (block 604). Referring back to
A management action is applied to the current timing conflict in consideration of the relevant behavior (block 606). Referring back to
Data indicative of calendar events is accessed (block 702). Referring back to
Data indicative of a past user behavior following receipt of a meeting invitation is accessed (block 704). Referring back to
A current meeting invitation from a first user to a second user is accessed. The current invitation is in a current timing conflict with respect to a subject calendar event of the second user (block 706). Referring back to
A relevant behavior is identified from the past behavior data. The relevant behavior is with respect to a previous meeting invitation sent to the second user. The previous meeting invitation has a same invitation attribute as the current invitation (block 708). Referring back to
A priority level of the subject calendar event is identified according to a rule. In an example, the rule may consider a number of invitees or participants. In another example, the rule may consider whether the invitation for the subject, calendar event is sent by, or includes, a key user (block 710). Referring back to
A management action is applied to the current timing conflict. The management action is an action generated or selected according to a formula or rule that is considers the identified relevant behavior and the identified priority level (block 712). Referring back to
Embodiments can be realized in any memory resource for use by or in connection with processing resource. A “processing resource” is an instruction execution system such as a computer/processor based system or an ASIC (Application Specific integrated Circuit) or other system that can fetch or obtain instructions and data from computer-readable media and execute the instructions contained therein. A “memory resource” is any non-transitory storage media that can contain, store, or maintain programs and data for use by or in connection with the instruction execution system. The term “non-transitory is used only to clarify that the term media, as used herein, does not encompass a signal. Thus, the memory resource can comprise any one of many physical media such as, for example, electronic, magnetic, optical, electromagnetic, or semiconductor media. More specific examples of suitable computer-readable media include, but are not limited to, hard drives, solid state drives, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory, flash drives, and portable compact discs.
Although the flow diagrams of
The present invention has been shown and described with reference to the foregoing exemplary embodiments. It is to be understood, however, that other forms, details and embodiments may be made without departing from the spirit and scope of the invention that is defined in the following claims.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2013/056711 | 8/27/2013 | WO | 00 |