Systems, methods, and computer program products for managing events in time management or event scheduling applications, such as calendar applications, are disclosed. Embodiments comprise analyzing event parameters, such as selections from input solicited from prospective meeting attendees that are associated with events of the meeting, determining an arrangement of the events based on the analysis of the event parameters, and proposing the arrangement. System embodiments generally comprise a list of events for the meeting, such as event items in a database, a constraint solver to analyze parameters of events of the list, and an arrangement module to select an arrangement of the events based on analysis by the constraint solver.
PatentSwarm provides a collaborative workspace to search, highlight, annotate, and monitor patent data.
Tip: Select text to highlight, annotate, search, or share the selection.
The present invention generally relates to the fields of time management, appointment scheduling, event scheduling, meeting management, and calendaring applications. More particularly, the present invention relates to systems, methods, and computer program products for managing events in time management or event scheduling applications, such as calendar applications.
Time management and event scheduling applications have become integral parts of the lives of many people. People use calendar applications to help them manage business schedules and daily activities, such as for making appointments for various types of meetings. Electronic calendar applications, such as Lotus Notes®, Microsoft Outlook®, Mozilla® Sunbird™, and other types of calendaring and e-mail suites or programs provide capabilities for scheduling meetings.
People, such as managers and team leaders, use calendar applications or time management applications to schedule meetings with their respective employees or team members. A person may use the calendar application to schedule a meeting time and send invitations for the meeting to prospective attendees. Generally, each attendee invited to the meeting may accept, decline, or ignore the invitation. The calendar applications may notify the person scheduling the meeting which attendees have accepted, declined, and ignored the invitations. The calendar applications may update or make appropriate entries, or reservations, in the calendars of the attendees or invitees which have accepted the invitations to attend the meeting.
One big drawback of existing calendar applications is they do not allow a user to work with events within meetings, which may be thought of as “sub-meetings.” The existing calendar and time management applications do not allow for automatic coordination and scheduling of meetings that consist of multiple events having multiple time slots. Additionally, meeting coordinators often need to conduct meetings that require the attendances of specific individuals. To ensure the attendances of those specific individuals, the meeting coordinators may be forced to send out requests for available times for the meetings and select times that are available to all. Finding such suitable times for the meetings often consumes precious time that could be better spent on other more productive activities.
Given the current art, therefore, alternative methods, systems, and computer program products are needed to manage events in time management applications, such as calendar applications. Such alternative methods, systems, and programs may help meeting coordinators define meetings, may allow the coordinators to specify events for those meetings, and may help select arrangements for the events based on parameters specified by prospective attendees.
Aspects of the embodiments will become apparent upon reading the following detailed description and upon reference to the accompanying drawings in which like references may indicate similar elements:
FIG. 1 depicts a system for managing events in a calendar application based on parameters for the events;
FIG. 2 depicts an embodiment of a screen that a meeting coordinator may use to create meetings, including the creation of events for the meetings;
FIG. 3 shows an alternative embodiment of an interface screen that a meeting coordinator may use to create meetings, including the creation of events for the meetings;
FIG. 4 shows an embodiment of an interface screen that a meeting coordinator may use to select among various proposed meeting scenarios;
FIG. 5 shows an embodiment of an interface screen that a prospective meeting attendee may use to input preferences for various available time slots for a meeting being scheduled;
FIG. 6 shows an apparatus for arranging events of a meeting, comprising a meeting input module, an event list, a constraint solver, an arrangement module, and an invitation module;
FIGS. 7A-C depict a flowchart of an algorithm for managing events of a calendar application based on parameters for the events; and
FIG. 8 illustrates a method embodiment for arranging events of a meeting based on specified event parameters of prospective attendees for the meeting.
The following is a detailed description of example embodiments of the invention depicted in the accompanying drawings. The example embodiments are in such detail as to clearly communicate the invention. However, the amount of detail offered is not intended to limit the anticipated variations of embodiments; but, on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the present invention as defined by the appended claims. The detailed descriptions below are designed to make such embodiments obvious to a person of ordinary skill in the art.
Generally speaking, the present invention relates to systems, methods, and computer program products for managing events in time management or event scheduling applications, such as calendar applications. Method embodiments generally comprise defining events of a meeting, analyzing event parameters, such as selections solicited from prospective meeting attendees that are associated with events of the meeting, and determining an arrangement of the events based on the analysis of the event parameters. Some method embodiments also propose the arrangement. Some method embodiments involve sending invitations for the meeting to prospective attendees.
Various method embodiments may propose an alternate arrangement based on a modification by a prospective attendee, a meeting coordinator, or both. Some embodiments determine an arrangement of the events based on the analysis of the event parameters by analyzing multiple available time slots for the events received from a plurality of the prospective attendees. Various embodiments propose the arrangement by scheduling the events in electronic calendars of the prospective attendees.
System embodiments may also arrange events of a meeting. The system embodiments generally comprise a list of events for the meeting, such as event items in a database, a constraint solver to analyze parameters of events of the list, and an arrangement module to select an arrangement of the events based on analysis by the constraint solver. Alternative system embodiments may include a meeting input module to receive details of the events. Some embodiments may have an invitation module to send invitations to prospective attendees.
In some system embodiments, the invitation module may solicit input for the parameters from prospective attendees. Such input may be available time slots for attendees or priorities of available time slots for attendees. In some system embodiments, the invitation module may communicate the selected arrangement to attendees for a specific event in order to solicit input for the specific event. For some of these system embodiments, the arrangement module may select an alternative arrangement based on the solicited input.
As for the types of information that the constraint solver may analyze, it may evaluate or consider available time slots of one or more people, such as people attending the meeting, priorities of available time slots for attendees, and multiple available time slots for the events received from multiple attendees. In some system embodiments, the arrangement module may select the arrangement based on participation by an attendee in two consecutive events. Some method embodiments may also have the arrangement module automatically select an alternative arrangement of the events based on a modification by a meeting chair or an attendee.
Many of the discussions of the various embodiments have the term “arrange”. Worth emphasizing is the fact that “arranging” events of a meeting may, in some instances, involve selecting the order of the events. For example, an embodiment may determine that a first event is to take place before a second event, which comes before a third event, etc., based on availability and preferences of attendees. However, the terms “arrange” or “arranging” may also generally include such activities as planning, organizing, and specifying which attendees may participate in certain events. In other words, the term “arrange” should not be limited to or interpreted as only determining an order of events. “Arrange” may include the general acts of planning, organizing, and specifying details or parameters associated with the events, such as which attendees will participate or otherwise be associated with certain events.
Many of the discussions also use the terms “meeting coordinator” and “prospective attendee”. The term “meeting coordinator” may, depending on the embodiment or the situation, mean a supervisor of a group of people. However, the term may also be interpreted to mean one of the participants to the meeting, who is a coworker of other people who will be attending the event. Additionally, the meeting coordinator may not be a person participating in the meeting at all. For example, a supervisor may ask his or her secretary to schedule a meeting, wherein the secretary may not attend the meeting. “Prospective attendee” may generally be thought of as a person who is expected to attend the meeting, in other words an attendee. However, the person may not be able to attend, for one reason or another, and may have an alternate person attend the meeting in his or her place. Additionally, worth emphasizing, is the fact that “meeting coordinator” and “prospective attendee” may refer to people who do not actually attend the meeting.
Some of the discussions use the terms “server” and “client”. Generally, the term “server” may refer to a computer or device on a network that manages network resources. Clients may generally be thought of as computer applications running on computer systems that access the services provided by server applications and dedicated server computers. However, in several instances in the discussion these terms are interchangeable. Accordingly, one should not conclude that a discussion that uses only “client” or “server” terms, as opposed to using “computer” or “computer systems” terms, is meant to limit the discussion to one term or the other. One of ordinary skill in the art will recognize that such variations may be substituted for the described methods and systems, and employed in accordance with similar constraints, to perform substantially equivalent functions.
Turning to the drawings, FIG. 1 illustrates a system 100 which may comprise several different computers for managing events in a calendar application 130 based on parameters for the events. For example, system 100 may allow a meeting coordinator to schedule, prioritize, and arrange events, such as agenda items, for a meeting based upon parameters associated with the events. System 100 may comprise a network having many interconnected computing devices. For example computer 155 may comprise a desktop or laptop computer connected to a number of other computers, such as computers 160, 165, 170, and 175.
The computers of system 100 may comprise different types of computing devices. For example, each computer may comprise a desktop or a laptop computer. In alternative embodiments, one or more of the computers in system 100 may comprise portable computing devices, such as wireless personal digital assistants (PDAs) or palm-held personal computing devices. Additionally, the computers of system 100 may comprise a mixture of server and client computing devices. For example, computer 155 may comprise a server running calendar application 130 that users of client computers, such as computers 165 and 170, may access.
The computers of system 100 may connect to other computers of system 100 using a variety of different hardware in various embodiments. For example, computer 160 may comprise a desktop computer connected to computer 155 via an Ethernet cable coupled to a local or wide area network (LAN or WAN). Computer 175 may comprise a combination cellular telephone/PDA device coupled to computer 155 via a wireless virtual private network (VPN) link and located across town or in another country. In other words, various embodiments of system 100 may comprise an almost limitless number of wired and wireless communication devices, allowing computers of system 100 to communicate with each other, wherein the computers may be located close to or remote from each other.