An automated method of scheduling activities between users having on-line calendar information available to a network, comprises: electronically reading respective on-line calendar information across said network, the respective calendar information being of a plurality of users intended for a planned activity, thereby to find times of mutual availability, and electronically writing to respective on-line calendar information across said network, to reserve a time slot for said planned activity at respective intended users.
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 application claims priority from U.S. Provisional Patent Application No. 60/657,563, filed on Mar. 1, 2005, the contents of which are hereby incorporated by reference.
The present invention relates to an automatic scheduling method and apparatus and, more particularly, but not exclusively to such a scheduling method and apparatus which are designed to schedule and manage multi-user events or activities over a network.
In the past, the kinds of people who organized multi-person meetings, activities, conferences etc. had secretarial support staff who would make the necessary arrangements. Today, where the trend is for people to do their own typing using computers, there is less secretarial support, and people tend to schedule more of the meetings themselves. The existing secretaries have more people to support, and could also use help in scheduling activities, as in many cases scheduling tasks occupy large percent of their workload.
Scheduling programs such as Microsoft Outlook™ have therefore stepped into the breach and provide a calendar packaged with an email program. The calendar can be used to schedule meetings and issue invitations to prospective participants, but typically not to negotiate the best time and place for the meeting. It can further track users who have replied and either accepted or rejected the invitation.
In addition, typically within an organization, outlook can be configured to run on a server so that users can share calendars if they wish. Other users within the organization can thus see free and busy times and send invitations accordingly.
Outlook has a companion server product, Microsoft Exchange™, and this sometimes facilitates meeting scheduling through the provision of shared user calendars. However, this approach is of limited use for a number of reasons. First, all users must be on the same Exchange server, a requirement that is very rarely met in real scheduling circumstances. Secondly, sharing of calendars is not sufficient for actually scheduling a meeting, as what is in a single person's calendar to start with has little bearing on whether or not that is the best time to schedule a given activity, especially if the activity involves multiple users.
While many users of outlook have become accustomed to using the free and busy information available in an outlook meeting request for people on a corporate exchange server as described above, many meetings include someone from outside the company. In these cases, meeting requests devolve into an extended game of chase, involving email and telephone tag. Also, for those people who use outlook without a central server, no calendar sharing at all is possible. Furthermore, even when free/busy sharing is possible, the scheduling problem is not resolved, because just because person A is “free” in a specific timeslots, it does not mean he wants to meet with person B. Similarly, just because the calendar shows “busy”, does not imply person A will decline an invitation from person B.
Making calendar data available outside an organization is not a trivial issue. One issue is corporate confidentiality. One often does not want outsiders to know when one is free or busy, and certainly not to be able to see what projects or clients one is devoting one's time to. Any technological solution would have to address corporate confidentiality.
Furthermore, solutions that allow sharing of data amongst numerous people are vulnerable to unwanted multiplication of data, people sending out notifications to large user lists etc, not to mention deliberate spam. Vulnerabilities of this kind need to be addressed as well.
As an additional complication, once the activity is scheduled and confirmed, there could still be events that affect the activity, including invitees who change their mind, new documents or other data which becomes available after the scheduling has occurred etc. There is no simple way to manage those with the current art. While previous systems, such as Timedance, or Zaplet have attempted to solve some the above-mentioned problems, they have not provided more than a partial solution. Timedance, for example, used the World Wide Web and standard “Internet email” to make it possible for people to schedule meetings across organizational boundaries. However, this system lived outside the context of the users' regular email clients. Timedance also fails to make group scheduling really work in a practical way.
There is thus a widely recognized need for, and it would be highly advantageous to have, a scheduling tool devoid of the above limitations.
According to one aspect of the present invention there is provided a scheduler for scheduling activities amongst networked users having on-line calendar information, the scheduler comprising:
a network mobile element directable over said network to invitees, said invitees being ones of said networked users invited to a given activity by another networked user being an activity originator, said network mobile element being configured to automatically cause gathering of availability data from respective on-line calendar information of said invitees, and a scheduling element for collating said gathered availability data, thereby to schedule said given activity at a time of high overall availability amongst said invitees.
According to a second aspect of the present invention there is provided a scheduler for coordinating activities between users having on-line calendar information available to a network, the scheduler comprising an autonomous element configured to transfer itself over said network between said users to interact with online calendar information of respective users, thereby to coordinate activities.
According to a third aspect of the present invention there is provided an automated method of scheduling activities between users having on-line calendar information available to a network, comprising:
electronically reading respective on-line calendar information across said network, said respective calendar information being of a plurality of users intended for a planned activity, thereby to find times of mutual availability, and
electronically writing to respective on-line calendar information across said network to reserve at least one time slot for said planned activity at respective intended users.
According to a fourth aspect of the present invention there is provided an electronic mailing system comprising:
a) an email client. and
b) a scheduling function associated with said email client for inserting into emails functionality for carrying out automatic scheduling of activities via a plurality of proposed time slots.
Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. The materials, methods, and examples provided herein are illustrative only and not intended to be limiting.
Implementation of the method and system of the present invention involves performing or completing certain selected tasks or steps manually, automatically, or a combination thereof. Moreover, according to actual instrumentation and equipment of preferred embodiments of the method and system of the present invention, several selected steps could be implemented by hardware or by software on any operating system of any firmware or a combination thereof. For example, as hardware, selected steps of the invention could be implemented as a chip or a circuit. As software, selected steps of the invention could be implemented as a plurality of software instructions being executed by a computer using any suitable operating system. In any case, selected steps of the method and system of the invention could be described as being performed by a data processor, such as a computing platform for executing a plurality of instructions.
The invention is herein described, by way of example only, with reference to the accompanying drawings. With specific reference now to the drawings in detail, it is stressed that the particulars shown are by way of example and for purposes of illustrative discussion of the preferred embodiments of the present invention only, and are presented in order to provide what is believed to be the most useful and readily understood description of the principles and conceptual aspects of the invention. In this regard, no attempt is made to show structural details of the invention in more detail than is necessary for a fundamental understanding of the invention, the description taken with the drawings making apparent to those skilled in the art how the several forms of the invention may be embodied in practice.
In the drawings:
FIG. 1 is a simplified schematic block diagram illustrating a scheduler according to a first preferred embodiment of the present invention for allowing scheduling between different users;
FIG. 2 shows the scheduler of FIG. 1 in greater detail;
FIG. 3 is a simplified schematic diagram illustrating a client server configuration according to a preferred embodiment of present invention;
FIG. 4 is another simplified schematic diagram illustrating a first peer to peer implementation of a scheduler according to a preferred embodiment of present invention;
FIG. 5 is another simplified schematic diagram illustrating a second peer to peer implementation of a scheduler, according to a preferred embodiment of the present invention;
FIG. 6 is another simplified schematic diagram illustrating an email based implementation of a scheduler according to a preferred embodiment of the present invention, in which individual users send to each other using an invite list of email addresses of the other invitees;
FIG. 7 illustrates a process for scheduling a meeting according to a preferred embodiment of the present invention;
FIGS. 8-17 are simplified flow charts showing in greater detail parts of the process of FIG. 7;
FIG. 18 is a simplified block diagram showing the implementation of FIG. 3 in greater detail;
FIG. 19 is a block diagram showing the implementation of FIG. 5 in greater detail; and
FIGS. 20-31 are screen shots showing exemplary windows of preferred implementations of the present invention.
The present embodiments comprise an apparatus and a method for automatic or semi-automatic scheduling using gathering of event specific availability data over a network, while disseminating information about the activity. Preferably tentative time slots are reserved on calendars of one or more invitees, conflicts are resolved in an optimal way and an optimal time slot for holding an activity is selected.
The principles and operation of an apparatus and method according to the present invention may be better understood with reference to the drawings and accompanying description.
Before explaining at least one embodiment of the invention in detail, it is to be understood that the invention is not limited in its application to the details of construction and the arrangement of the components set forth in the following description or illustrated in the drawings. The invention is capable of other embodiments or of being practiced or carried out in various ways. Also, it is to be understood that the phraseology and terminology employed herein is for the purpose of description and should not be regarded as limiting.
Reference is now made to FIG. 1, which illustrates a scheduler for scheduling activities amongst networked users having on-line calendar information. The scheduler 10 comprises a network mobile element 12 which can be directed over a network between an activity originator and one or more invitees. The network mobile element may be a smart element, that is an element carrying intelligence. Alternatively the necessary intelligence may be located at the various parties, say at a user client, and the network mobile element is simply an activator element and data carrier. The originator is a user of the network who wishes to organize an activity that involves other users and the invitees are the other networked users that the originator intends to invite to the activity. The mobile or smart element 12 automatically or manually gathers availability data from the on-line calendar information of the different invitees, who might be at different locations on a LAN or over the internet or across any other network. Invitees information might be sent automatically, or might require manual intervention on the part of the invitee. The information gathered by the smart element is used by a scheduling element 14. The scheduling element first collates the gathered availability data, and uses the collated information to schedule the activity at a time of high overall availability amongst the invitees. If possible, the scheduler tries to schedule the activity for a time which is free to all invitees. Otherwise, if there is no universally free time the scheduler tries to find a time which is clear or convenient for most of the users (or at least the more important users), and various schemes, as explained in greater detail below, are used to find convenient times.
Typically the smart element enters a tentative reservation in invitees' on-line calendars. If the time is apparently free for all users then the scheduling element sends electronic invitations to each user. The users can then confirm the invitation. The invitees still have the option to reject the invitation. If the invitation is rejected then the process may be repeated. In some of the schemes multiple times can be reserved and invitees vote on the preferred times. This latter scheme is particularly helpful if no time free to everyone can be found.
Reference is now made to FIG. 2, which is a simplified diagram showing the scheduler of FIG. 1 in greater detail. Parts that are the same as in FIG. 1 are given the same reference numerals and are not referred to again except as necessary for an understanding of the present figure. The scheduling element includes an invitation unit 20 which issues the electronic invitations referred to above once a suitable time has been found. The confirmation unit 20 typically sends out confirmations by email once a time is confirmed. Aside from email any other suitable protocol may be used. The invitations are preferably similar to those which can be issued today from scheduling programs, in that they include acceptance and rejection options. The acceptance or rejection is automatically emailed back to the scheduling element 14, and if rejections are received then the scheduling element is able to reschedule the activity as necessary. Alternatively, acceptance, rejection and any other support information can be input into a web page specifically generated for this activity.
As described above, all invitees are given equal weight, but not all meetings or activities in practice depend to an equal extent on all users. An option is thus provided to classify invitees, say between essential and non-essential, so that the rescheduling is only carried out following refusal by an essential attendee. In a further embodiment conditions may be applied based on the non-essential attendees as well. Thus a certain number of non-essential attendees could be set, below which the meeting is in any event reset. Alternatively, or additionally, non-essential attendees could be arranged into groups so that at least one member from each group is required to attend. Other rules may be set up by the activity originator as appropriate for his activity.
Similar rules may be set at the earlier stage in which the scheduling element sets a time based on information obtained by the smart element. Rather than setting the meeting for a time at which all invitees are free, the scheduling element may also give weight to the schedules of essential attendees, or consider attendees in groups. In this way the scheduler can seek to maximize the attendance of non-essential attendees without making their attendance a condition for the activity.
The smart element preferably includes an encryption unit 22 to ensure that no sensitive information is sent in plain text form over an open connection.
The smart element itself is typically able to read availability data from the calendars of the various on-line users. One version is compatible with the most common Microsoft Outlook™ scheduler, and other versions include compatibility with other commonly used schedulers.
As mentioned above, the smart element reserves time slots on the invitees' calendars by inserting its own time-slot elements. The time slots could be chosen as suggestions by the meeting originator or could be generated automatically by a tentative reservation unit 24. The reservation unit 24 provides one or more tentative time slots to the smart element, which in turn enters them on the invitees' calendars if the time is free or reports back when the time is not free, as will be described in greater detail below.
The scheduler preferably further includes an update unit 26 whose task is to update the invitees and the originator about the tentatively reserved timeslots. Thus if a timeslot has been accepted by 90% of participants, then the invitees can be informed of this so that they know that the meeting has a high probability of going ahead.
Reference is now made to FIG. 3, which is a simplified diagram showing the scheduler in a client server configuration for remote activation by clients. Organizer 30 connects to server 32 which supports scheduler 10. Scheduler 10 then acts as an intermediary between the organizer and invitees 1 . . . n. The client-server configuration is discussed in greater detail hereinbelow.
Reference is now made to FIG. 4, which is a simplified diagram illustrating a first peer-to-peer configuration of the scheduler. In the arrangement of FIG. 4, the scheduler is located at organizer 40. The smart element 12 communicates which each of the invitees 1 . . . n through direct peer to peer connections with each invitee. It is noted that such a system requires that the organizer and each invitee are on-line simultaneously. The latter condition is likely to be fulfilled where the organizer and the invitees are the kinds of users who have their computers on-line throughout the working day, but may become an issue otherwise.
Reference is now made to FIG. 5, which is a simplified diagram illustrating a second peer-to-peer configuration. The second peer to peer configuration is a peer to peer network, in which any node is able to connect to any other node and in which messages are sent along the network on a nearest neighbor basis. Scheduler 10 is located with originator 50 and uses the peer to peer network to send messages to the other invitees. Messages may be relayed from one invitee to another or via other nodes on the network that are not invitees. An advantage of the peer to peer network over direct peer to peer connection is that in the case of the network the originator does not have to be on line simultaneously with each attendee.
Reference is now made to FIG. 6, which is a simplified diagram showing a further configuration of the scheduler. In the configuration of FIG. 6, neither client server nor peer to peer connections are used. Rather the smart element operates through email queries. The scheduler 10 is preferably located with the originator and email queries are sent to each invitee to tentatively reserve timeslots and obtain availability information. Each invitee keeps a list 62 of email addresses of all other invitees and subsequent updating can be sent directly from each invitee to each other invitee and the originator. The embodiment of FIG. 6 has the advantage that no users are required to be on line simultaneously, since email servers store the emails until the particular user connects.
It is noted that different activities may be categorized as important, low level etc. Then during scheduling, an important activity can be given scheduling preference over a less important activity.
As a further enhancement, it is possible to allow an initial meeting invitation to suggest a range in which multiple time slots lie, say “next Thursday” or “two weeks from now”. Scheduling itself works the same way, with all of the time slots in the range initially featuring as tentative timeslots.