The subject matter disclosed generally relates to the field of computer networking and methods of calendar sharing and time management.
Conventional time and contact management tools may allow a user to synchronize a portable device with a home computer or home network system, whereby calendar and time information available on the portable device may be browsed and viewed on the home computer and vice-versa.
With conventional time management tools, the user may browse the calendar manually and/or use keywords when the user is looking for a certain event.
Some example embodiments will now be described in greater detail with reference to the accompanying diagrams, in which:
In accordance with one aspect, there is provided a method including: generating participant brief data as a function of calendar data and a selected date range, the calendar data including, for each of a plurality of calendar events: respective data items indicating at least one participant of the calendar event and a date of the calendar event, the participant brief data including a list of the participants of the calendar events within the selected date range; and presenting at least a portion of the participant brief data on a display.
In some example embodiments, the selected date range is a selected date.
In some example embodiments, the method further includes receiving the selected date range.
In some example embodiments, presenting the at least a portion of the participant brief data on a display includes displaying an identification of each of the participants in the list.
In some example embodiments, the participant brief data further includes context data associated with at least one of the participants in the list.
In some example embodiments, generating participant brief data includes receiving at least a portion of the context data.
In some example embodiments, the method further includes transmitting a request for the at least a portion of the context data.
In some example embodiments, generating participant brief data includes generating at least a portion of the context data as a function of the calendar data.
In some example embodiments, the calendar data is classified calendar data including, for each of a plurality of calendar events, a respective plurality of data items inclusive of the data items indicating the at least one participant and the date of the event, the data items collectively being organized according to a plurality of event data categories, and generating at least a portion of the context data as a function of the calendar data includes generating statistics data as a function of the classified calendar data.
In some example embodiments, the method further includes receiving an indication of a selected one of the participants included in the list, and presenting at least a portion of the participant brief data on a display includes displaying a portion of the context data associated with the selected participant.
In some example embodiments, the context data includes at least one of: personal details for the at least one participant; status information for the at least one participant; and news information associated with the at least one participant.
In some example embodiments, the personal details for the at least one participant include at least one of: contact information; work experience information; and education information.
In accordance with another aspect, there is provided an apparatus including: a processor configured to generate participant brief data as a function of calendar data and a selected date range, the calendar data including, for each of a plurality of calendar events: respective data items indicating at least one participant of the calendar event and a date of the calendar event, the participant brief data including a list of the participants of the calendar events within the selected date range; and a display presenting at least a portion of the participant brief data on a display.
In some example embodiments, presenting at least a portion of the participant brief data includes displaying an identification of each of the participants in the list.
In some example embodiments, the participant brief data further includes context data associated with at least one of the participants in the list.
In some example embodiments, the apparatus further includes a processor configure to receive at least one of: an indication of a selected one of the participants included in the list and; and at least a portion of the context data.
In some example embodiments, the apparatus further includes a processor configure to transmit a request for the at least a portion of the context data.
In some example embodiments, the calendar data is classified calendar data including, for each of a plurality of calendar events, a respective plurality of data items inclusive of the data items indicating the at least one participant and the date of the event, the data items collectively being organized according to a plurality of event data categories, and at least a portion of the context data includes statistics data generated as a function of the classified calendar data.
In some example embodiments, presenting at least a portion of the participant brief data includes displaying a portion of the context data associated with the selected participant.
In accordance with another aspect, there is provided a method including: generating participant brief data as a function of calendar data and a selected date range, the calendar data including, for each of a plurality of calendar events: respective data items indicating at least one participant of the calendar event and a date of the calendar event, the participant brief data including a list of the participants of the calendar events within the selected date range; and transmitting at least a portion of the participant brief data.
In accordance with another aspect, there is provided an apparatus including: a processor configure to: generate participant brief data as a function of calendar data and a selected date range, the calendar data including, for each of a plurality of calendar events: respective data items indicating at least one participant of the calendar event and a date of the calendar event, the participant brief data including a list of the participants of the calendar events within the selected date range; and transmit at least a portion of the participant brief data.
In accordance with another aspect, there is provided a non-transitory computer-readable medium having computer-executable instructions stored thereon that, when executed by a computer, cause the computer to perform a method, the method comprising: generating participant brief data as a function of calendar data and a selected date range, the calendar data comprising, for each of a plurality of calendar events: respective data items indicating at least one participant of the calendar event and a date of the calendar event, the participant brief data comprising a list of the participants of the calendar events within the selected date range; and presenting at least a portion of the participant brief data on a display.
Other aspects and features of the disclosure will become apparent, to those ordinarily skilled in the art, upon review of the following description of some specific example embodiments.
Features and the usefulness of the subject matter hereof will become more apparent in light of the following detailed description of selected example embodiments, as illustrated in the accompanying figures. As will be realized, the subject matter disclosed and claimed is capable of modifications in various respects, all without departing from the scope of the claims. Accordingly, the drawings and the description are to be regarded as illustrative in nature, and not as restrictive and the full scope of the subject matter is set forth in the claims.
Conventional time management tools do not provide statistics or analytics information that allows the user to manage their meetings and receive personalized statistics views of their calendar data. For example, conventional tools may not show data in aggregation from different events (e.g. all locations that a user has been with a specific person, or all the people a user has met at a given time). Some aspects of the present disclosure relate to methods, apparatuses and systems for managing and viewing calendar data.
An electronic calendaring application is run on the client devices 182, 184 and 186, on the server 188, or on both. The client devices 182, 184 and 186 and/or the server 188 may access and/or store calendar data associated with the calendaring application. For example, if the calendaring application is run by the server 188, then the server 188 may transmit/receive electronic calendar data to/from one or more of the client devices 182, 184 and 186. Electronic calendar information may be stored and processed at either the client devices 182, 184 and 186, or the server 188, or both. The server 188 may receive calendar information or other information from sources external to the system 100. For example, the server 188 may be connected to the Internet such that calendar information may be retrieved from LINKEDIN™, MICROSOFT OUTLOOK™, social networking website applications, etc.
The term “client device” includes, but is not limited to, personal computing devices, user terminals, and other similar computing devices. A client device may also be a mobile communication device. A mobile communication device may communicate with the server directly through a network. A mobile communication device may also communicate with a computing device (such as a desktop or laptop computer, for example) that, in turn, communicates with the server. For example, a mobile communication device may be “synchronized” with a computer. Synchronizing may include sending data, such as electronic calendar data, to the computer and/or receiving data from the computer, such that the mobile communication device and the computer have the same data.
In some example embodiments, there may be multiple servers in communication. For example, the server 188 may be in communication with servers hosting data and/or applications such as LINKEDIN™, BING NEWS™, etc.
Calendar data may include data for a plurality of calendar events. Calendar events are any scheduled occurrence, either future or past. Examples of calendar events include, for example, meetings, appointments, phone, video or internet conferences, etc. Each calendar event is defined by a number of data items. Each data item defines a characteristic of the respective event. For example, the data items defining a given calendar event may include the type of the meeting (e.g. physical meeting, online meeting, video conference, phone conference, lunch, coffee break etc.); an identification of the person(s)/participant(s) associated with the event; a duration of the event; date of the event; meeting notes; and a location of the event. Example embodiments are not limited to these examples of data items.
The term “classified calendar data” used herein refers to calendar data in which data items are organized according to a plurality of event data categories. Accordingly, each data item in classified calendar data is a data item of one of the calendar events classified into one of the event data categories. A data item classified into an event data category is said to correspond to that event data category.
Event data categories define categories of event characteristics. In some example embodiments, event data categories include: meeting type data; participant(s) data; date data; duration data; and location data. Any other characteristics of a calendar event may also be used as an event data category. In some example embodiments, a user may define the event data categories to be included in the classified calendar data.
As mentioned above, each data item in classified calendar data is a data item of one of the calendar events classified into one of the event data categories. For example, if one event data category is meeting type data, then a corresponding data item for each calendar event defines the type of meeting for that event. For example, the corresponding data item for a first event may be “personal”, while the corresponding data item for a second event may be “business”. Other meeting types may include “external”, “internal”, “lunch”, “phone conference” etc. As another example, data items corresponding to the “participant” event data category may identify the specific participants expected to participate in the respective calendar events. As will be appreciated by one skilled in the art, the specific form and content of classified calendar data may vary, and example embodiments are not limited to any of the particular event data categories listed above. In some example embodiments, the event data categories under which the data items are organized may include categories of data not specifically identified herein.
The statistics data may be generating statistics data as a function of data items at least two event data categories. This may allow multiple statistics data to be generated as a function of multiple data items for at least one event. For example, rather than simply generating a statistics quantity based on one event data category, a statistics quantity based on correlations between multiple event data categories may be generated (e.g. the percentage of meetings with a specific participant, occurring at a specific location). Thus, greater flexibility in the types of statistics generated as a function of classified calendar data may be provided.
At block 204, at least a portion of the statistics data is then transmitted. In some example embodiments, the statistics data is transmitted by a server (such as the server 188 shown in
At block 206, the at least a portion of the statistics data is received. The at least a portion of the statistics data may be received, for example, by a client device such as one of the client devices 182, 184 and 186 in
At block 208, the at least a portion of the statistics data is presented on a display. In some example embodiments, the client device that received the at least a portion of the statistics data displays the received data for viewing by a user of the client device.
According to some example embodiments, an apparatus is provided that performs blocks 202 and 204 shown in
According to some example embodiments, an apparatus is provided that performs blocks 206 and 208 shown in
According to other example embodiments, an apparatus is provided that performs blocks 202 and 208 shown in
The statistics data generator 302 may be implemented as a processor configured to generate the statistics data. The statistics data generator 302 may be implemented as a memory (such as the memory 308) containing instructions for execution by a processor (such as the processor 306), by hardware, or by a combination of instructions stored in a memory and additional hardware, to name a few examples. The transmitter may be implemented as the processor configured to transmit the statistics data. In some example embodiments, the statistics data generator 302 and the transmitter 304 share components such as the processor 306 or the memory 308.
The statistics data generator 502 may be implemented as a processor configured to generate the statistics data. The statistics data generator 502 may be implemented as a memory (such as the memory 508) containing instructions for execution by a processor (such as the processor 508), by hardware, or by a combination of instructions stored in a memory and additional hardware, to name a few examples.
In some example embodiments, classified calendar data is stored in a database. The classified calendar data may be stored in the database in a first matrix.
Example embodiments are not limited to the particular event data categories shown in
The remaining rows of the example matrix 600 shown in
In some example embodiments, statistics data is generated as a function of at least one analysis criterion. An analysis criterion defines a type of statistics data to be generated. The at least one analysis criterion, in some example embodiments, includes at least one common denominator. For example, generating statistics data as a function of at least one common denominator may include grouping all calendar events having data item(s) that match the at least one common denominator. The at least one common denominator may be possible data items for one or more event data categories. For example, if the common denominators are a particular meeting type, a particular date and a particular person, then calendar events having the particular meeting type, date, and participant as data items may be designated as a subgroup of calendar events. Other subgroups of calendar events based on another common denominator, or another combination of common denominators, may also be created.
In some example embodiments, generating the statistics data as a function of the classified calendar data includes generating quantities such as percentages or numbers of calendar events or data items satisfying an analysis criterion. For example, an analysis criterion may be a set value or range of values such as date, time, duration etc. In this case, a number or percentage of calendar events fitting within the set date, time or duration (or within the set range) may be determined. As another example, an analysis criterion may be a particular participant, and the statistics data that is generated may be a number of times that a user is scheduled to meet that participant in a given date range. Another example quantity that may be generated includes the total number of different data items (e.g. different participants, locations, etc) classified under a given category. Further examples of statistics data include the number of calendar events scheduled over a certain time range, or the percentage of time spent in certain types of calendar events. In addition, statistics regarding the identity and number of participants may be generated. Other statistical quantities may be generated as a function of the classified calendar data.
At least one analysis criterion may be pre-set (for example, by a user) and may, thus, already be known to the apparatus performing the method. In some example embodiments, at least one analysis criterion is received rather than being pre-set. For example, an analysis criterion may be received as user input. For example, a user may enter a search parameter for generating statistics data. The search parameter may include one or more analysis criteria such as one or more common denominator. A combination of pre-set and received analysis criteria may also be used.
In some example embodiments, generating the statistics data as a function of the classified calendar data includes correlating data items for at least one of the plurality of calendar events (e.g. rows in the matrix) and data items corresponding to at least one of the plurality of event data categories (e.g. columns of the matrix). For example, classified calendar data may be analyzed to determine correlations between meeting type and meeting location, participant, etc. For example, statistic data may include a correlation between a date range, a set of data items under a “participant” category and data items added by a user as specific event “tags” under an additional category. In a more particular example, the correlating the information as described above may produce statistics data regarding all meetings that include a particular person as a participant and which have a particular tag. Examples of event tags are described below.
One skilled in the art will recognize that a wide variety of statistical and/or analytical data may be generated. Analytical data may include a comparison of statistics information with reference data, such as goals or with other statistics information. The analytical data may be based on, for example, certain trends, frequencies or other statistics/analytics information contained in the statistics data, as will be discussed more below. According to some example embodiments, the statistics data may be used to make recommendations or suggestions based on analytical data.
Calendar data, may be collected and/or classified for central processing. “Classifying” calendar data may include organizing data items of raw calendar data (referred to herein as “unclassified” calendar data) according to event data categories. For example, in some example embodiments, the apparatus (such as a server or client device) receives calendar data. If the received data is unclassified, the apparatus device may classify the data for storage as classified calendar data. In some example embodiments, the apparatus requests the calendar data that is subsequently received.
At block 701, a request for calendar data for at least one of a plurality of calendar events is transmitted by a transmitter. At block 702, calendar data corresponding to at least one of a plurality of calendar events is received with a receiver. In some example embodiments, the apparatus receives classified calendar data. In this example method, however, the apparatus receives unclassified electronic calendar data. The calendar data may be requested by the apparatus and received from one or more client devices and may be associated with one or more users' calendars, as will be explained in more detail below. In some example embodiments, the electronic calendar data is requested by the apparatus and received from one or more sources (e.g. through the Internet). Other sources may include one or more servers, Internet domains etc. For example, calendar data stored or hosted for applications, such as MICROSOFT OUTLOOK™, may be collected. Calendar data may be requested and/or received from any suitable source.
Calendar data associated with one or more users may be received. For example, an apparatus, such as the server 188 shown in
Other example embodiments do not include receiving calendar data. In such example embodiments, the calendar data may have been previously stored at the apparatus. Thus, the apparatus would only need to access the stored data from memory rather than receive the data.
As noted above, in the example method shown in
In some example embodiments, classifying the received calendar data may include generating and/or deriving one or more data items for each calendar event. For example, the plurality of calendar events may include a combination of “active” and/or “historical”/“inactive” events. “Active” calendar events include events that are scheduled, but have not yet occurred and/or have not yet finished. “Inactive” or “historical” events include events that have concluded and are no longer “active”. However, the received calendar data may not include data items designating whether the calendar events are “active” or “inactive”. Appropriate date items for each event designating the event as “active” or “inactive” may be derived from the date on which the event is scheduled. Similarly, in some embodiments, data items defining whether calendar events are “internal” or “external” (for example, with respect to a company) are derived. As explained with reference to
At block 706, the classified calendar data is stored in a database in a first matrix.
At block 708, at least one analysis criterion is received with the receiver. In this example, the at least one received analysis criterion includes at least one common denominator. In some example embodiments, the at least one analysis criterion is received based on user input. In this example embodiment, the at least one analysis criterion includes a search parameter received from a user. The search parameter includes at least one common denominator. For example, the received search parameter may be a request for the durations of all meetings occurring at a selected location. In this case, the selected location would be a common denominator.
At blocks 710 and 712 in
At block 710 the statistics data is generated. The statistics data may be generated using a processor. In this example embodiment, generating the statistics data includes, for each common denominator, generating at least one additional matrix containing the calendar events having data items that include the at least one common denominator. In some example embodiments, these one or more additional matrices are more temporary in nature than the first matrix storing all of the classified calendar data. Such temporary matrices are referred to herein as “virtual” matrices. However, example embodiments are not limited to additional matrices of statistics data being more temporary or “virtual”.
In the example where the received search parameter is a request for the durations of all meetings occurring at a selected location, the selected location may be used as a common denominator for generating a subgroup of events including the selected location as a data item classified in a “location data” category. Then, the total duration of meetings, in the subgroup, may be obtained by summing the values stored in data items classified in a “duration data” category in the subgroup.
As another example, common denominators may include selected meeting type(s), participant(s), date(s) etc. A subgroup of calendar events may be created to include all calendar events having “Lunch” classified under the event data category “Meeting Type”. Alternatively, meetings having common participants, dates, or any other common denominators may be grouped together. Subgroups based on combinations of common denominators may also be created. For example, a subgroup including all calendar events happening on a certain date with a certain person may be created.
The statistics data may include a respective virtual matrix for each common denominator (or for each combination of common denominators). For example, a given virtual matrix may include the classified calendar data of all meetings that happened in a certain place, with the same person etc.
As described above, various other types of statistical and analytical information may be generated and included in the statistics data. Statistics data may include derived data generated from the classified calendar data. The derived data may be derived in a similar manner as discussed above regarding deriving data items from received calendar data. For example, derived data may include a designation of calendar events as being “active”, “inactive”, “internal”, “external”, etc.
At block 712, the statistics data, thus generated, including the additional/virtual matrices, is stored in the database. In example embodiments where the apparatus generating the statistics data is a client device, rather than a server, the data may be stored at the client device.
The statistics data may be automatically generated based on at least one pre-set analysis criterion and stored/cached until such time that a request to transmit at least a portion of the statistics data is received. For example, a user may request data showing the frequency at which a particular location is visited with a particular person. Other pre-set analysis criteria may also be used such as the time range, the number of meetings, total duration of meetings etc. This information, together with other statistics data, may be automatically generated prior to the request with no need for input from the user. Then, when the request for that particular data is received, that particular data may be retrieved from storage and transmitted for reception by the user's client device. In other example embodiments, the statistics data, or at least a portion of it, is generated “on the fly”. For example, in some example embodiments, at least a portion of the statistics data is generated upon receipt of the request rather than being automatically generated ahead of time.
At block 714, the at least a portion of the statistics data is transmitted by the transmitter. The at least a portion of the statistics data may be transmitted, for example, for reception by one or more client device (such as one or more of the client devices 182, 184 and 186 shown in
The transmitter 810 transmits at least a portion of the statistics data (for example, for receipt by a client device). The transmitter 810 further transmits a request for unclassified and/or classified calendar data. For example, the request may be transmitted for reception by one or more client devices in communication with the apparatus. In some example embodiments the request is transmitted for reception by one or more sources (such as other servers) storing or hosting electronic calendar data.
The data classifier 804, the database 806 and the statistics data generator 808 may be implemented as a memory (such as the memory 814) containing instructions for execution by a processor (such as the processor 812), by hardware, or by a combination of instructions stored in a memory and additional hardware, to name a few examples. The data classifier 804 may be implemented as a processor configured to classify calendar data. The statistics data generator 808 may be implemented as a processor configured to generate the statistics data. The receiver 802 and the transmitter 810 may be implemented as thr processor configured to perform the respective receiving or transmitting functions discussed above. In some example embodiments, the receiver 802, the data classifier 804, the database 806, the statistics data generator 808 and the transmitter 810 share components such as the processor 812 or the memory 814.
According to some example embodiments, an apparatus, such as one of the client devices 182, 184 and 186 shown in
The statistics data may allow personalized views of the calendar data and statistical/analytical information to be generated from the calendar data to be presented to a user. The presentation of the statistics data (including the form and content of what is presented) may be customizable by the user. Several examples of how statistics data may be presented to a user are discussed below and shown in
Once the classified calendar data is processed in order to generate the statistics data, at least a portion of the statistics data may be either received and/or stored by a client device (such as any of the client devices 182, 184 and 186 shown in
For instance, the user may choose to view in a graph, the number of meetings he/she had with a specific person in a specific restaurant, and within a specific time range. Upon receipt of the user's selection, the statistics data generator may perform a search of the database using the statistics data, and present the search results to the user in a graph. In some example embodiments, the presentation of the statistics data is in the form of a “statistics page” that is displayed for viewing by the user.
As can be seen in
In the example embodiment shown in
As stated above in connection with
As stated above, the user may personalize the statistics page presented by eliminating and/or adding and/or modifying sections and subsections of the statistics page. For example,
As will be appreciated from the discussion above, various ways of personalizing the content and form of displayed statistics data, including statistical and analytical information, may be implemented. Example embodiments are not limited to any particular presentation shown in the example embodiments of the figures.
Calendar Event Tagging
As discussed above, in some example embodiments, an apparatus such as any of the apparatuses 300, 400, 500 and 800 described with respect to
In some example embodiments, calendar data from multiple sources may be synchronized, either by the apparatus. For example, calendar data from any of the following sources may be synchronized: GOOGLE TOOLBAR™; OUTLOOK™; EXCHANGE™; DOMINO™; LOTUS™; NOTES™; iCAL™; ENTOURAGE™; WINDOWS LIVE™; YAHOO!™; CALENDAR™; FACEBOOK CALENDAR EVENTS™; and TRIPIT™. One skilled in the art will appreciate that calendar data that is synchronized may also be from other sources not identified herein.
In some example embodiments, the methods described herein further include receiving a user-designated tag and assigning the tag to each calendar event in the user's calendar. In some example embodiments, the receiver and the data classifier may perform this event tagging function. An event may have more than one tag. For example, a certain client meeting may be tagged “work” and may also be tagged “out of the office meeting”. The methods and apparatuses described herein may use the personalized tags to allow the sharing of calendar events with a specific tag with multiple users. Thus, in some example embodiments, a portion of a particular user's calendar, rather than the entire calendar, may be shared. For example, the user may tag certain work related calendar events under “work”, family related calendar events under “family”, and personal calendar events under “personal”. This way, the user may share calendar events tagged under “family” with family members. In some example embodiments, the family members can only have access to calendar events that the user gave them access to, which in this case, are the ones that are tagged “family”. Family members cannot have access to calendar events tagged under “work” and “personal”. These calendar events are shown as blocks of time with a busy status. Another example tag is a tag describing the subject of a meeting such as “product”, “finance” etc.
In the method according to some example embodiments, a tag is received for at least one of the plurality of calendar events and stored as part of the classified calendar data. The tag may be stored as a classified calendar data item under a column in the matrix. For example, the matrix 600 shown in
Personalized tagging may allow for a better management and viewing of past and future calendar events. For example, by categorizing the calendar events using different tags, users may view personalized statistics that help them evaluate their past activities and meet their future targets. For example, if the user wants to investigate the reason of a success or failure in meeting certain goals or tasks, they may obtain statistics showing the total number of hours spent on certain activities, to determine areas of strength and/or areas for improvement.
Target Setting
In some example embodiments, the method or apparatuses described herein allow the user to set targets and track their progress with respect to the targets set. For example, using a GUI, the user may enter a target number of new clients to meet within a certain time period. An apparatus such as any of the apparatuses 300, 400, 500 and 800 described with respect to
In some example embodiments, targets may be related to one or more of the tags. For example, if the user's target is to spend a certain number of hours doing marketing activities in a certain month, they may enter the number of hours in the “Marketing” tab, and the statistics data generator may keep track of the new hours added to “marketing” tab and generate reminders and progress reports to help the user keep track of their progress and achieve their goal.
Management Statistics/Analytics
In accordance with some example embodiments, statistics and analytics of employees/team members may be managed collectively. For example, it is possible to share and have access to calendar events having the same tag with supervisors, and co-workers.
In accordance with some example embodiments, the user may access and share other user's targets. As an example, a team leader may set targets for his employees and receive reports on their progress and/or advancement with regard to the target set.
Comparative Analytics
In accordance with some example embodiments, the user may compare their statistics with other users. For example, a server or client device implementing the methods described herein may suggest users having similar profiles for comparison. In some example embodiments, some users may enable/disable this feature if they do not want to share their target information and/or their profile with other users.
Participant Brief/“Daily Digest”
The methods and apparatuses described herein may help a user prepare for the upcoming day, week, month, etc. For example, according to some aspects, a brief containing information about participants of calendar events occurring on a certain date, or within a range of dates, may be provided to a user. A brief may be any report, outline, or summary of information. The term “participant brief” used herein refers to a report, outline, or summary of information focused on or relating to one or more participants of calendar events.
The term “participant brief data” is used to describe data defining or relating to a participant brief. The participant brief data includes at least a list of the participants of the calendar events within the selected date range. For example, if the date range is a single day, the list may include all participants of calendar events scheduled to occur on that day. In some example embodiments, as will be explained below, participant data may also include data associated with one or more participants in the list, as will be explained below. Participant brief data may or may not include information in addition to the list of participants and the context data.
At block 1704, at least a portion of the participant brief data is presented on a display. In some example embodiments, presenting at least a portion of the participant brief data on a display includes displaying an identification of each of the participants in the list. Several examples of how the portion of the participant brief data may be presented on a display are shown in
The presentation of at least a portion of participant brief data may be referred to herein as a “people view”. In some example embodiments, participant brief data is generated for each of one or more days (i.e., each day, participant brief data is generated as a function of that day) and at least a portion of the participant brief data, for each day, is presented to the user. In some example embodiments, the at least a portion of the participant brief data is sent to the user in a daily message. The daily message may be presented as a daily “brief” and may be referred to as a “daily digest”.
In some example embodiments, participant brief data is automatically generated without user input. In some example embodiments, participant brief data are generated “on the fly” based on user input.
The participant brief data generator 1802 may be implemented as a processor configured to generate the participant brief data. The participant brief data generator 1802 may be implemented as a memory (such as the memory 1808) containing instructions for execution by a processor (such as the processor 1806), by hardware, or by a combination of instructions stored in a memory and additional hardware, to name a few examples.
In some example embodiments, a method is provided that includes a generating participant brief data, as described above, and transmitting at least a portion of the participant brief data. Such methods may or may not include presenting at least a portion of the participant brief data on a display. The method may be performed by an apparatus, which may be a server (such as the server 188 shown in
The participant brief data generator 1902 may be implemented as a processor. The participant brief data generator 1902 may be implemented as a memory (such as the memory 1908) containing instructions for execution by a processor (such as the processor 1906), by hardware, or by a combination of instructions stored in a memory and additional hardware, to name a few examples. The transmitter 1904 may be implemented as the processor configured to transmit the participant brief data. The transmitter 1904 and the participant brief data generator 1902 may share components such as the processor 1906 or the memory 1908.
In some example embodiments, an apparatus is provided that includes a receiver that receives at least a portion of the participant brief data and a display that is used to display the at least a portion of the participant brief data.
In some example embodiments, the participant brief data further includes context data associated with at least one of the participants in the list of participants. Here, “associated” simply means that the context data is related to the at least one participant in some way. For example, context data may include personal and/or contact information of at least one participant. Personal information may include educational information, employment history, current employment information, personal interests, and any other similar information. Contact information may include phone and/or fax number(s), email address, website information, etc.
Context data may also include status information of at least one of the participants in the list. For example, a given participant's status update on a networking site such as FACEBOOK™ or any other status information may be included as context data.
In some example embodiments, context data includes news information. News information “associated” with at least one of the participants in the list of participants may include news items that discuss the participant, an event the participant is scheduled to attend, an organization (such as a business) that the participant is affiliated with etc. News items may be the content of news stories or Internet links to news stories, for example. This determination may include determining the company for which the participant works for. This may be done through an email lookup, for example, to LINKEDIN™, which then returns a company name. Alternatively, the company name may already be in a contact record in the address book of a client device. The contact record may be retrieved in order to determine the company name. News items may also be determined based on a location of a calendar event or other information contained in the classified calendar data. Example embodiments are not limited to any particular method of determining news items to include in context data.
In some example embodiments, context data includes statistics data associated with at least one of the participants in the list, wherein the statistics data is generated as a function of classified calendar data. For example, the context data may include statistics data relating to one or more of: at least one calendar event; at least one additional participant of one or more events; and at least one location of one or more events. Statistics data may be considered to be “associated” with a given participant if the statistics data contains information about a calendar event, or about a data item of the calendar event (meeting type, location, etc.), where said calendar event includes the given participant. For example, statistics data about locations of calendar events that the given participant is attending (or has attended) would be statistics data “associated” with the participant. Other correlations may also establish that participants are associated with events, other participants, and/or locations.
The context data may include any combination of some or all of the different examples of context data discussed above. The context data is not limited to the specific examples discussed above, and various other types of information relating to one or more of the participants in the list may be included.
At block 2001, a selected date range is received. The selected date range may be received, for example, as user input. In other example embodiments, a selected date range is automatically set or preset and is not received.
At blocks 2002, 2004, 2006 and 2008 collectively, participant brief data is generated. Each of blocks 2002 to 2008 are discussed below in more detail.
At block 2002, similar to block 1702 in
In this example, the calendar data is classified calendar data in a form similar to
At block 2004, a request for a first portion of the context data associated with at least one of the participants in the list is transmitted. The request may be transmitted to a server, such as the server R108 in Figure R1, for example.
At block 2006, the first portion of the context data associated with associated with the at least one of the participants is received. The first portion of the context data may include, for example, status information, personal details, news information, or statistics data similar to the examples described above. Example embodiments are not limited to any particular content of the received context data. The first portion of the context data may be received, for example, from a server. However, the context data may originate from other sources. For example, the context data may be retrieved from social or business networking websites such as FACEBOOK™, LINKEDIN™, or any other suitable source.
Although the first portion of the context data is requested and received in this example, in other example embodiments, all or none of the context data is collected in this manner.
At block 2008, a second portion of the context data is generated as a function of the classified calendar data. In other example embodiments, all of the context data is generated as a function of the classified calendar data. In still other example embodiments, no context data is generated as a function of the classified calendar data.
The received first portion of the context data, the generated second portion of the context data, or both, may include statistics data associated with at least one participant in the list.
At block 2010, an indication of a selected one of the participants included in the list is received. For example, the indication may be received as user input.
At block 2012, at least a portion of the participant brief data is presented on a display. As noted above, examples of how the portion of the participant brief data may be presented on a display are shown in
The method shown in
The participant brief data, in this example, includes context data associated with at least one of the participants in the list. In particular, the statistics data generator 2106 generates at least a portion of context data as a function of the calendar data (which is classified calendar data in this example). The transmitter 2108 transmits a request for at least another portion of the context data. The receiver 2106 receives the at least another portion of the context data. Finally, the display 2110 is used to present at least a portion of the participant brief data. The participant brief data generator 2102, the statistics data generator 2106, the transmitter 2108 and the receiver 2110 may each be implemented as the processor configured to perform the respective functions.
In
In
In
In
In
In
In
One skilled in the art will appreciate that example embodiments are not limited to the form or content of participant brief data including context data shown in
The example daily digest shown in
Some information shown in the display may include a hyperlink to further information. For example, in
In some example embodiments, the server or the client device may browse the name of the meeting participants, collect information about the participants from a networking database or the like such as LINKEDIN™, FACEBOOK™ etc. and present this information to the user. It is also possible to collect information about the participant's companies, jobs, field of expertise etc.
In some example embodiments, the briefing may be sent and/or displayed at a specified time. For example, at 7 PM of each day, a briefing may be sent summarizing the schedule of the next day. The briefing may be configurable by the user, whereby the user may choose the type of information to be displayed, the manner in which the information should be displayed, and the time when the briefing should be sent. This feature may be user enabled feature whereby the user may choose to use the feature or not.
The user may use specific colors, logos, images, backgrounds etc. in the briefing to customize it. In some example embodiments, the colors, logos, images, backgrounds etc. should be hosted on the server, and may be provided for a fee. Furthermore, it is possible to track the links clicked in the briefing in order to obtain a fee in return for, for example, using a pay-per-click type of systems.
Intelligence Engine
In some example embodiments, an apparatus such as any of the apparatuses 300, 400, 500 and 800 described with respect to
The intelligence module may recommend people to invite to a meeting as a user is putting together the meeting invitation. Once the user has entered a particular person as a meeting participant, the intelligence module may generate statistics data about that participant and recommend other people. For example, a person could be recommended because the statistics data shows that the user usually meets with that person as the same time as the user meets with the participant that was entered in the meeting invitation. Similar, the intelligence module may recommend locations. For example, a location may be recommended because the statistics data indicates that the user typically meets that participant that was entered in the meeting invitation at that specific location.
Meeting Buffers
In another aspect, it is possible to use location information to create buffers between meetings whereby, if the estimated travel time between the location of an already scheduled meeting and a requested meeting overlap with the start time of the requested meeting, a buffer of time is created which is equal to or greater than the estimated travel time between the two locations.
In some example embodiments, location information from a database, such as GOOGLE MAPS™, may be used in order to estimate a travel time between the location of the meeting that is already booked and the location of the requested meeting. For example, if the user has a meeting that is already scheduled and booked at location A, which ends at 1 PM, and another user requests a meeting at a location B that starts at 1:15 PM, an estimate of travel time between locations A and B may be obtained. For example, such an estimate may be obtained over the Internet, or generated at a server or client device based on location information. If the estimated travel time is 30 minutes, then it may not be permitted to schedule the meeting before 1:30 PM unless the other user changes the location, in which case, the same process described above will be repeated with a new location. This process may be performed by a server or a client device, for example.
Ability to Compare with Aggregate Data
In some example embodiments, the calendar data of multiple individual users may be received, for example, by the server or the client device. The statistics data generator may run a set of statistic analyses of the data of each specific user. In an example embodiment, the server stores the calendar of each different user, and the statistics data generator runs statistical analysis for the aggregate information of all calendar entries of all users in the system. Such example embodiments may allow statistics data concerning general trends of user behavior to be generated. Then, each individual user may be able to compare their own specific trends with that of the aggregate of the users on the system.
In some example embodiments, the statistics data generator runs aggregate statistical analysis on a subset of users' classified calendar data. The subset of users may have similar characteristics, such as similar titles, companies, industry, etc. Each individual user may be able to compare their results with the aggregate.
As an example, looking at the meetings/day graph. A user will be able to compare his chart with that of the “average” user of the system. Or, they may compare it with the graph of every user that has a CEO title, or anyone that works at a specific place/company. This can also be applied to any other charts.
Productivity Suggestions Based on Aggregate Data
Given the ability to compare with aggregate data as discussed above, in some example embodiments, recommendations for a particular user are made on the basis of the statistics of an average user in the same domain as the particular user. For example, the system may state to the user “You are scheduling 30% less external meetings than the average sales person in your industry. Therefore, we recommend that you try scheduling one additional meeting every day.” In another example, the system may state to the user: “On average, each meeting lasts 75 minutes. We recommend that you try to bring this down to 60 minutes—which is the standard for people with your title in your industry”.
Recommendations Based on Different Calendar Entries
In some further example embodiments, when a user makes a specific entry in his calendar, recommendations of different services may be made. For example, if the user enters an entry for a meeting in San Francisco, the system may then make a recommendation for flights, hotels, restaurants, etc. These recommendations may also follow certain corporate restrictions imposed by the corporation. For example, if the employer of the user can only allow travel with United Airlines, the system would only propose flights with that airline etc.
Another example, based on the different calendar entries, is if the system knows that the user often stops by a STARBUCKS™ coffee shop in the morning, and finds that the user has a meeting at or near a particular STARBUCKS™ coffee shop in the morning, the system may make a recommendation that you pass by the particular STARBUCKS™ coffee shop after the meeting. The system may also provide directions to that location.
The methods described herein are provided as example embodiments. Other example embodiments may include some, but not all, of the steps described herein with respect to the example embodiments. Furthermore, the steps of methods according to some example embodiments may be performed in a different order than shown in
Example Mobile Device
The mobile device 100 has a housing that may be elongated vertically, or may take on other sizes and shapes (including clamshell housing structures). The keyboard 114 may include a mode selection key, or other hardware or software for switching between text entry and telephony entry. Alternatively, the mobile device 100 may have a housing that does not take on other sizes and shapes.
A microprocessor 128 is shown schematically as coupled between a keyboard 114 and a display 126. The microprocessor 128 is a type of processor with features similar to those of the processor 1806 and 2112 of the apparatuses 1800 and 2100 shown in
In addition to the microprocessor 128, other parts of the mobile device 100 are shown schematically. These include: a communications subsystem 170; a short-range communications subsystem 102; the keyboard 114 and the display 126, along with other input/output devices including a set of LEDs 104, a set of auxiliary I/O devices 106, a serial port 108, a speaker 111 and a microphone 112; as well as memory devices including a flash memory 116 and a Random Access Memory (RAM) 118; and various other device subsystems 120. The mobile device 100 may have a battery 121 to power the active elements of the mobile device 100. The mobile device 100 is in some example embodiments a two-way radio frequency (RF) communication device having voice and data communication capabilities. In addition, the mobile device 100 in some example embodiments has the capability to communicate with other computer systems via the Internet.
Operating system software executed by the microprocessor 128 is in some example embodiments stored in a persistent store, such as the flash memory 116, but may be stored in other types of memory devices, such as a read only memory (ROM) or similar storage element. In addition, system software, specific device applications, or parts thereof, may be temporarily loaded into a volatile store, such as the RAM 118. Communication signals received by the mobile device 100 may also be stored to the RAM 118.
The microprocessor 128, in addition to its operating system functions, enables execution of software applications on the mobile device 100. A predetermined set of software applications that control basic device operations, such as a voice communications module 130A and a data communications module 130B, may be installed on the mobile device 100 during manufacture. In addition, a personal information manager (PIM) application module 130C may also be installed on the mobile device 100 during manufacture. The PIM application is in some example embodiments capable of organizing and managing data items, such as e-mail, calendar events, voice mails, appointments, and task items. The PIM application is also in some example embodiments capable of sending and receiving data items via a wireless network 110. In some example embodiments, the data items managed by the PIM application are seamlessly integrated, synchronized and updated via the wireless network 110 with the device user's corresponding data items stored or associated with a host computer system.
Additional software modules, illustrated as another software module 130N, may be installed during manufacture. The software modules may include, for example, the participant brief data generators 1802 or 2102 of
Communication functions, including data and voice communications, are performed through the communications subsystem 170, and possibly through the short-range communications subsystem 102. The communications subsystem 170 includes a receiver 150, a transmitter 152, a GPS receiver 162, and one or more antennas, illustrated as a receive antenna 154, a transmit antenna 156, and a GPS antenna 164. In addition, the communication subsystem 170 also includes a processing module, such as a digital signal processor (DSP) 158, and local oscillators (LOs) 160. The receiver 150 and transmitter may be similar to the receiver 2110 and transmitter 2108, respectively, of
The specific design and implementation of the communications subsystem 170 is dependent upon the communication network in which the mobile device 100 is intended to operate. For example, the communications subsystem 170 of the mobile device 100 may be designed to operate with the Mobitex™, DataTAC™ or General Packet Radio Service (GPRS) mobile data communication networks and also designed to operate with any of a variety of voice communication networks, such as Advanced Mobile Phone Service (AMPS), Time Division Multiple Access (TDMA), Code Division Multiple Access (CDMA), Personal Communications Service (PCS), Global System for Mobile Communications (GSM), etc. Examples of CDMA include 1× and 1× EV-DO. The communication subsystem 170 may also be designed to operate with an 802.11 Wi-Fi network, or an 802.16 WiMAX network or both. Other types of data and voice networks, both separate and integrated, may also be utilized with the mobile device 100.
Network access may vary depending upon the type of communication system. For example, in the Mobitex™ and DataTAC™ networks, mobile devices are registered on the network using a unique Personal Identification Number (PIN) associated with each device. In GPRS networks, however, network access is typically associated with a subscriber or user of a device. A GPRS device therefore typically has a subscriber identity module, commonly referred to as a Subscriber Identity Module (SIM) card, in order to operate on a GPRS network.
When network registration or activation procedures have been completed, the mobile device 100 may send and receive communication signals over the communication network 110. Signals received from the communication network 110 by the receive antenna 154 are routed to the receiver 150, which provides for signal amplification, frequency down conversion, filtering, channel selection, etc., and may also provide analog to digital conversion. Analog-to-digital conversion of the received signal allows the DSP 158 to perform more complex communication functions, such as demodulation and decoding. In a similar manner, signals to be transmitted to the network 110 are processed (e.g., modulated and encoded) by the DSP 158 and are then provided to the transmitter 152 for digital to analog conversion, frequency up conversion, filtering, amplification and transmission to the communication network 110 (or networks) via the transmit antenna 156.
In addition to processing communication signals, the DSP 158 provides for control of the receiver 150, the transmitter 152, and the GPS receiver 162. For example, gains applied to communication signals in the receiver 150 and the transmitter 152 may be adaptively controlled through automatic gain control algorithms implemented in the DSP 158.
In a data communication mode, a received signal, such as a text message or web page download, is processed by the communication subsystem 170 and is input to the microprocessor 128. The received signal is then further processed by the microprocessor 128 for an output to the display 126, or alternatively to some other auxiliary I/O devices 106. A device user may also compose data items, such as e-mail messages, using at least one of the keyboard 114 and some other auxiliary I/O device 106, such as a touchpad, a rocker switch, a thumb-wheel, or some other type of input device. The composed data items may then be transmitted over the communication network 110 via the communication subsystem 170.
In a voice communication mode, overall operation of the device is substantially similar to the data communication mode, except that received signals are output to a speaker 111, and signals for transmission are generated by a microphone 112. Alternative voice or audio I/O subsystems, such as a voice message recording subsystem, may also be implemented on the mobile device 100. In addition, the display 126 may also be utilized in voice communication mode, for example, to display the identity of a calling party, the duration of a voice call, or other voice call related information.
Location determination using GPS technology involves receiving GPS signals from GPS satellites 166 on the antenna 164. The GPS signals are received using the GPS receiver 162 and processed by the DSP 158. Typically, GPS signals from at least four satellites are processed. Further details of GPS are omitted for simplicity.
The short-range communications subsystem 102 enables communication between the mobile device 100 and other proximate systems or devices, which need not necessarily be similar devices. For example, the short range communications subsystem may include an infrared device and associated circuits and components, or a Bluetooth™ communication module to provide for communication with similarly-enabled systems and devices.
Other
According to some aspects, a computer-readable medium is provided having computer-executable instructions stored thereon that, when executed, cause a computer to implement any one of the methods described herein.
While some specific example embodiments have been described above and illustrated in the accompanying drawings, it will be evident to those skilled in the art that modifications may be made without departing from this disclosure. Such modifications are considered as possible variants included in the scope of the disclosure.
Number | Date | Country | Kind |
---|---|---|---|
PCT/CA2011/050655 | Oct 2011 | CA | national |
The present patent application is a continuation of PCT International Application No. PCT/CA2011/050655 filed Oct. 17, 2011, which claims the benefit of U.S. Provisional Patent Application Ser. No. 61/405,402 filed Oct. 21, 2010, the entire contents of both of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61405402 | Oct 2010 | US |
Number | Date | Country | |
---|---|---|---|
Parent | PCT/CA2011/050655 | Oct 2011 | US |
Child | 13866458 | US |