Meeting notification and merging agents

Information

  • Patent Application
  • 20070265903
  • Publication Number
    20070265903
  • Date Filed
    June 16, 2006
    18 years ago
  • Date Published
    November 15, 2007
    17 years ago
Abstract
The present invention is directed generally to an information manager that identifies currently scheduled meetings satisfying selected search parameters, discloses, when permitted, details of the identified meetings to requestors, and merges requested and existing meetings when appropriate.
Description

BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a block diagram depicting an enterprise server providing personal information management for enterprise subscribers according to an embodiment of the present invention;



FIG. 2 is a prior art depiction of a set of personal information data structures for enterprise subscribers;



FIG. 3 is a flow chart of meeting notification agent operation according to an embodiment of the present invention;



FIG. 4 is a flow chart of meeting merger agent operation according to an embodiment of the present invention;



FIG. 5 is a screen shot of a search request according to an embodiment of the present invention; and



FIG. 6 is a screen shot of a meeting merger invitation according to an embodiment of the present invention.





DETAILED DESCRIPTION


FIG. 1 depicts architecture according to an embodiment of the present invention. The enterprise network 100 is in communication, via a Wide Area Network or WAN 104, with one or more nonsubscriber client devices 108. The enterprise network 100 includes a server 112 in communication, via Local Area Network 116, with a subscriber database 120 and a plurality of subscriber client devices 124a-n.


The WAN 104 and LAN 116 are commonly packet-switched networks. The WAN 104 preferably conveys packets using the TCP/IP suite of protocols, and the LAN 116 using the Ethernet protocol. As will be appreciated, other protocols may be employed depending on the application.


The client devices 108 and 124a-n can be wired or wireless. Examples of suitable client devices include a Personal Computer, a laptop, a Personal Digital Assistant, telephony endpoints and applications that support calendar functions, and the like.


The subscriber database 120 includes subscriber information, such as subscriber identities, electronic addresses, scheduling information (e.g., calendars), task lists, contact management information and preferences, shared mailboxes, public folders, and organization and areas of responsibility.


An example of a set of data structures used for scheduling information is shown in FIG. 2. The data structures include a number of sets of scheduling records 200a-n for each of the first through nth subscribers. Each set of scheduling records 200a-n includes a set of calendar files 204a-y. Each calendar file 204 corresponds to a selected month and year and includes, for each day 208a-n in the respective month and year, a series of discrete timeslots 212a-m.


Each timeslot corresponds to a discrete time period of a set length, e.g., fifteen, thirty, or sixty minutes. Each timeslot may have an associated set of parameters, such as a task to be performed, a meeting, a list of meeting participants, a subject of the meeting, an agenda for the meeting, attachments for the meeting, a duration of the meeting, contact details for the meeting (e.g., a telephone number of a meeting participant, conference bridge, and the like), and physical location. The parameters are typically referenced in the appropriate timeslot by a pointer. As will be appreciated, when the same timeslot of a number of individuals corresponds to the same meeting, the timeslots normally contain or point to identical meeting information.


Referring again to FIG. 1, the server 112 includes a number of computational modules, specifically the calendar module 128 which receives and executes scheduling requests and updates and meeting invitations from a subscriber, a messaging module 132 which receives and sends electronic messages, such as emails, and manages electronic message repositories or mailboxes and address lists, meeting notification agent 136 that receives and responds to meeting queries, meeting merge agent 144 that identifies possible meetings that can be merged and effects the merger of the meetings, and Application Program Interface or API 140 that processes Structured Query Language or SQL database queries received from the foregoing components.


The calendar and messaging modules 128 and 132 are conventional.


The meeting notification agent 136 receives from potential meeting participants, whether subscribers or nonsubscribers, and responds to requests respecting the possible existence of one or more meetings complying with stipulated search parameters. The stipulated search parameters include one or more of a set of participant identities (which may be inclusive (e.g., “a meeting in which A and B are present”) and/or exclusive (e.g., “a meeting in which A and B are not present”)), a time period during which eligible meetings are scheduled (e.g., days and/or time periods within a day), a subject of the meeting (e.g., “a meeting regarding item X”), one or more agenda items for the meeting (e.g., “a meeting regarding agenda item Y”), an attachment for the meeting (e.g., “a meeting in which document ‘Z’ will be discussed”), a duration of the meeting, and contact details for the meeting (e.g., a telephone number of a meeting participant, conference bridge number, and the like).


Any meetings satisfying the search parameters are reviewed by the agent 136, prior to disclosure of the meeting details to the requester, to determine whether the requester is privileged to be notified of the existence of the meeting and/or the meeting details. Alternatively or additionally, the agent 136, prior to disclosure of the meeting details to the requester, determines whether the organizer and/or current meeting participants have designated the meeting to be restricted. In one configuration, a restricted meeting means that there are restrictions on the publication of the existence and/or details of the meeting to unauthorized or unprivileged requestors. A fully restricted or confidential meeting means that the existence of the meeting is not published to unauthorized requesters. A partially restricted meeting means that the existence of the meeting, but not selected details of the meeting, may be disclosed to unauthorized persons. If the requestor is not privileged to learn of the existence of the meeting and/or receive the meeting details or if the meeting is otherwise designated as being restricted, an appropriate response, which is often different from or a filtered version of the search results, is provided to the requestor. For example, for a restricted or confidential meeting and/or an unprivileged requester the response could be that “no such meetings exist.” Alternatively, for a partially restricted meeting and/or an unauthorized requestor the response could be that “such a meeting exists but further details cannot be provided at this time.” In this manner, organizational security and subscriber privacy issues are honored.


According to one configuration, a map of what search results may be disclosed is as follows:
















Permitted


Requestor Status
Restrictions/Permissions
Degree of Disclosure







Authorized
Open
Full Disclosure of




Search Results


Unauthorized
Open
Same


Authorized
Partially Restricted
Same


Unauthorized
Partially Restricted
Disclosure of Existence




of Meeting


Authorized
Fully Restricted
Same


Unauthorized
Fully Restricted
None









The meeting merge agent 144 identifies potential meetings for merger and, if acceptable to the affected organizers and/or meeting participants, merges the meetings. For example, assume meeting organizer “A” schedules a meeting for a specific time and duration with a particular set of participants. Further assume a second meeting organizer “B” attempts to set a meeting at a timeslot that directly conflicts with the meeting organized by “A”. The merger agent 144 performs a check of the set of participants in both meetings and, if the sets of participants for the meetings are sufficiently similar, presents “B” with an option to request a meeting merger with “A”. If “B” accepts the option, a request is sent to “A” informing him or her that both A's and B's meetings are scheduled for approximately the same time with sufficiently similar meeting participants. The request sent to “A” will ask if he or she will agree to the meeting merger. If the request is accepted by “A”, the meetings are merged. As will be appreciated, the agent 144 identifies, for possible merger, not only overlapping meetings but also meetings that are temporally adjacent to one another.


In one configuration, the sets of participants are deemed to be “sufficiently similar” if at least a selected percentage or number of participants are common to both sets. For example, for two meetings, each of three participants, the meetings are deemed to be sufficiently similar if at least two of the three participants are in both meetings.


In another configuration, two meetings are deemed to be “sufficiently similar” if they are temporally adjacent to one another. Two meetings are deemed to be temporally adjacent if the two meetings are scheduled to take place within a selected time interval. For example, the two meetings are deemed to be temporally adjacent when they are scheduled to occur within the same week, same day, etc.


In other configurations, meetings are deemed to be “sufficiently similar” if one or more of the timeslot parameters are shared. For example, if the two meetings have a common subject, agenda item, or attachment, they are deemed to be sufficiently similar, even if the sets of participants of the two meetings are not sufficiently similar.


The operation of the meeting notification agent 136 will now be discussed with reference to FIGS. 3 and 5.


The process starts in block 300 when a search request is received from a subscriber or nonsubscriber. An exemplary search request is shown in FIG. 5. The search request 500 includes a number of search field's 504a-h that is completed by the requester. The search fields are a listing of the names or other identifiers of the desired meeting participants (field 504a), a listing of the names or other identifiers of the undesired (or excluded) participants (field 504b), a set of date fields 504c-f for the time period of interest in the search, a description of the subject matter to be discussed (field 504g), and a statement of other information (field 504h), such as an attachment to be discussed, a meeting room location, a conference bridge number and the like. The update field's 508a-d includes the requested changes to the existing meeting if located. The update fields 508a-d include a listing of the names or other identifiers of the additional participants (field 508a), the amount of meeting time required by the additional participants (field 508b), the subject matter to be discussed with the additional participants (field 508c), and other information of interest to one or more of the current participants of the existing meeting (field 508d). The other information may include, for example, a statement of the importance for the meeting update or other reasons why the requested meeting change needs to be effected.


In step 304, the agent 136 generates, from the request, a structured query for the database 120 and, in step 308, forwards the query to the API 140.


In step 312, the API performs the search of the database 120 to locate any meeting(s) satisfying the information inputted into the search fields and returns a response to the agent 136.


In decision diamond 316, the agent 136 determines whether or not a match was found. If not, the agent 136, in step 328, notifies the requestor that no match was found. If a match was found, the agent 136 proceeds to decision diamond 320.


In decision diamond 320, the agent 136 determines whether the requestor can be notified of the results. As noted, this decision diamond can be based on the authority level of the requestor and/or the stipulated level of restrictions/permissions attached to the meeting by the organizer. In one configuration, the decision is based on a combination of the two criteria in accordance with the mapping table above. For example, even though the meeting is designated as being confidential by the organizer, the existence and/or details of the meeting may still be provided to the requestor if the requestor is a supervisor of the meeting participants. To establish that the requester has the requisite authority, the requester can be subjected to an authentication procedure in which the requester is asked to provide a password before the meeting details will be provided.


If the requestor is not entitled to be notified of the search results, the agent 136 proceeds to step 328. The requester receives no feedback from the agent 136 that hints at the existence of a matching meeting. In one configuration, the update fields 508a-d are forwarded to the organizer and/or selected participants of the matching meeting so that they are aware of the request and can contact the requestor independently of the agent 136.


If the requestor is entitled to be notified of the search results, the agent 136, in decision diamond 324, determines the level of meeting details that may be provided to the requestor. As in the case of decision diamond 320, this determination can be based on the authority level of the requestor and/or the stipulated level of restriction attached to the meeting by the organizer.


When the requestor is authorized to receive the details of the meeting or when the meeting is open (i.e., not designated as being at least partially restricted), the agent 136, in step 332, provides a notification to the requestor providing the permitted meeting information. This information typically includes the list of meeting participants, the meeting location, the meeting time and duration, and the meeting subject matter. In one configuration, the agent 136 forwards the update fields 508a-d to the matching meeting organizer and/or selected participants of the matching meeting giving them an opportunity to agree to the proposed meeting modification. The organizer and/or selected participants could respond, “yes” to accept the modifications or “no” to refuse the modifications. A refusal may or may not be accompanied by an explanation, such as “adding you to the agenda would be inappropriate because people unrelated to Project X will be attending.”


When the requester is not authorized to receive the details of the meeting and the meeting is designated as being at least partially restricted, the agent 136, in step 336, provides an invitation, containing the contents of the update fields 508a-d, to one or more selected participants of the meeting, which matched the query. The selected participants generally include the meeting organizer.


In decision diamond 340, the agent 136 determines whether a response has been received from each of the selected participants within a timeout period. If not, the agent proceeds to step 348 and notifies the requester that a meeting exists but no other information may be currently provided. The requestor may contact independently one or more of the participants in an attempt to be included within the meeting.


If a response is received from each of the selected participants within the timeout period, the agent 136 proceeds to decision diamond 344 and determines whether each of the selected participants accepted the invitation, or indicated that the meeting may be updated as requested in the update fields. If not, the agent 136 proceeds to step 348. If so, the agent 136 proceeds to step 332 and provides the requestor and current meeting participants with a copy of the acceptance of the invitation and the updated meeting details.


Where multiple matches are found, the agent 136 may notify the requestor, if permitted, of each of the matches or may notify the requestor of only the meeting that is the “best” match. Predefined rules may define which of a number of matching meetings is the “best match.” In one configuration, an interactive session with the requester is conducted after the search is performed to filter the various matches down to the best match. In the session, the user is asked for additional details that would be desired in a match. The additional details may also be requested before the search is performed.


The operation of the meeting merge agent 144 will now be discussed with reference to FIGS. 4 and 6.


The process starts in block 400 when the agent 144 receives a request to schedule a meeting involving a set of participants and all or some of the timeslot meeting fields noted above.


The agent 144 automatically generates a structured query of the subscriber database 120 using, in the search fields, a subset of the meeting information received in the request. The subset of information is defined in a set of rules defining what degree of similarity is needed for the requested meeting and an existing meeting to be “sufficiently similar.” In other words, matching meetings must be meetings that are sufficiently similar to the requested meeting, and the query contains the minimum information required for the requested meeting and another meeting to be “sufficiently similar.” For example, the query may require only two of the three meeting participants to be present, the meeting to be on-site, and the meeting to be scheduled within three days of the requested meeting.


The agent 144 forwards the structured query to the API 140 in step 412.


In step 412, the API 140 executes the search set forth in the query and provides a response to the agent 144.


In decision diamond 416, the agent 144 determines whether any matching meetings were identified. When no matching meetings are identified, the agent 144 proceeds to step 428 and processes the meeting scheduling request or invitation in the normal manner. When a match is found, the agent 144 proceeds to step 420.


In step 420, the agent 144 sends a meeting merge request first to the requestor and then to the existing meeting organizer to approve the proposed merger. An exemplary merger invitation is shown in FIG. 6. The invitation 600 includes fields for the list of participants in the matching meeting (field 604), the scheduled time and duration of the matching meeting (field 608), the matching meeting location (field 612), the subject matter of the matching meeting (field 616) (which may include an agenda and/or attachment), and other information regarding the matching meeting (field 620). The “other information” may include a statement by the agent 144 of why the meeting is deemed to be sufficiently similar to the requested meeting. A “YES” icon 624 and “NO” icon 628 provide the recipient with the option of accepting or declining, respectively, the merger invitation.


In decision diamond 424, the merger agent determines whether both the requestor and matching meeting organizer have accepted the invitation to merge the meetings. If not, the agent 144 performs normal processing of the meeting request in step 428. If the invitation is accepted by both parties, the agent 144 sets up a merged meeting in step 432.


The merged meeting, when accepted by both parties, is set up according to predetermined rules. Exemplary rules include:

    • (i) the merged meeting start time is the earliest start time of the meetings to be merged;
    • (ii) the merged meeting duration is calculated by adding the duration of all of the meetings to be merged;
    • (iii) the meeting resources are booked for the duration of the merged meetings;
    • (iv) meeting updates are sent to all participants in the merged meetings notifying them of the merger;
    • (v) those who are not participants of the meeting(s), before they were merged, are notified that they may not be required for the entire meeting; and
    • (vi) the merged meeting appears as a large meeting with the various separate agendas of the component meetings.


In one configuration, the proposed merged meeting details (e.g., start time, duration, location, participants, and subject matter) are provided to the requestor in the merger invitation 600. The requestor may edit the proposed merged meeting details before, or as a condition of, acceptance. The revised, proposed merged meeting details are then provided in a second merger invitation 600 to the organizer of the matching meeting. The organizer can further revise the merged meeting details before acceptance. A further invitation is then sent to the requester indicating the further revised merged meeting details. The process is continued until the requestor and organizer have agreed on the revised meeting details.


As will be evident from the above discussion, more than two meetings may be merged depending on the application.


A number of variations and modifications of the invention can be used. It would be possible to provide for some features of the invention without providing others.


For example in one alternative embodiment, subscribers only and not nonsubscribers can perform searches for other subscribers' meetings and agree to meeting mergers.


In yet another embodiment, dedicated hardware implementations including, but not limited to, Application Specific Integrated Circuits or ASICs, programmable logic arrays, and other hardware devices can likewise be constructed to implement the methods described herein. Furthermore, alternative software implementations including, but not limited to, distributed processing or component/object distributed processing, parallel processing, or virtual machine processing can also be constructed to implement the methods described herein.


It should also be stated that the software implementations of the present invention are optionally stored on a tangible storage medium, such as a magnetic medium like a disk or tape, a magneto-optical or optical medium like a disk, or a solid state medium like a memory card or other package that houses one or more read-only (non-volatile) memories. A digital file attachment to e-mail or other self-contained information archive or set of archives is considered a distribution medium equivalent to a tangible storage medium. Accordingly, the invention is considered to include a tangible storage medium or distribution medium and prior art-recognized equivalents and successor media, in which the software implementations of the present invention are stored.


Although the present invention describes components and functions implemented in the embodiments with reference to particular standards and protocols, the invention is not limited to such standards and protocols. Other similar standards and protocols not mentioned herein are in existence and are considered to be included in the present invention. Moreover, the standards and protocols mentioned herein and other similar standards and protocols not mentioned herein are periodically superseded by faster or more effective equivalents having essentially the same functions. Such replacement standards and protocols having the same functions are considered equivalents included in the present invention.


The present invention, in various embodiments, includes components, methods, processes, systems and/or apparatus substantially as depicted and described herein, including various embodiments, sub combinations, and subsets thereof. Those of skill in the art will understand how to make and use the present invention after understanding the present disclosure. The present invention, in various embodiments, includes providing devices and processes in the absence of items not depicted and/or described herein or in various embodiments hereof, including in the absence of such items as may have been used in previous devices or processes, e.g., for improving performance, achieving ease and\or reducing cost of implementation.


The foregoing discussion of the invention has been presented for purposes of illustration and description. The foregoing is not intended to limit the invention to the form or forms disclosed herein. In the foregoing Detailed Description for example, various features of the invention are grouped together in one or more embodiments for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed invention requires more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive aspects lie in less than all features of a single foregoing disclosed embodiment. Thus, the following claims are hereby incorporated into this Detailed Description, with each claim standing on its own as a separate preferred embodiment of the invention.


Moreover, though the description of the invention has included description of one or more embodiments and certain variations and modifications, other variations and modifications are within the scope of the invention, e.g., as may be within the skill and knowledge of those in the art, after understanding the present disclosure. It is intended to obtain rights which include alternative embodiments to the extent permitted, including alternate, interchangeable and/or equivalent structures, functions, ranges or steps to those claimed, whether or not such alternate, interchangeable and/or equivalent structures, functions, ranges or steps are disclosed herein, and without intending to publicly dedicate any patentable subject matter.

Claims
  • 1. A method, comprising: (a) receiving a request from a requestor to participate in a meeting with a specified plurality of participants and/or regarding a selected matter;(b) determining whether a meeting is currently scheduled for at least some of the plurality of participants and/or for the selected matter; and(c) when a meeting is currently scheduled for at least some of the plurality of participants and/or for the selected matter, performing at least one of the following steps: (c1) notifying the requestor of at least one of the existence and details of the currently scheduled meeting; and(c2) forwarding an invitation to the requestor to merge the requested meeting with the currently scheduled meeting.
  • 2. The method of claim 1, wherein step (c1) is performed and further comprising: (d) determining whether the currently scheduled meeting is at least partially restricted and wherein step (c1) comprises the sub steps of:when the currently scheduled meeting is at least partially restricted, notifying the requestor of the existence of the currently scheduled meeting but not details regarding the meeting.
  • 3. The method of claim 2, wherein step (c1) comprises the sub steps of: when the currently scheduled meeting is fully restricted, not notifying the requestor of the existence of the currently scheduled meeting.
  • 4. The method of claim 2, wherein step (c1) comprises the sub steps of: when the currently scheduled meeting is open, notifying the requestor of the existence and details of the currently scheduled meeting.
  • 5. The method of claim 1, wherein step (c1) is performed, wherein the currently scheduled meeting is at least partially restricted, and further comprising: (d) determining whether the requestor is authorized to receive the meeting notification; and wherein step (c1) comprises the sub steps of:when the requester is authorized to receive the meeting notification, performing step (c1); andwhen the requester is unauthorized to receive the meeting notification, not performing step (c1).
  • 6. The method of claim 1, wherein step (c1) is performed and further comprising: (e) determining whether the currently scheduled meeting is at least partially restricted;when the currently scheduled meeting is at least partially restricted, notifying at least some of the participants of the currently scheduled meeting of the request seeking permission to provide to the requestor meeting information, which the requestor is otherwise not entitled to receive.
  • 7. The method of claim 1, wherein step (c2) is performed and further comprising: determining whether the currently scheduled meeting and requested meeting are substantially similar, wherein step (c2) is performed when the meetings are substantially similar.
  • 8. The method of claim 7, wherein the meetings are merged when the requestor and at least one participant of the scheduled meeting agree to the merger.
  • 9. A computer readable medium comprising executable instructions to perform the steps of claim 1.
  • 10. An information manager, comprising: (e) a calendar module operable to maintain scheduling information for meetings involving at least one subscriber;(f) a messaging module operable to send and receive electronic messages; and(g) a meeting notification agent operable to: (c1) receive a request from a requestor to identify a currently scheduled meeting matching a set of selected parameters;(c2) determine whether a meeting matching the set of selected parameters exists;(c3) when a meeting matching the selected set of parameters exists, determine whether selected information regarding the meeting may be disclosed to the requestor; and(c4) when selected information regarding the meeting may be disclosed to the requester, notify the requester of the selected information.
  • 11. The manager of claim 10, wherein the set of selected parameters comprises at least one of a set of participant identities, a time period during which eligible meetings are scheduled, a subject of the meeting, one or more agenda items for the meeting, an attachment for the meeting, a duration of the meeting, contact details for the meeting, and physical location.
  • 12. The manager of claim 10, wherein operation (c3) comprises the sub-operation of determining whether disclosure of information regarding the matching meeting has been restricted by at least one of the participants of the matching meeting.
  • 13. The manager of claim 10, wherein operation (c3) comprises the sub-operation of determining whether the requester is authorized to receive information regarding the matching meeting.
  • 14. The manager of claim 10, wherein the request comprises a set of search fields corresponding to the set of selected parameters and a set of update fields providing desired changes to any matching meeting.
  • 15. The manager of claim 10, wherein, when the matching meeting is partially restricted, the selected information disclosed to the requestor comprises the existence of the meeting but excludes at least a plurality of the set of matching meeting participants, the scheduled time for the matching meeting, the subject matter of the matching meeting, and the location of the matching meeting.
  • 16. The manager of claim 10, wherein, when the matching meeting is fully restricted, not disclosing the selected information to a requestor.
  • 17. An information manager, comprising: (h) a calendar module operable to maintain scheduling information for meetings involving at least one subscriber;(i) a messaging module operable to send and receive electronic messages; and(j) a meeting merge agent operable to: (c1) receive a request from a requestor to participate in a meeting;(c2) determine whether a currently scheduled meeting is sufficiently similar to the meeting identified in the request; and(c3) when a currently scheduled meeting is sufficiently similar to the identified meeting, providing a meeting merge request to at least one of the requester and a participant of the currently scheduled meeting seeking permission to merge the identified meeting and the currently scheduled meeting.
  • 18. The manager of claim 17, wherein the merge agent is operable to form a subset of the meeting information contained in the request, the subset defining when a currently scheduled meeting is substantially similar to the identified meeting and being used to search for a currently scheduled meeting.
  • 19. The manager of claim 17, wherein, when the meetings are to be merged, at least one of the following is true: a start time for the merged meeting is the start time of at least one of the currently scheduled and identified meetings, the merged meeting duration is the sum of the durations of the currently scheduled and identified meetings, the set of participants of the merged meeting comprises the participants of the currently scheduled and identified meetings, and the agenda for the merged meeting comprises the items in the agendas for the currently scheduled and identified meetings.
  • 20. The manager of claim 17, further comprising: (d) a meeting notification agent operable to: (d1) receive a second request from a second requestor to identify a currently scheduled meeting matching a set of selected search parameters; (d2) determine whether a meeting matching the set of selected search parameters exists; and(d3) when a meeting matching the selected set of parameters exists, determine whether selected information regarding the meeting may be disclosed to the second requestor; and(d4) when selected information regarding the meeting may be disclosed to the second requester, notify the second requester of the selected information.
Provisional Applications (1)
Number Date Country
60799223 May 2006 US