# Patent

## Title
System and method for aggregating feedback

## Abstract

Systems, servers, methods, media, and programs for managing meeting ratings in a distributed system are provided. A feedback application generates a calendar invitation for a meeting to a meeting leader and meeting attendees, hosts the meeting, provides a request for feedback to the meeting attendees, generates a summary of the feedback or a recommendation for the meeting leader based on the feedback and provides the meeting leader with the summary of the feedback or the recommendation. The feedback application can also determine that the meeting leader is eligible for a reward.

## Background
CROSS REFERENCE TO RELATED APPLICATIONS
This application claims priority under 35 USC §119(e) to U.S. Application No. 61/622,243, entitled “Integrated Systems for Cultivating Consistent Culture of Quality Meetings and Meeting Leaders in a Distributed Processing Environment” filed Apr. 10, 2012, which is hereby incorporated by this reference.


BACKGROUND
1. Field of the Disclosure
The specification generally relates to a distributed method and system that provide for evaluating meetings and meeting leaders, and to systems and methods for facilitating the collection of feedback from events via a shared online application.
2. Background Information
It is often times desirable to evaluate meetings and/or meeting leaders based on feedback solicited from attendees of a meeting or event. Such evaluation information is useful to meeting leaders in that they may review the information and learn what areas of the meeting were well-received and what areas of the evaluated meeting were not. Further, meeting leaders can review evaluations of their own meeting performance, in order to learn from them and identify respective strengths and weaknesses.
SUMMARY OF THE DISCLOSURE
The disclosure, through one or more of its various aspects, embodiments, and/or specific features or sub-components, provides various systems, servers, methods, media, and programs for interfacing compiled codes, such as, for example, JavaScript scripts.
The disclosure generally relates to a distributed method and system that provides for evaluation of meetings and meeting leaders, and to systems and methods for facilitating the collection of feedback from meeting attendees via a shared online application, aggregating the feedback of the meeting attendees, and providing the aggregated feedback to meeting leaders. In one embodiment, the method includes generating a calendar invitation for a meeting to a meeting leader and meeting attendees, hosting the meeting, providing a request for feedback, generating a summary of the feedback or a recommendation for the meeting leader based on the feedback and providing the meeting leader with the summary of the feedback or the recommendation.
According to the disclosure, a computer-implemented method is provided for managing meeting ratings in a distributed system that includes at least one memory and at least one processor. The method includes generating a meeting rating input area for presentation to a user. The meeting rating input area is integrated into an electronic scheduling application and is associated with a meeting on the electronic scheduling application of the user. A selection by the user is received in the meeting rating input area by the user, in which the selection represents user feedback of the meeting. Then, the user feedback of the meeting is aggregated with other feedback from at least one other party, into aggregated feedback. Then, the aggregated feedback is stored for presentation to a leader of the meeting.
According to another embodiment, an online reward may be generated when the aggregated feedback meets or exceeds a predetermined threshold. In another aspect, the online reward may include a post to a social media application. In still another aspect, the method may also include generating questions in the meeting rating input area for the user to answer. In yet another aspect, a rating field may be generated in the meeting rating input area that includes blank indicators, such that the selection of any of the blank indicators by the user causes the selected indicator to change appearance. That is, a greater number of indicators that are selected by the user provide an indication of a higher favorability rating for the meeting.
According to another embodiment, a text input area is generated in which the user can indicate textual feedback regarding the event. The text input area may be displayed in response to the user selecting an option indicating a desire to input textual feedback. In yet another embodiment, the electronic scheduling application is a calendar application. In still another embodiment, the meeting rating input area is configured for display as a sidebar in the electronic scheduling application of the user. In another embodiment, the event rating input is configured for display in a pane of the electronic scheduling application that includes information associated with the meeting. In one embodiment, the information associated with the meeting includes a scheduled beginning and ending time for the meeting.
In another embodiment, historical aggregated feedback information associated with multiple meetings of the leader is generated. In one embodiment, the feedback is received anonymously. In yet another embodiment, the aggregated feedback is generated for public distribution. In still another embodiment, the feedback is generated for private distribution.
According to another embodiment of the disclosure, a non-transitory computer readable medium that stores a computer program to manage meeting ratings in a distributed system is provided. The program is executable by processor to generate a meeting rating input area for presentation to a user. The meeting rating input area is integrated into an electronic scheduling application and is associated with a meeting on the electronic scheduling application of the user. The program is executable by the processor to receive at least one selection in the meeting rating input area by the user. The selection includes user feedback of the meeting. The program is executable by the processor to aggregate the user feedback of the meeting with other feedback from at least one other party, into aggregated feedback.
According to another embodiment, the program is executable by the processor to generate an online reward when the aggregated feedback meets or exceeds a predetermined threshold. According to still another embodiment, the online reward is a post to a social media application. The program is executable by the processor to generate multiple questions in the meeting rating input area for the user to answer. The program is executable by the processor to generate a rating field in the meeting rating input area including multiple blank indicators, in which the selection on any one of the blank indicators by the user causes the selected indicator to change appearance. In this case, the greater the number of indicators selected by the user indicates a higher favorability rating for the meeting.
According to yet another embodiment of the disclosure, the program is executable by the processor to generate a text input area for the user to indicate textual feedback concerning the meeting. The text input area is configured for display in response to the user selecting an option indicating a desire to input textual feedback. According to another embodiment, the electronic scheduling application includes a calendar application. According to still another embodiment, the meeting rating input area is configured for display as a sidebar in the electronic scheduling application of the user. According to yet another embodiment, the meeting rating input area is configured for display in a pane of the electronic scheduling application that includes information associated with the meeting. In one embodiment, the information associated with the meeting includes a scheduled beginning and ending time for the meeting.
According to another embodiment of the disclosure, the program is executable by the processor to generate historical aggregated feedback information associated with multiple meetings of the leader. According to another embodiment, the user feedback is received anonymously. According to another embodiment, the program is executable by the processor to generate aggregated feedback for public distribution. According to another embodiment, the program is executable by the processor to generate aggregated feedback for private distribution.
According to another embodiment of the disclosure, a computer-implemented system for managing meeting ratings in a distributed computing environment is provided. The system includes at least one memory that stores meeting information of a user, at least one processor that generates a meeting rating input area for presentation to a user, in which the meeting rating input area is integrated into an electronic scheduling application and is associated with a meeting on the electronic scheduling application of the user. The at least one processor also receives at least one selection in the meeting rating input area by the user, in which the selection includes user feedback of the meeting. The at least one processor also aggregates the user feedback of the meeting with other feedback from at least one other party into aggregated feedback, and stores the aggregated feedback for presentation to a leader of the meeting. The at least one processor also generates multiple questions in the meeting rating input area for the user to answer, and generates a rating field in the meeting rating input area including multiple blank indicators, in which the selection of any one of the blank indicators by the user causes the selected indicator to change appearance. The greater the number of indicators selected by the user indicates a higher favorability rating for the meeting.
According to another embodiment, the meeting rating input area is configured for display as a sidebar in the electronic scheduling application of the user. According to another embodiment, the meeting rating input area is configured for display in a pane of the electronic scheduling application that includes information associated with the meeting. According to another embodiment of the disclosure, the information associated with the meeting includes a scheduled beginning and ending time for the meeting. According to another embodiment, the feedback is received anonymously. According to another embodiment, the aggregated feedback is prepared for public distribution. According to another embodiment, the aggregated feedback is prepared for private distribution.



BRIEF DESCRIPTION OF THE DRAWINGS
The specification is further described in the detailed description which follows, in reference to the noted plurality of drawings, by way of non-limiting examples of preferred embodiments of the present invention, in which like characters represent like elements throughout the several views of the drawings.
FIG. 1 is a block diagram of an example system for providing and receiving feedback regarding meetings and/or meeting leaders, according to one embodiment.
FIG. 2 is a block diagram of one embodiment of a distributed processing system.
FIG. 3 is a flow chart of an example method for processing the data in the network shown in FIG. 2, according to one embodiment.
FIG. 4 is a display of an example user interface of a calendar application, according to one embodiment.
FIG. 5 is a display of an example user interface in which the meeting application resides within a calendar application according to one embodiment.
FIG. 6 is a display of an example user interface in which the meeting application resides within a calendar application according to one embodiment.
FIG. 7 is a display of an exemplary user interface in which the user has received a rating within a calendar application, according to one embodiment.
FIG. 8 is an example representation of a text input area provided within a user interface, according to one embodiment.
FIG. 9 is flow chart of an example method of receiving a user ranking of a meeting and/or meeting leader, according to one embodiment.
FIG. 10 is a flow chart of an example method for providing aggregated feedback to a meeting leader, according to one embodiment.
FIG. 11 is an example representation of a display of participant feedback provided to a meeting leader, according to one embodiment.
FIG. 12 is an example representation of a display of aggregated participant feedback provided to a meeting leader over time, according to one embodiment.
FIG. 13 is an example representation of a display of an online reward provided to a meeting leader, according to one embodiment.
FIG. 14 is an example representation of a summary of the feedback.



DETAILED DESCRIPTION
The specification, through one or more of its various aspects, embodiments and/or specific features or sub-components, is thus intended to bring out one or more of the advantages as specifically noted below.
FIG. 1 is an example system for use in accordance with the embodiments described herein. The system 100 comprises a server 102 and user devices 120a, 120n that are each connected to the network 122. The server 102 may operate as a standalone device or may be connected to other systems or peripheral devices. For example, the server 102 may include, or be included within, any one or more computers, servers, systems, communication networks or cloud environment.
In one embodiment, the feedback application 109a is operable on the server 102, which is coupled to the network 122 via signal line 104. The server 101 can be a hardware server that includes a processor and a memory. The server 102 sends and receives data to and from one or more of the user devices 120a, 120n via the network 122.
The feedback application 109b may be operable on the user device 120a, which is coupled to the network via signal line 108. The user device 120, or portions thereof, may be implemented as, or incorporated into, various devices, such as a personal computer, a tablet computer, a set-top box, a personal digital assistant, a mobile device, a palmtop computer, a laptop computer, a desktop computer, a communications device, a wireless telephone, a personal trusted device, a web appliance, or any other machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that device. In some embodiments, the v application 109b acts in part as a thin-client application that may be stored in part on the user device 120a, 120n and in part on the server 102. For example, the user device 120a, 120n runs a calendar component and generates user interfaces for receiving user feedback. The server 102 receives the user feedback from user devices 120a, 120n and aggregates the feedback. In some embodiments, the feedback application 109b is a browser plug-in.
As shown in FIG. 1, the user device 120 may include a computer display, such as a liquid crystal display, an organic light emitting diode, a flat panel display, a solid state display, a cathode ray tube, a plasma display, or any other known display.
The user device 120 may include at least one computer input device, such as a keyboard, a remote control device having a wireless keypad, a microphone coupled to a speech recognition engine, a camera such as a video camera or still camera, a cursor control device, or any combination thereof. Those skilled in the art appreciate that various embodiments of the user device 120 may include multiple input devices. Moreover, those skilled in the art further appreciate that the above-listed, exemplary input devices are not meant to be exhaustive and that the user device 120 may include any additional, or alternative, input devices.
The user device 120 may also include a medium reader and a network interface. Furthermore, the user device 120 may include any additional devices, components, parts, peripherals, hardware, software or any combination thereof which are commonly known and understood as being included with or within a computer system, such as, but not limited to, an output device. The output device may be, but is not limited to, a speaker, an audio out, a video out, a remote control output, or any combination thereof.
The network 122 can be a conventional type, wired or wireless, and may have numerous different configurations including a star configuration, token ring configuration or other configurations. The network 122 may be, but is not limited to, a local area network, a wide area network, the Internet, a telephony network, or any other network commonly known and understood in the art. The network 105 may also be coupled to or includes portions of a telecommunications network for sending data in a variety of different communication protocols. In some instances, the network 105 includes Bluetooth communication networks or a cellular communications network for sending and receiving data including via short messaging service (SMS), multimedia messaging service (MMS), hypertext transfer protocol (HTTP), direct data connection, WAP, email, etc. The network 122 is shown in FIG. 1 as a wireless network. However, those skilled in the art appreciate that the network 122 may also be a wired network.
Of course, those skilled in the art appreciate that the above-listed components of the system 101 are merely meant to be exemplary and are not intended to be exhaustive and/or inclusive. Furthermore, the examples of the components listed above are also meant to be exemplary and similarly are not meant to be exhaustive and/or inclusive.
In the specification, the terms event and meeting are used interchangeably. Similarly, the terms scheduling application and calendar application are used interchangeably.
FIG. 2 depicts an example feedback application 109. The computing device 200 comprises a feedback application 109, a processor 235, a memory 237, a communication unit 241 and storage 243. In one embodiment, the computing device 200 is a server 102. In another embodiment, the computing device 200 is a user device 120.
The processor 235 includes an arithmetic logic unit, a microprocessor, a general purpose controller or some other processor array to perform computations and provide electronic display signals to a display device. The processor 235 is coupled to the bus 220 for communication with the other components via signal line 222. Processor 235 processes data signals and may include various computing architectures including a complex instruction set computer (CISC) architecture, a reduced instruction set computer (RISC) architecture, or an architecture implementing a combination of instruction sets. Although FIG. 2 includes a single processor 235, multiple processors 235 may be included. Other processors, operating systems, sensors, displays and physical configurations are possible.
The memory 237 stores instructions and/or data that may be executed by the processor 235. The memory 237 is coupled to the bus 220 for communication with the other components via signal line 224. The instructions and/or data may include code for performing the techniques described herein. The memory 237 may be a dynamic random access memory (DRAM) device, a static random access memory (SRAM) device, flash memory or some other memory device. In some instances, the memory 237 also includes a non-volatile memory or similar permanent storage device and media including a hard disk drive, a floppy disk drive, a CD-ROM device, a DVD-ROM device, a DVD-RAM device, a DVD-RW device, a flash memory device, or some other mass storage device for storing information on a more permanent basis.
The communication unit 245 transmits and receives data to and from at least one of the server 102 and the user device 120 depending upon where the electronic scheduling application 103 may be stored. The communication unit 245 is coupled to the bus 220 via signal line 226. In some instances, the communication unit 245 includes a port for direct physical connection to the network 122 or to another communication channel. For example, the communication unit 245 includes a USB, SD, CAT-5 or similar port for wired communication. In some instances, the communication unit 245 includes a wireless transceiver for exchanging data or other communication channels using one or more wireless communication methods, including IEEE 802.11, IEEE 802.16, BLUETOOTH® or another suitable wireless communication method.
In some instances, the communication unit 245 includes a cellular communications transceiver for sending and receiving data over a cellular communications network including via short messaging service (SMS), multimedia messaging service (MMS), hypertext transfer protocol (HTTP), direct data connection, WAP, e-mail or another suitable type of electronic communication. In some instances, the communication unit 245 includes a wired port and a wireless transceiver. The communication unit 245 also provides other conventional connections to the network 105 for distribution of files and/or media objects using standard network protocols including TCP/IP, HTTP, HTTPS and SMTP, etc.
The storage device 141 can be a non-transitory memory that stores data for providing the functionality described herein. The storage device 141 may be a dynamic random access memory (DRAM) device, a static random access memory (SRAM) device, flash memory or some other memory devices. In some instances, the storage device 141 also includes a non-volatile memory or similar permanent storage device and media including a hard disk drive, a floppy disk drive, a CD-ROM device, a DVD-ROM device, a DVD-RAM device, a DVD-RW device, a flash memory device, or some other mass storage device for storing information on a more permanent basis.
The storage device 141 stores calendar information, for example, the time for meeting, the list of recipients, etc. The storage device 141 also stores the rating information. For example, the storage device 141 includes the rating information from all users that attended a meeting and provided feedback. The storage device 141 also stores the aggregate feedback information. In the illustrated embodiment, the storage device 141 is communicatively coupled to the bus 226 via signal line 228.
The feedback application comprises an electronic scheduling application (calendar application), a meeting engine 202, a feedback engine 205, a user interface module 206 and a social media application.
The electronic scheduling engine 201 can be software including routines for scheduling a meeting directly or working with a user device 120 to schedule a meeting. In some embodiments, the electronic scheduling engine 201 can be a set of instructions executable by the processor 235 to provide the functionality describes below for scheduling a meeting. In other embodiments, the electronic scheduling engine 201 can be stored in the memory 237 of the computing device 200 and can be accessible and executable by the processor 235.
The electronic scheduling engine 201 instructs the user interface module 206 to generate graphical data for displaying a user interface for configuring the meeting. The electronic scheduling engine 201 receives user input and generates the details for the meeting. For example, the electronic scheduling engine 201 generates a list of attendees, a time, a location, a title for the meeting, etc. In one embodiment, the electronic scheduling engine 201 instructs the user interface module 206 to generate calendar invitations for the meeting attendees. The electronic scheduling engine 201 generates a calendar item in the user's calendar with the meeting details.
In one embodiment, the user device 120 includes a standalone calendar application and the user does not use the electronic scheduling engine 201 to generate meetings. In this embodiment, the electronic scheduling engine 201 uses an application programming interface (API) to exchange information with the calendar application on the user device 120. The API is a specification that may be called or invoked by the various software components of the feedback application 109. The electronic scheduling engine 201 can include a JavaScript file that communicates with the API to retrieve information about a user's upcoming meetings, past meetings, meeting attendees, meeting leaders, title, identification information, etc. This information may also be sent to the meeting engine 202 and the feedback engine 205.
The meeting engine 202 can be software including routines for hosting the meeting. In some embodiments, the meeting engine 202 can be a set of instructions executable by the processor 235 to provide the functionality describes below for hosting a meeting. In other embodiments, the meeting engine 202 can be stored in the memory 237 of the computing device 200 and can be accessible and executable by the processor 235.
In one embodiment, the meeting engine 202 is a platform as a service (PaaS) cloud computing platform for hosting a web-based meeting that is integrated with the meeting specifics generated by the electronic scheduling engine 201. The meeting engine 202 hosts the meeting. The meeting engine 202 may be configured to dynamically create or build the meeting. In embodiments where the meeting engine 202 generates a video conference, the meeting engine 202 instructs the user interface module 206 to generate a user interface for displaying meeting participants and meeting materials, such as presentations. The dynamic creation may also include server-side scripting, database query look-ups, and/or merging files into one or more user interfaces.
In one embodiment, the user may already have access to a calendar application on their user device 120, either locally, in a client-server setting, or in a cloud-based environment, in which case the calendar application did not originate from the electronic scheduling engine 201. In this regard, the meeting is loaded onto the user device by the meeting engine 202 and is integrated with the user's calendar application. In particular, in one embodiment, the meeting is loaded by an external meeting application, but may also be handled by the meeting engine 202. In an alternate embodiment, the electronic scheduling engine 201 may be loaded onto the user device 120 from the meeting engine 202. Then, the meeting application is loaded onto the user device by the meeting engine 202 and is integrated with the user's calendar application. In any event, once the integration takes place, it will allow the user to provide feedback with regard to a meeting and/or meeting leader. The meeting leader is a user that organizes the meeting. This user could be different from the presentor(s). For example, the meeting leader could be the head of a department that wants to measure how well the other people in the department contribute to a presentation.
In one embodiment, the user device 120 has both an independent calendar application and an independent meeting application. In these instances, the electronic scheduling engine 201 interacts with the user device 120 to schedule the meeting. The electronic scheduling engine 201 shares information between applications, for example, an email application, a browser application, a shared electronic document application, or other applications within a distributed system. The meeting engine 202 transmits a specification with the meeting information, for example, in the form of an XML document such as meeting.xml. Alternatively, the specification could be based on an HTML, CSS and/or a script platform. Additionally, other implementations may be employed, including a stand-alone application, an applet, a plug-in module, etc., for use in a user interface.
The XML document includes a link to a script, such as JavaScript, ECMA Script, or other suitable alternative that is part of the meeting engine 202. An exemplary JavaScript source file, as used herein, is meeting_gadgetjs. By virtue of the JavaScript, the specification links to the internal meeting application to load and integrate the meeting application with a user interface generated by the user interface module 206. The user interface includes a pane in which the user is able to provide meeting feedback, i.e., rate a meeting and/or meeting leader. Further, the pane includes scoring information in which a meeting leader can see how they were rated in a meeting, see aggregated feedback, how they have been rated over time, and whether they have received any rewards or recognition for a meeting performance or performances.
The JavaScript communicates with and requests information from the feedback engine 205. The feedback engine 205 stores meeting feedback from the user in the storage 241, including an association, for example an identifier, between a particular meeting and feedback from the user, as well as historical feedback information provided by the user and other users of the system. The feedback engine 205 also stores aggregated feedback of users of the system, scoring feedback information, administrator preferences, reward information, etc.
In one embodiment, the meeting engine 202 is stored in part on the server 102 and in part on the user device 120. The meeting engine 202 on the user device 120 can access information from the server 102 using, for example, an application programming interface (API) with the JavaScript, in order that access be restricted to entitled users, for example, users of a particular organization, users having a particular domain name, etc.
The feedback engine 205 can be software including routines for managing user feedback from the meeting. In some embodiments, the feedback engine 205 can be a set of instructions executable by the processor 235 to provide the functionality describes below for managing user feedback. In other embodiments, the feedback engine 205 can be stored in the memory 237 of the computing device 200 and can be accessible and executable by the processor 235.
The feedback engine 205 may be any combination of servers, document management systems, databases and processors, and may be implemented as software, hardware, and/or firmware. The feedback engine 205 instructs the user interface module 206 to generate graphical data for displaying a user interface for collecting feedback during a meeting. In one embodiment where the feedback engine 205 is not stored on the user device 120, the feedback engine 205 uses an extensible markup language (XML) document, or suitable equivalent. The feedback engine can also include a link to a script, for example, a JavaScript source file. Additionally, the feedback engine 205 can communicate with components of the user device 120 using an API. In one embodiment, the API ensures that the user is not attempting to rate a meeting to which they were not invited, did not attend, etc. That is, the feedback engine 205 instructs the user interface module 206 to generate a user interface for providing feedback such as ranking a particular meeting to users that were invited to the meeting and to which the users accepted the invitation to the meeting. In instances where the user interface module 206 is stored on the user device, the feedback engine 205 sends instructions to the user interface module 206 using the JavaScript and the specification. An overall flow of the processing with regard to FIG. 2 is described below with reference to FIG. 3.
In one embodiment, the feedback engine 205 generates a request for feedback for the meeting attendees that the feedback engine 205 keeps anonymous. In some embodiments, the feedback engine 205 stores the feedback for each user but anonymizes the data before transmitting it to the meeting leader. That is, the meeting leader will see overall feedback or scores and/or a breakdown of scores without any information identifying what attendees provided what feedback.
In one embodiment, the feedback engine 205 provides the meeting leader with the feedback in real-time during the meeting. This can be helpful, for example, for letting the meeting leader know when the meeting is going poorly. However, depending on the preferences of the meeting leader, this information could be too distracting to receive in real-time. As a result, in another embodiment, the feedback engine 205 provides the feedback after the meeting.
In one embodiment, the feedback engine 205 time-stamps the feedback so that feedback received during a meeting could be associated with a particular portion of the meeting. For example, the feedback engine 205 divides the meeting into segments and shows how various portions (i.e., beginning, middle, end) were rated by the attendees. This would be useful, for instance, in changing the presentation for future meetings. For instance, the meeting leader learns to make the middle of the presentation more interesting if an abundance of low scores were received during the middle of the meeting. In a similar fashion, the beginning or end of the meeting could also be changed, based upon the feedback received.
In one embodiment, the feedback engine 205 prepares the feedback for publication by the social media application 207. The feedback engine 205 can prepare the feedback for public and/or private distribution (i.e., publication). For example, the feedback engine 205 generates aggregated feedback about the meeting leader's performance that is anonymous. In another example, the feedback engine 205 can publish certain feedback from users. For example, “Bob said: ‘This is the best presentation Sam has ever given!”
In embodiments where the user interface module 206 is stored on the server 102, the feedback engine 205 communicates with the meeting engine 202 to display a user interface for the user to provide feedback on the user device 120. For example, the feedback engine 205 and the meeting engine 202 exchange information including user feedback, ratings/scores, aggregated feedback ratings/scores, textual input of the users, meeting schedules, and web content that is displayed to the user. This exchange includes updating this information on the feedback engine 205 and well as retrieving this information from the feedback engine 205 as it is requested. Additionally, the feedback engine 205 stores user feedback, ratings/scores, aggregated feedback ratings/scores, textual input of the users, and meeting schedules in the storage 241. The feedback engine 205 also performs computations on the feedback received from the user. For example, the feedback engine 205 aggregates the feedback, by calculating average scores, computes percentages of attendees who responded in a certain manner, etc.
The user interface module 206 can be software including routines for generating graphical data for displaying a user interface on the user device 120. In some embodiments, the user interface module 206 can be a set of instructions executable by the processor 235 to provide the functionality describes below for generating a user interface. In other embodiments, the user interface module 206 can be stored in the memory 237 of the computing device 200 and can be accessible and executable by the processor 235.
In some embodiments, the user interface module 206 receives instructions from the electronic scheduling engine 201 to generate graphical data for displaying calendar information. For example, the user interface module 206 generates calendar invitations, a calendar that includes the meetings, a user interface for configuring a calendar invitation, etc. In some other embodiments, the user interface module 206 receives instructions from the meeting engine 202 to generate graphical data for displaying the meeting. For example, the user interface module 206 generates graphical data for displaying a document that is used during the meeting.
The user interface module 206 receives instructions from the feedback engine 205 to generate graphical data for displaying a user interface on the user device 120 for providing feedback. In one embodiment, the user interface, displayable on device, may include a primary pane and at least one secondary pane (i.e., a sidebar). The sidebar is typically, but not necessarily, and extension or adjunct of the primary pane, and can appear as a side panel of the primary pane.
In one embodiment, the user interface module 206 generates a user interface for the meeting leader to configure the settings for the feedback engine 205. For example, a meeting leader can specify the types of questions posed by the feedback engine 205 to the meeting attendees. The meeting leader can also specify how the user wants to view the feedback. For example, the meeting leader can specify whether the feedback is aggregated for the entire meeting, divided into segments, displayed at specified time periods, etc. In one embodiment where the meeting includes multiple presenters, the meeting leader could configure the feedback engine 205 to aggregate feedback for each presenter, for example, based on the time that the feedback was received corresponding to the time that each person presented.
By incorporating the meeting feedback and scoring features into an application that includes an electronic scheduling feature and a meeting feature, it is more likely that meeting attendees will participate in the rating process by providing feedback. That is, users will not have to navigate to other applications in order to rate a meeting and/or meeting leader. Further, the feedback application 109 is easy to use. That is, by combining an electronic scheduling engine, a meeting engine and a feedback engine together, the user does not have to open another application, send a text message, send an email, etc. in order to rate a meeting. Thus, a user frequently checking their calendar, or keeping their calendar active, may readily avail themselves of the advantageous features described herein.
The social media application 207 can be software including routines for registering a user and generating a social network. In some instances, the social media application 207 can be a set of instructions executable by the processor 235 to provide the functionality described below for registering a user. In some other instances, the social media application 207 can be stored in the memory 237 of the computing device 200 and can be accessible and executable by the processor 235.
The social media application 207 registers users, generates a social graph and generates a social network for the users based on the social graph. For example, the social media engine 207 generates a social network where users can post content, comment, generate groups, etc. Although the social media application 207 is illustrated as being a component of the feedback application 109, in some embodiments, the social media application 207 is a standalone application that could be stored on a separate server.
The social media application 207 receives information from the feedback engine 205 to be published in the social network. For example, the feedback engine 205 transmits a reward such as a notification that the meeting leader received a 90% approval rating in a meeting that the leader organized. The notification can be published as being associated with a user or anonymous. For example, the social media application 207 can identify a user in the social network that is associated with a particular comment (subject to that user providing approval). In another example, the notification is anonymous or generalized so that it represents results from aggregated feedback.
FIG. 3 is a flow chart of an example method 300 for displaying data on the user device 120. In this embodiment, the feedback application 109b on the user device 120 includes an electronic scheduling engine 201, a meeting engine 202 and a user interface module 206. The feedback application 109b is served to the user via any suitable method. For example, the user can download the feedback application 109b onto the user device 120 as an application. In another embodiment, the feedback application 109 is a browser extension. Although this flowchart is described as having the feedback application 109b stored in part on the user device 120, in another embodiment the feedback application 109 is stored on the server 102 and the user accesses the electronic scheduler, conducts the meeting and provides feedback via a browser.
The electronic scheduling engine 201 receives 302 a specification from the server 102. The specification may be an XML document. The meeting engine 202 identifies 304 from the specification a link to a script file, for example, a JavaScript file on the server 102. The meeting engine 202 loads 306 a meeting interface. The meeting interface is surfaced to the user through the specification.
The electronic scheduling engine 201 and the meeting engine 202 receive instructions from the JavaScript file to communicate with the server 102. In doing so, the electronic scheduling engine 201 and the meeting engine 202 retrieves 306 data from the server 102. The data includes information regarding events, feedback, aggregated feedback, user preferences, administrator preferences, etc. Additionally, the server 102 stores an association, for example an identifier, between a particular meeting and feedback. Thus, when the feedback scores are aggregated and later presented, they are linked with the appropriate meeting and meeting leader. In some embodiments, the electronic scheduling engine 201 and the meeting engine 202 communicate with an API on the server 102 to request and receive information concerning a user's upcoming events, past events, attendees of particular meetings, titles of meetings, meeting identification information (e.g., identifier), etc.
The user interface module 206 generates 310 graphical data for displaying a user interface to the user that includes the data. The displayed data includes the user's calendar information, data concerning how many events the user has rated, how many events the user has yet to rate, the user's overall meeting score etc.
FIG. 4 is a graphical display of an example user interface of a feedback application 109 that includes both the electronic scheduling engine 201 and the meeting engine 202. In the user interface, a meeting list is displayed in a sidebar gadget. The meeting sidebar 400 is provided as an extension to the integrated calendar application. The meeting sidebar 400 includes a plurality of panes in which information is displayed to the user, and in which the user may make selections or enter data, as will be noted. It should be understood, that the meeting sidebar 400 could be an extension to an email application, browser application, shared document application, other application within a distributed system, etc. However, an example calendar application has been used throughout the disclosure for the sake of convenience.
As shown in FIG. 4, the sidebar 400 includes a list of meetings that the user has attended, or has yet to attend. The user may navigate about the application by selecting the meeting manager icon in pane 401. An overall meeting score (“4”) of the user is provided in pane 402. Pane 403 indicates that the user has 13 events (meetings) that need to be rates. For example, the user has attended but not yet rated 13 meetings. Information concerning the details of meetings with Joe and Tom may be accessed by the user by selecting in panes 404 and 405, respectively. Pane 406 indicates events that are owned by the user.
FIG. 5 is an example user interface of a feedback application 109 that includes both the electronic scheduling engine 201 and the meeting engine 202. The display includes a meeting rating input area 500. The meeting rating input area 500 includes rating fields in panes 503-507, upon which the user can rate a meeting and/or a meeting leader. The meeting rating input area 500 can overlay the calendar view during the time period in which the meeting was scheduled. In the illustrated example, the meeting to be rated was held between 12 pm and 2:30 pm.
Pane 503 includes stars, which serve as indications of approval. Although stars are illustrated, persons of ordinary skill in the art will recognize that other indicators can be used, such as such as circles and squares, numbers, checkmarks, etc. The user may elect to rate the meeting and/or meeting leader according to a star rating system. That is, the user may click use the user device 120 to indicate one star for an extraordinarily poor performance, two stars for a below-average performance, three stars for an average performance, four stars for an above-average performance, and five stars for an excellent performance. While “performance” has been used, it is noted that the feedback could also consider content, clarity, and/or be based on an overall impression, or other salient factors. Persons of ordinary skill in the other will also realize that other scales are possible, such as from 1-10, 1-3, 1-100, etc. Further, any suitable criteria for scoring may be established in advance. In addition to or in lieu of the aforementioned star rating system, the user may provide feedback based on criteria determined by management or an administrator.
The rating fields shown in panes 504-507 include certain criteria upon which the user may rank the meeting and/or meeting presenter. Of course, other criteria may be provided within the spirit of the invention other than what is explicitly shown.
In the illustrated example, the user may provide additional types of feedback indicating whether the meeting was necessary by selecting, by a known input method, a box in pane 504. In this example, the user selects on of the boxes, but other methods are possible, such as providing an “x” or a checkmark. The user may provide feedback indicating whether the meeting had a clear objective by selecting a box in pane 505. Similarly, the user may provide feedback indicating whether the meeting had a useful agenda by selecting a box in pane 506. Similarly, the user may provide feedback indicating whether the meeting started on time by selecting a box in pane 507.
FIG. 6 is a display of an example user interface of a feedback application 109 that includes both the electronic scheduling engine 201 and the meeting engine 202. The meeting rating input area 600 is a sidebar in that it does not overlay on top of any information from within the calendar application but appears adjacent to the calendar. The meeting rating input area 600 includes an overall score pane 601, which displays the overall score that the user has received. The user may navigate about the application by selecting the meeting manager icon in pane 602. Similar to FIG. 5, pane 603 includes rating indicators, such as the stars shown in the example display. Of course, other shapes such as circles and squares, etc. are considered equivalent to the stars shown. The user may elect to rate the meeting and/or meeting leader according to an overall star system according to a star rating system. That is, the user may use the user device 120 to indicate one star for an extraordinarily poor performance, two stars for a below-average performance, three stars for an average, four stars for an above-average performance, and five stars for an excellent performance. Further, any suitable criteria for scoring may be established in advance. In addition to or in lieu of the aforementioned star rating system, the user may provide feedback based on criteria determined by management or an administrator.
Similar to FIG. 5, the rating fields shown in panes 604-607 include certain criteria upon which the user may rank the meeting and/or meeting presenter. Of course, other criteria may be provided within the spirit of the specification other than what is explicitly shown. In the example illustrated, the user may provide feedback indicating whether the meeting was necessary by selecting, by a known input method, a box in pane 604. Similarly, the user may provide feedback indicating whether the meeting had a clear objective by selecting a box in pane 605. The user may provide feedback indicating whether the meeting had a useful agenda by selecting a box in pane 606. The user may provide feedback indicating whether the meeting commenced on time by selecting a box in pane 607. Of course, for any or all of the questions, other suitable selectable answer choices such as a checkmark or an “x” may be used.
By clicking on the “add comments” button 610 in pane 608, or other suitable activator, the user can optionally input free text regarding comments about the meeting or meeting leader, as will be shown in FIG. 8 below. That is, selecting button 610 will display a text input area to the user, allowing the user to provide comments regarding the meeting and/or meeting leader. It is noted that the “add comments” option is also possible within the display of FIG. 5. Further, in one embodiment, the text input area may always be displayed to the user, and is not dependent upon user action to click the button 610.
FIG. 7 is a display of an example user interface of a feedback application 109 that includes both the electronic scheduling engine 201 and the meeting engine 202. In the example display, the meeting is organized by Bob and Bob receives a rating 701 for the meeting. As shown in FIG. 7, Bob receives a one-star rating 701 for the meeting that Bob organized between noon and 2:30 pm.
FIG. 8 is an example user interface with a text input area. FIG. 8 includes a display 800 including a text input area 802 in which the user may optionally add comments regarding the meeting and/or meeting leader. As shown in this example, the user has commented that the meeting leader offered amusing anecdotes at appropriate times during the meeting, that the meeting leader presented the meeting topics in a coherent manner, and that the meeting leader did not leave sufficient time to answer questions from the attendees. After the user has entered the desired comments, the user can submit the comments with button 803, or other suitable option.
FIG. 9 is flow chart of an example method 900 of receiving feedback from a user. In one embodiment, the feedback application 109b is stored on the user device 120 and it includes a user interface module 206. In other embodiments, the feedback application 109 is stored on the server 102 and the user device 120 includes a browser that displays graphical data received from the server 102. The user device 120 receives 902 user data. For example, the user device 120 retrieves a user interface from the meeting engine 202 and retrieves user data from the API and feedback engine 205, as previously discussed. The user device 120 loads and displays 904 meeting data. For example, the user device displays a calendar with a list of meetings that the user attended. For example, the user interface may include a primary calendar pane and a sidebar.
The user device 120 receives 906 a meeting selection from the user. The selection of a meeting by a user can be done contemporaneously or can be done after the meeting has been completed. The user device 120 displays 908 a request for feedback for the selected meeting. In one embodiment, the request for feedback is automatically displayed during the time when the meeting is scheduled. That is, if a meeting is scheduled for 12 pm-2:30 pm, then the request for feedback would be automatically displayed to the user during that time. According to one embodiment of the disclosure, if a user has attended a meeting, but has not provided a rating after a predetermined period of time (e.g., 72 hours), the user would receive a reminder via email, text, or other suitable notification method. At 908, a rating system such as those shown in FIG. 5 or FIG. 6 is displayed. The rating system may be displayed within a calendar view of the user or within a separate sidebar, depending upon user and/or administrator preference.
The user device 120 receives 910 ratings from the user. For example, the user enters ratings in a manner discussed above with respect to FIGS. 5 and 6. The user device 120 determines 912 whether the user inputs text. For example, if the user selects the “add comments” option, then a text input area such as that shown in FIG. 8 is displayed to the user. The user device 120 receives 914 text from the user. If the user does not select the “add comments” option after a predetermined period of time by the use of a known counter routine, or selects an optional “no text button”, then the process flows to 916.
Once the user is done providing feedback, the user device 120 transmits 914 the feedback to the server 102 where it is aggregated for later display to the meeting leader. In one example, when the user has completed entering text, the user can select the submit button 820.
FIG. 10 is flow chart of an example method 1000 for receiving feedback from users and generating aggregating feedback data. The feedback application 109 includes an electronic scheduling engine 201, a meeting engine 202, a feedback engine 205 and a user interface module 206. These components can all be stored on the server 102 or in part on the server and in part on the user device. The electronic scheduling engine 201 generates and provides 1002 a calendar invitation for a meeting to a meeting leader and meeting attendees. The feedback engine 205 hosts 1004 the meeting.
The feedback engine 205 instructs the user interface module 206 to provide 1006 a request for feedback to the meeting attendees. For example, the request is a user interface that includes a primary calendar pane and a sidebar, such as the examples illustrated in FIGS. 5 and 6. The feedback can include ratings; yes, no, not applicable answers; comments, etc. such as the ones illustrated in FIGS. 6 and 8. When the user has completed entering text, the user can select the submit button 820. The feedback engine 205 receives 1008 feedback from the meeting attendees. In one embodiment, the user may instruct that the data entered by the user be sent to the feedback engine 205 by clicking submit, or another suitable indicator. Otherwise, the data entered by the user may be automatically sent to the feedback engine. In any event, the data entered by the user is sent to the feedback engine 205 via the JavaScript, where it is aggregated with all of the feedback received from other users with respect to the same meeting and/or meeting leader.
The feedback engine 205 aggregates 1010 feedback that includes a first score for the meeting or a second score for the meeting leader. For example, the feedback engine 205 aggregates an overall rating of the meeting, ratings for each question in the request (necessary, clear objective, useful agenda, started on time, etc.). The aggregation process includes taking data from the users and applying a process to create summary statistics based upon the user data. The aggregation of feedback of multiple users may be an arithmetic mean, sum, percentage of attendees selecting a particular answer option, or other known mathematical computation based upon data entered by multiple users.
The feedback engine 205 generates 1012 a summary of the feedback including the first score or the second score. For instance, a meeting given by meeting leader Bob may have been given an average of three stars by the attendees that provided feedback. Thus, a summary is generated for Bob, and optionally, for his supervisors to view. Over time, Bob can monitor his progress in future meetings in order to assess his performances.
In one embodiment, a more granular score breakdown is provided, which is prepared by the feedback engine 205 and sent via JavaScript to the meeting leader. As an example, 60% of the meeting respondents indicated that Bob's meeting did not have a clear objective, while 96% of the meeting respondents indicated that Bob's meeting started on time. In one embodiment, the overall score and score breakdown are provided on the calendar application of the meeting leader. However, the overall score and score breakdown may also be provided in other suitable manners, e.g., sent by email, uploaded to a password protected website, etc.
The feedback engine 205 generates 1014 a recommendation for the user based on the feedback. For example, if the feedback includes a threshold percentage of users (e.g. 25%, 50%, etc.) that stated that the meeting did not start on time, the feedback engine 205 generates a recommendation for starting the meeting on time. In another example, the feedback engine 205 generates a recommendation based on the feedback with a poorest (e.g. lowest, worst, etc.) score. For example, if the meeting leader receives perfect marks on all aspects of the meeting except the necessity of having the meeting, which receives 80%, the feedback engine 205 recommends that the meeting leader create meetings that are more necessary in the future. The feedback engine 205 instructs the user interface module 206 to generate graphical data for providing 1016 the meeting leader with the summary of the feedback or the recommendation.
In some embodiments, the feedback may exceed a threshold where the meeting leader qualifies for a reward. The feedback engine 205 determines 1018 that the meeting leader qualifies for a reward and provides the meeting leader with an indication as to the eligibility of a reward. The award may consist of an online award, badge, social recognition on a blog, or post to social media, etc. The determination of reward eligibility is based upon criteria established by a system administrator, or other suitable method. For instance, a reward may be provided when a meeting leader receives increasing scores in three consecutive meetings, or when receiving scores above 90%.
FIG. 11 an example representation of a display of participant feedback provided to a meeting leader. In one embodiment, the feedback is presented in a display through the leader's calendar application. The displayed feedback includes a header row 1101, which indicates the name of the meeting leader and the date upon which the meeting was conducted. Other possible information could include the title of the meeting. As shown row 1102, Bob has received an aggregated average star rating of 3.0 out of 5 stars for a meeting that he conducted on Jan. 4, 2012. In this case, the aggregate rating was the average of the total stars received. For example, if Bob received 300 total stars from 100 attendees completing the star section of the meeting rating input area, than Bob's average would be 3.0.
Additionally, 60% of respondents provided feedback that the meeting was necessary (row 1103), 76% of respondents provided feedback that the meeting had a clear objective (row 1104), 80% of respondents provided feedback that the meeting had a useful agenda (row 1105), and 88% of the respondents provided feedback that the meeting started on time (row 1106). Of course, not all attendees may answer the questions, in which case, the percentages provided are of percentages of those who answered the respective questions. In one embodiment, all or at least some text input entered by users may be shown in the display as well. For example, the feedback engine 205 may generate a list of all of the text feedback received from user and include the textual feedback in the example display of FIG. 11.
Alternatively, the feedback engine 205 may, using known text recognition software and systems including optical character recognition (OCR), extrapolate those textual comments containing the most frequently used words used by the users in the text feedback for a particular meeting, and display those textual comments. For example, if 75% of users providing textual feedback concerning a particular meeting used the term “interesting in their textual comments”, then user textual comments using the word “interesting” would be displayed in the example display of FIG. 11. In one embodiment, for example, if the number of textual comments using the word “interesting” exceeded a predetermined amount, then the feedback engine 205 would select representative textual comments using the word “interesting”, for display. The representative textual comments may be determined based upon word count, number of textual comments, etc.
FIG. 12 is an example representation of a display of aggregated participant feedback provided to a meeting leader over time. In one embodiment, the feedback is presented through a display in the leader's calendar application. The displayed feedback includes a header row 1201, which indicates the name of the meeting leader and the date upon which the meeting was conducted. Other possible information could include the title of the meeting. Rows 1202-1206 contain feedback scoring information for the criteria noted on the meeting dates indicated as discussed with respect to FIG. 11. The report may be provided to a meeting leader, Bob in this case, that provides an indication of how the feedback has changed over time. This allows the meeting leader to know whether they are making improvements. In one embodiment, the all or at least some text input entered by users may be shown in the display as well. For example, the feedback engine 205 may generate a list of all of the text feedback received from users and include the textual feedback in the exemplary display of FIG. 12.
FIG. 13 is an example representation of a display of an online reward provided to a meeting leader. FIG. 13 is a display of a social media application interface 1300 generated based on instructions from the social media application 207. The social media application 207 may include web-based technologies and mobile technologies that permit the development and exchange of user-generated content. As shown in FIG. 13, Bob received praise for an improvement in meeting feedback scores in pane 1302. It should be noted that a variety of rewards are possible and that the present disclosure should not be considered to be limited to praise via social media. For example, rewards may comprise coupons, gift cards, time off with pay, preferred parking, bonuses, online rewards such as badges, etc. In one embodiment, high scores may be published for the user's peers, or others, to view.
FIG. 14 is an example representation 1400 of a summary of the feedback according to one embodiment. A meeting leader can view his or her scores or the meeting leader can rate other people. In this example, the meeting leader is viewing overall scores. The meeting leader has an overall score of 42%. The meeting leader can also look at a meeting-by-meeting breakdown of the scores. In terms of star ratings, the meeting leader has an average of four stars, but one person gave the meeting leader a five-star rating. In one embodiment, the feedback engine 205 instructs the user interface module 206 to display the number of users that voted on different items. In this example, in response to asking whether the meetings had a clear objective, one person said yes and two people said no. In terms of whether the agendas were useful, three people said yes and three people said no. In terms of whether the meeting started on time, four people said yes and one person said no.
In this example, the feedback engine 205 also instructed the user interface module 206 to display a recommendation. The feedback engine 205 selected the item with the lowest score to serve as the recommendation. In this case, because 80% of the voters said that the meetings did not start on time, the feedback engine 205 recommends that the meeting leader be sure to start the meetings on time.
According to an embodiment of the non-transitory computer-readable media, the non-transitory computer-readable medium includes an executable program for generating meeting ratings in a distributed system. The executable program, when executed, causes a computer to generate a meeting rating input area for presentation to a user. The meeting input rating area is integrated into an electronic scheduling application associated with a meeting on the electronic scheduling application of a user. The executable program further causes the computer to receive at least one selection in the meeting rating input area by the user, in which the selection includes user feedback of the meeting. The executable program further causes the computer to aggregate user feedback of the meeting with other feedback from at least one other party into aggregated feedback. The executable program further causes the computer to store the aggregated feedback for presentation to a leader of the meeting.
In the above description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the specification. It will be apparent, however, to one skilled in the art that the invention can be practiced without these specific details. In other instances, structures and devices are shown in block diagram form in order to avoid obscuring the description. For example, the present embodiment is described in one embodiment below primarily with reference to user interfaces and particular hardware. However, the present embodiment applies to any type of computing device that can receive data and commands, and any peripheral devices providing services.
Reference in the specification to “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 description. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
Some portions of the detailed descriptions that follow are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms including “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
The present embodiment of the specification also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, including, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, flash memories including USB keys with non-volatile memory or any type of media suitable for storing electronic instructions, each coupled to a computer system bus.
The specification can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the specification is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
Furthermore, the description can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers.
Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
Finally, the algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will appear from the description below. In addition, the specification is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the specification as described herein.
The foregoing description of the embodiments of the specification has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the specification to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the disclosure be limited not by this detailed description, but rather by the claims of this application. As will be understood by those familiar with the art, the specification may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Likewise, the particular naming and division of the modules, routines, features, attributes, methodologies and other aspects are not mandatory or significant, and the mechanisms that implement the specification or its features may have different names, divisions and/or formats. Furthermore, as will be apparent to one of ordinary skill in the relevant art, the modules, routines, features, attributes, methodologies and other aspects of the disclosure can be implemented as software, hardware, firmware or any combination of the three. Also, wherever a component, an example of which is a module, of the specification is implemented as software, the component can be implemented as a standalone program, as part of a larger program, as a plurality of separate programs, as a statically or dynamically linked library, as a kernel loadable module, as a device driver, and/or in every and any other way known now or in the future to those of ordinary skill in the art of computer programming. Additionally, the disclosure is in no way limited to implementation in any specific programming language, or for any specific operating system or environment. Accordingly, the disclosure is intended to be illustrative, but not limiting, of the scope of the specification, which is set forth in the following claims.

## Claims

1. A computer-implemented method, comprising:
generating, with one or more processors, a calendar item for a meeting for a meeting leader and a plurality of meeting attendees;
hosting, with the one or more processors, the meeting;
providing a request for feedback to the plurality of meeting attendees in a rating input area of a calendar application of the plurality of meeting attendees, the calendar application of the plurality of meeting attendees capable of displaying a time interval, the calendar item, and the rating input area;
aggregating, with the one or more processors, feedback from the plurality of meeting attendees into the calendar application of the plurality of meeting attendees for the meeting;
generating, with the one or more processors, a summary of the feedback from the plurality of meeting attendees and a recommendation for the meeting leader based on the feedback; and
providing the meeting leader with the summary of the feedback and the recommendation in a calendar application of the meeting leader.

2. The computer-implemented method of claim 1, further comprising generating an online reward when the feedback meets or exceeds a predetermined threshold.

3. The computer implemented method of claim 2, further comprising posting the online reward to a social network.

4. The computer implemented method of claim 1, wherein the request for feedback includes a plurality of questions for the plurality of meeting attendees to answer.

5. The computer implemented method of claim 1, wherein the feedback includes a first score for the meeting or a second score for the meeting leader.

6. The computer implemented method of claim 1, wherein the request for feedback is provided during the meeting.

7. The computer-implemented method of claim 1, further comprising recording a time-stamp associated with each piece of feedback from the plurality of meeting attendees and wherein the summary of the feedback is organized according to the time-stamps.

8. The computer implemented method of claim 7, wherein providing the meeting leader with the summary of the feedback occurs during the meeting.

9. The computer implemented method of claim 7, wherein the summary of the feedback is organized according to a beginning, a middle and an end based on the time-stamps associated with each piece of feedback.

10. The computer implemented method of claim 1, wherein the recommendation is based on feedback where the meeting leader received a poorest score.

11. The computer implemented method of claim 1, further comprising generating historical feedback information associated with a plurality of meetings of the meeting leader.

12. The computer implemented method of claim 1, wherein the feedback is received anonymously.

13. The computer implemented method of claim 1, further comprising generating the summary of the feedback for public distribution.

14. The computer implemented method of claim 1, further comprising generating the summary of the feedback for private distribution.

15. A non-transitory computer-readable medium storing a computer program, the program executable by a processor, comprising:
generating a calendar item for a meeting for a meeting leader and a plurality of meeting attendees;
hosting the meeting;
providing a request for feedback to the plurality of meeting attendees in a rating input area of a calendar application of the plurality of meeting attendees, the calendar application of the plurality of meeting attendees capable of displaying a time interval, the calendar item, and the rating input area;
aggregating feedback from the plurality of meeting attendees into the calendar application of the plurality of meeting attendees for the meeting;
generating a summary of the feedback from the plurality of meeting attendees and a recommendation for the meeting leader based on the feedback; and
providing the meeting leader with the summary of the feedback and the recommendation in a calendar application of the meeting leader.

16. The non-transitory computer-readable medium of claim 15, further comprising generating an online reward when the feedback meets or exceeds a predetermined threshold.

17. The non-transitory computer-readable medium of claim 16, wherein the computer-readable medium is further configured to post the online reward to a social network.

18. A computer-implemented system, comprising:
at least one memory storing meeting information of a user; and
at least one processor to:
generate a calendar item for a meeting for a meeting leader and a plurality of meeting attendees;
host the meeting;
provide a request for feedback to the plurality of meeting attendees in a rating input area of a calendar application of the plurality of meeting attendees, the calendar application of the plurality of meeting attendees capable of displaying a time interval, the calendar item, and the rating input area;
aggregate feedback from the plurality of meeting attendees into the calendar application of the plurality of meeting attendees for the meeting;
generate a summary of the feedback from the plurality of meeting attendees and a recommendation for the meeting leader based on the feedback; and
provide the meeting leader with the summary of the feedback and the recommendation in a calendar application of the meeting leader.

19. The system of claim 18, wherein the processor is further configured to generate an online reward when the feedback meets or exceeds a predetermined threshold.

20. The system of claim 19, wherein the processor is further configured to post the online reward to social network.