Embodiments of the invention relate to a message based scheduling tool employed to function with an electronic calendar. As messages are transmitting between clients, a tool is employed to parse the messages to search for one or more string(s) of characters characteristic of a meeting. Based upon these characteristics and the parsing, the electronic calendars are searched to find an available time slot on both calendars in which a meeting can take place, and, if an available time is found, the meeting is scheduled and the clients are sent notification of the scheduling.
PatentSwarm provides a collaborative workspace to search, highlight, annotate, and monitor patent data.
Tip: Select text to highlight, annotate, search, or share the selection.
This application is a continuation patent application claiming the benefit of the filing date of U.S. patent application Ser. No. 13/109,571 filed on May 17, 2011 and titled “Automatic Scheduling Tool”, which is hereby incorporated by reference.
1. Technical Field
The present invention relates to a method and system for dynamic and interactive management of a calendar. More specifically, the invention relates to a system and method that creates a calendar entry based upon message communications.
2. Description of the Prior Art
Calendars come in various forms and sizes. Some calendars are on paper and others are electronic. With the advent of technology, electronic calendars have become popular as tools to maintain personal and/or business schedules. Within the category of electronic calendars, there are private calendars and semi-private calendars. A private electronic calendar is a calendar that is not shared among account holders. More specifically, the acts of creating entries and viewing entries are limited to the account holder. A semi-private electronic calendar is a calendar that is shared among multiple account holders. The sharing of the calendar enables each account holder to enter and schedule appointments on the same calendar. At the same time, since the calendar is shared, each account holder can at least see entries of the other account holders, and depending upon the settings may allow some or all of the account holders to make entries on the shared calendar. Accordingly, an electronic calendar is a prior art solution that addresses scheduling in an electronic medium that may be shared among multiple account holders.
Each appointment in an electronic calendar is reflected as an entry in a schedule. In a personal environment, entries are created for appointments, meetings, etc. Entries in a work environment are made in a similar manner. However, the act of creating an entry on the calendar interrupts ongoing processes. At the same time, if a meeting with another party is scheduled, a common date and time must be entered on the calendars of the respective parties. This type of scheduling is cumbersome and may require multiple communications, either oral or written, to ascertain a common time and location for the meeting.
This invention comprises a method for dynamic calendar management.
In one aspect, a computer implemented method is provided for use with message based communication. More specifically, a communication tool is employed to parse content embedded within a message being communicated. More specifically, the tool searches for and parses one or more select string of characters within the message(s), with the string of characters exhibiting characteristics of a request or need for a meeting. In response to the message parsing, electronic calendars of each of the parties identified within the message are searched to find at least one mutually available time to schedule the meeting based upon the exhibited characteristics. Each of the identified parties is then presented with at least one common and available date and time for the meeting.
In another aspect, a computer implemented method is provided for use with message based communication. A first client is configured with a first electronic calendar. Similarly, a second client is configured with a second electronic calendar. At such time as the first and second clients participate in a real-time direct text-based communication, a communication tool parses message content embedded in at least one message being communicated between the clients. The parsing includes searching for one or more select string of characters within the message, with the searched string of characters having characteristics of a meeting. First and second electronic calendars are searching to find a mutually available time slot to schedule the meeting based upon the characteristics. In response to finding a matching available time on the first and second calendars, each of the first and second clients are presented with at least one common and available date and time for the meeting.
Other features and advantages of this invention will become apparent from the following detailed description of the presently preferred embodiment of the invention, taken in conjunction with the accompanying drawings.
The drawings referenced herein form a part of the specification. Features shown in the drawings are meant as illustrative of only some embodiments of the invention, and not of all embodiments of the invention unless otherwise explicitly indicated. Implications to the contrary are otherwise not to be made.
FIGS. 1A and 1B are a flowchart illustrating a process for scheduling an appointment and creating a calendar entry for the appointment all based upon real-time direct text-based communication(s) between at least two clients over a network.
FIG. 2 is a block diagram illustrating tools embedded in a computer system to support text based communication, and more specifically for accessing and scheduling meetings on behalf of the parties taking part in the communication.
FIG. 3 is a block diagram illustrating tools embedded in a computer system to support text based communication directly between two client machines, and more specifically for accessing and scheduling meetings on behalf of the parties taking part in the communication.
FIG. 4 is a block diagram showing a system for implementing an embodiment of the present invention.
It will be readily understood that the components of the present invention, as generally described and illustrated in the Figures herein, may be arranged and designed in a wide variety of different configurations. Thus, the following detailed description of the embodiments of the apparatus, system, and method of the present invention, as presented in the Figures, is not intended to limit the scope of the invention, as claimed, but is merely representative of selected embodiments of the invention.
The functional units described in this specification have been labeled as tools, modules, and/or managers. The functional units may be implemented in programmable hardware devices such as field programmable gate arrays, programmable array logic, programmable logic devices, or the like. The functional units may also be implemented in software for execution by various types of processors. An identified functional unit of executable code may, for instance, comprise one or more physical or logical blocks of computer instructions which may, for instance, be organized as an object, procedure, function, or other construct. Nevertheless, the executables of an identified functional unit need not be physically located together, but may comprise disparate instructions stored in different locations which, when joined logically together, comprise the functional unit and achieve the stated purpose of the functional unit.
Indeed, a functional unit of executable code could be a single instruction, or many instructions, and may even be distributed over several different code segments, among different applications, and across several memory devices. Similarly, operational data may be identified and illustrated herein within the functional unit, and may be embodied in any suitable form and organized within any suitable type of data structure. The operational data may be collected as a single data set, or may be distributed over different locations including over different storage devices, and may exist, at least partially, as electronic signals on a system or network.
Reference throughout this specification to “a select embodiment,” “one embodiment,” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, appearances of the phrases “a select embodiment,” “in one embodiment,” or “in an embodiment” in various places throughout this specification are not necessarily referring to the same embodiment.
Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. In the following description, numerous specific details are provided, such as examples of modules, managers, etc., to provide a thorough understanding of embodiments of the invention. One skilled in the relevant art will recognize, however, that the invention can be practiced without one or more of the specific details, or with other methods, components, materials, etc. In other instances, well-known structures, materials, or operations are not shown or described in detail to avoid obscuring aspects of the invention.
The illustrated embodiments of the invention will be best understood by reference to the drawings, wherein like parts are designated by like numerals throughout. The following description is intended only by way of example, and simply illustrates certain selected embodiments of devices, systems, and processes that are consistent with the invention as claimed herein.
In the following description of the embodiments, reference is made to the accompanying drawings that form a part hereof, and which shows by way of illustration the specific embodiment in which the invention may be practiced. It is to be understood that other embodiments may be utilized because structural changes may be made without departing form the scope of the present invention.
Two electronic tools are becoming abundantly popular for managing schedules and associated communication. One of the electronic tools pertains to message based communication, and the other electronic tool is an electronic calendar. Message based communication between two or more people employing separate electronic devices can come in different forms, including but not limited to, text based messaging of portable telecommunication devices, non-real-time electronic mail communication, and real-time direct text-based communication between two or more people. Other forms of text based communication may exist, and as such, the examples shown herein are not considered limiting. The message based communication supports communication via text in place of or supplementary to voice based communication. Real-time direct text-based communication emulates a conversation in a text form as opposed to a verbal form. In effect, the real-time direct text-based communication employs a conduit between two electronic devices and supports real-time transmission of messages.
An electronic calendar is a calendar embedded and saved in an electronic format. There are different forms and configurations of these calendars. One such form enables a user to set-up and maintain the calendar on a location within a distributed network. The user establishes a login name and password to view and manage their settings on the calendar, including setting up meetings and appointments in electronic form. The user can login to access their calendar from any client machine in communication with the distributed network, and in one embodiment from a mobile device, including but not limited to a mobile telephone. Another form is an electronic calendar stored in data storage local to the client. In this form, the user can access their calendar from local data storage. Accordingly, the electronic calendar enables a user to cease use of a conventional calendar by replacing a paper based ledger with an electronic format.
Message based communication is merged with the electronic calendar to facilitate scheduling meetings and/or activities in an automated manner. FIGS. 1A and 1B are a flowchart (100) illustrating a process for scheduling an appointment and creating a calendar entry for the appointment all based upon real-time direct text-based communication(s) between at least two clients over a network. The process starts at step (102) with a first user associated with a first client machine sending a real-time communication over a network to a second user associated with a second client machine. In one embodiment, the communication is sent over the network by using a real-time direct text-based communication protocol supported by the first and second client machines, such that the communication is representative of a text based conversation. In another embodiment, the communication between the first and second client machines may be in non-real-time. Similarly, in another embodiment the number of client machines participating in the text based conversation is not limited to two client machines and may include three or more machines. Accordingly, the message based communication may be in real-time or non-real-time between two or more client machines across a network.
As shown, in step (104), the text-based communication is received at the second client machine. Following receipt at step (104), the received message is parsed for one or more select string(s) of characters or words characterizing an attribute of a meeting time (106). In other words, as a message is communication from the first client machine to the second client machine, the content of the message is parsed for specific message content. In one embodiment, the aspect of parsing takes place for each communicated text-based message. Following the parsing of the message at step (106), it is determined if the message content included one or more words, phrase(s), or string(s) of characters that are associated with the desire or need for the parties of the text-based communication to have a meeting (108). If the select words, phrase(s), or string of characters are not present, the text-based messaging may continue with receipt of another test based communication between the users (110), followed by a return to step (106) to parse the next message in the text-based conversation. Conversely, if at step (108) it is determined that the select words, phrase(s), or string of characters are present in the communication, then the scheduling process is initiated. The parsing of the text-based message takes place for each communicated message. In one embodiment, the parsing continues parallel to the scheduling evaluation.
As described above, electronic calendars are a commonly used tool for scheduling meetings and activities. Following a positive response to the determination at step (108), it is determined if the user associated with the first client machine has an electronic calendar account (112). In one embodiment, the electronic calendar account information may be embedded within a profile associated with the user. A negative response to the determination at step (112) concludes the scheduling process (114). Conversely, a positive response to the determination at step (112) is followed by determining if the user associated with the second client machine has an electronic calendar account (116). A negative response to the determination at step (116) concludes the scheduling process (114). However, a positive response to the determination at step (116) enables the calendar scheduling process to proceed. More specifically, following the positive response at step (116), the calendar of the user associated with the first machine is searched for meeting availability (118), as is the calendar of the user associated with the second machine (120). It is then determined if the searching at steps (118) and (120) have an intersecting time interval available for scheduling a meeting (122). In one embodiment, the determination at step (122) is limited to a preset time interval following the communication. Similarly, in one embodiment, the preset time interval is an adjustable variable. In one embodiment, determining a mutually available time slot requires taking time zones, and possible time differences among the users, into consideration. Accordingly, following a determination that both users that are involved in the text based conversation have an electronic calendar; a further search is conducted for scheduling a meeting.
Following a positive response to the determination in step (122), calendar entries are created in the calendars of the respective users (124), and a notification message is sent to each of the users of the calendars (126) thereby informing the users of the recently scheduled meeting. Conversely, if the response to the determination at step (122) is negative, a determination is made whether the search for available time slots should be extended beyond the preset time interval (128). In one embodiment, a message can be sent to the first and second client machines to make a determination with respect to the extended search. If a decision is made to extend the search beyond the preset time interval, the pre-set time interval is adjusted (130) and the process returns to step (118). Conversely, a negative response to the determination at step (128) concludes the scheduling process for the current text based communication (132). Accordingly, the electronic calendars of each of the users are searched within a defined time interval to ascertain an intersecting time for scheduling of a meeting between the parties of the text based conversation.
As demonstrated in the flow chart of FIG. 1, a method is employed to support extracting data from a text based messaging conversation, and more specifically, dynamically setting a meeting for the conversant on each of their respective electronic calendars. FIG. 2 is a block diagram (200) illustrating tools embedded in a computer system to support text based communication, and more specifically for accessing and scheduling meetings on behalf of the parties taking part in the communication. As shown, a computer system is provided with a server (210) in communication with at least two client machines (230) and (250) over a network (205). Although only two client machines (230) and (250) are shown herein, in one embodiment additional client machines may be provided in communication with the server (210). The server (210) is provided with a processing unit (212) in communication with memory (216) across a bus (214), and in communication with data storage (218). In one embodiment, the server (210) may communicate with remote data storage (not shown) across the network connection (205). Each of the client machines (230) and (250) may read from and write data to storage data (218) across the network connection (205).