Live conference objects in calendar views
Patent Information
- Application Number
- CN202411321202.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2019-03-17
- Filing Date
- 2020-03-09
- Publication Date
- 2025-01-10
AI Technical Summary
尽管现有的日历程序提供了用于安排会议的许多特征,但是与日历程序的低效交互会对用户生产力和计算资源的使用不利
[0019] Data from multiple sources can be used to provide context-aware information for calendar items in the calendar view. Such technology can improve user interaction with computing devices by automatically generating and displaying timely and relevant information without requiring the user to open a calendar event, perform a search, or manually access multiple sources. Among the many benefits provided by the techniques described herein, user interaction with the device can be improved, which can reduce the amount of unintentional input, reduce the consumption of processing resources, and ease the use of network sources. Other technical effects besides those mentioned herein can also be achieved from implementations of the technology disclosed herein. Existing systems that allow users to manually interact with calendar items often require the user to perform multiple tasks. Users spend a considerable amount of time searching for available calendar items to find and change settings, calling additional applications to perform functions that are not native to the calendar application, and finding content associated with scheduled events. This results in a large and unnecessary consumption of computing resources.
Smart Images

Figure CN119292494A_ABST
Abstract
Description
[0001] This application is a divisional application of the invention patent application with application number 202080021727.1 filed on March 9, 2020 and named “Live Conference Object in Calendar View”. Background Art
[0002] Some computing systems provide interactive and collaborative environments that promote communication between two or more participants. Such systems may include calendar programs that are configured to schedule and manage meetings and appointments. Although existing calendar programs provide many features for arranging meetings, inefficient interactions with calendar programs are disadvantageous to user productivity and the use of computing resources. When calendar applications cannot optimize user participation and information sharing, when participants cannot quickly and easily view meetings and interact with meeting contexts, production losses and low rates may result. For example, some calendar applications may require users to open calendar items and perform many menu-driven tasks to amplify areas of interest. Therefore, when participants need further details about a meeting, they must go to the meeting date, open the meeting, and click on the meeting link to find further information and access interactive options. It is precisely for these considerations and other considerations that content disclosed herein is proposed. Summary of the invention
[0003] Many calendar applications present schedule information in a static format. The details of a calendar event may not be updated in a dynamic and real-time manner, and unless the calendar event is opened or otherwise further activated, the relevant details may not be readily available. By using the techniques described herein, information for a calendar event is presented in a dynamic format that allows timely and useful information to be presented directly within a calendar view. The dynamic view may include real-time updates on the status of the calendar event and interactive capabilities provided directly on the representation of the calendar event within the calendar view.
[0004] In various embodiments, an existing calendar item for a meeting may be automatically converted to a live conference object within a calendar view. In an embodiment, an existing calendar item for a meeting may be updated before the set start time of the meeting to include and display a "join" control. The join control may be configured to enable a user to join a meeting directly from the calendar view without opening the details of the calendar item. Although some collaborative electronic user interfaces may provide a meeting "join" control, this functionality is typically only provided when the user further engages with the calendar item, such as opening the calendar item, opening and selecting a menu option, or launching an application outside the calendar application. In some cases, the user must select a detailed meeting view that requires multiple clicks to open and access the details of the meeting.
[0005] In various embodiments, the state of a calendar item can be dynamically updated based on context such as the current time and date. For example, a calendar item may initially describe the title of a meeting, but a "join" button is not displayed before the start time of the meeting. Typically, when multiple calendar items are displayed, such as in a full-day calendar view or a full-week calendar view, such interactive options are not typically presented for meetings displayed within a full-day calendar view or a full-week calendar view. In an embodiment, a "join" control may be added to a calendar item when a threshold time is reached before the start time of the meeting, such as fifteen minutes before the start time. The "join" control may be added when the user interface is in a calendar view without any specific input from the user. In addition, a "join" control may be presented on a calendar item or multiple calendar items within a calendar view that may include multiple date ranges and calendar items within those date ranges. The "join" control may be presented during the entire time the meeting is in progress. For example, clicking the "join" button may bring the user to a pre-join screen or launch an application to join the meeting.
[0006] In one embodiment, the calendar item may also provide an indication that a meeting is ongoing. In addition to adding a "join" button, the calendar item may also provide a visual indication, such as a color change, to indicate that the meeting is ongoing. The visual indication and addition of a "join" button may be additional other notifications for the meeting that may be provided across other interfaces and form factors that have an interface to a calendar item.
[0007] Once a meeting is in progress, additional information and controls may be provided to provide further contextual awareness of the meeting. For example, an icon may be presented on the calendar item to indicate the number of participants that have joined the meeting. In one embodiment, an icon may be presented for each participant that has joined the meeting. In another embodiment, an elapsed time for the meeting may be presented, indicating how long the meeting has been in progress.
[0008] In some embodiments, an "RSVP" option may be presented on the calendar item. In response to the "RSVP" option, the user may accept or decline the meeting directly in the calendar view by clicking or otherwise activating the option. An indication may be provided to the organizer of the meeting to indicate whether the user will attend the meeting.
[0009] In an embodiment, the calendar item may also provide an indication of the current content of the meeting. For example, if a presentation or document is being shared, a preview window may be presented on the calendar item. As another example, a video camera view may be presented on the calendar item. By providing such information, participants who plan to attend a portion of a meeting may use the meeting preview to selectively join the meeting to optimize the time spent in the meeting.
[0010] In an embodiment, a preview icon may be presented, allowing the user to preview recent messages / conversations within a calendar item. In an embodiment, a chat icon may be presented. The chat icon may provide an indicator (e.g., a red dot) when a recent chat is active and available. By clicking on the chat icon, the user may be taken to a preview of the conversation.
[0011] In an embodiment, a note icon may be presented, wherein the calendar item may indicate that a new note has been added to the meeting. The icon may also indicate recent note activity by rendering a red bubble or dot on the icon. The notes may include notes added by participants of the meeting via the collaboration platform used to facilitate the meeting.
[0012] In an embodiment, a whiteboard icon may be presented, which may indicate that a new whiteboard has been added to the meeting. The whiteboard icon may indicate recent whiteboard activity by presenting a red bubble or dot on the icon. The whiteboard may be a tool for allowing participants of the meeting to draw or write shared input via the collaboration platform being used to facilitate the meeting.
[0013] In an embodiment, a recording icon may be presented that may indicate that a recording is available for viewing. The recording icon may indicate recent activity by presenting a red bubble or dot on the icon. The recording may include a video and / or audio recording captured by a recording tool that may be part of the collaboration platform being used to facilitate the meeting.
[0014] In an embodiment, a file icon may be presented that may indicate that a new file has been added to the meeting. The file icon may indicate recent activity by presenting a red bubble or dot on the icon. The files may include those files added or shared by participants of the meeting via the collaboration platform being used to facilitate the meeting.
[0015] In an embodiment, a share icon may be presented that a user may click or otherwise activate to forward / share the current meeting with other participants or add to a conference channel. The meeting may be shared or forwarded as a meeting object that the invited participants may receive via email or other messaging systems.
[0016] In an embodiment, the calendar item may also provide interactive options after the meeting has ended. For example, the calendar item may provide an indication that the meeting has ended, such as a color change to indicate that the meeting is no longer ongoing. Once the meeting has ended, additional information may be provided to enable further interaction with the content of the meeting. For example, icons may be presented on the calendar item to indicate the participants participating in the meeting. In an embodiment, the calendar item may also provide a way to view or listen to recent activities, such as playback of a recording of a meeting, access to a chat transcript, and access to content shared at the meeting. For example, if a presentation or document is shared, options may be provided on the calendar item to access files or documents, contact meeting participants, etc.
[0017] A dynamic calendar item as described herein may be referred to as a conference object or interactive calendar surface. The conference object or interactive calendar surface may facilitate a shared conference and communication environment that improves collaboration and other activities. The data that may be provided on the interactive calendar surface may include, but is not limited to: videos, images, 3D models, office applications, captured environments / objects, annotations, demonstrations, shared locations, notes, expressions, or other shared activities.
[0018] In some embodiments, additional interactive calendar surface layers can be implemented on top of the active interactive calendar surface that are visible to the user and can be manipulated as independent objects. For example, additional interactive calendar surface objects can be independently saved, forwarded to other users, modified, annotated, added as objects to other applications and files, and viewed as recipients of other files and objects. The conference object can be addressable, operable, and searchable as a conversation object. The conference object can be edited, for example to compress or select a highlight for the conference, before sending the object in the same or different context.
[0019] Data from multiple sources can be used to provide context-aware information for calendar items in the calendar view. Such technology can improve user interaction with computing devices by automatically generating and displaying timely and relevant information without the user opening calendar events, searching, or manually accessing multiple sources. Among the many benefits provided by the technology described herein, user interaction with devices can be improved, which can reduce the number of unintentional inputs, reduce the consumption of processing resources, and alleviate the use of network sources. Other technical effects other than those mentioned in this article can also be realized from the implementation of the technology disclosed in this article. Existing systems that allow users to manually interact with calendar items usually require users to perform multiple tasks. Users spend a considerable amount of time searching for available calendar items to find and change settings, calling additional applications to perform calendar application non-native functions, and finding content associated with scheduled activities. This can lead to a large amount of computing resources and unnecessary consumption.
[0020] The examples described herein may be provided within the context of a collaborative environment, such as a scheduled calendar event, a group meeting, a live broadcast, etc. For purposes of illustration, it will be appreciated that a computer managing a calendar environment refers to any type of computer that can access a user's calendar data and manage a communication session in which two or more computers share data. For purposes of illustration, an "event" is a specific instance of a communication session that may have a start time, an end time, and other parameters for controlling how data is shared and displayed to users participating in the communication session.
[0021] Features and technical advantages in addition to those explicitly described above will be apparent by reading the following detailed description and reviewing the associated drawings. This summary is provided to introduce a selection of concepts that are further described in the following detailed description in a simplified form. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. BRIEF DESCRIPTION OF THE DRAWINGS
[0022] Figure 1 is an exemplary user interface illustrating aspects of a calendar environment of embodiments disclosed herein.
[0023] Figure 2 An exemplary display according to one embodiment disclosed herein is illustrated.
[0024] Figure 3 An exemplary display according to one embodiment disclosed herein is illustrated.
[0025] Figure 4An exemplary display according to one embodiment disclosed herein is illustrated.
[0026] Figure 5 An exemplary display according to one embodiment disclosed herein is illustrated.
[0027] Figure 6 An exemplary display according to one embodiment disclosed herein is illustrated.
[0028] Figure 7 is an exemplary user interface illustrating aspects of a calendar environment for embodiments disclosed herein;
[0029] Figure 8 is an exemplary user interface illustrating aspects of a calendar environment for embodiments disclosed herein;
[0030] Fig. 9 is a computing system diagram illustrating aspects of an illustrative operating environment for the techniques disclosed herein;
[0031] Fig.10 is a computing system diagram illustrating aspects of an illustrative operating environment for the techniques disclosed herein;
[0032] Fig.11 is a computing device diagram illustrating aspects of the configuration and operation of a device capable of implementing aspects of the disclosed technology according to one embodiment disclosed herein.
[0033] Fig.12 is a computing system diagram showing aspects of an illustrative operating environment for the techniques disclosed herein;
[0034] Fig.13 illustrates aspects of a routine according to one embodiment disclosed herein;
[0035] Fig.14 illustrates aspects of a routine according to one embodiment disclosed herein;
[0036] Fig.15 is a computing system diagram showing aspects of an illustrative operating environment for the techniques disclosed herein;
[0037] Fig.16 is a computing device diagram illustrating aspects of the configuration and operation of a device capable of implementing aspects of the disclosed technology according to one embodiment disclosed herein. DETAILED DESCRIPTION
[0038] The following detailed description describes an improved interface for viewing and interacting with calendar events presented as a representation of a calendar. Various embodiments are disclosed that enable productive discovery and management of past, present, and future calendar activities for a user. This results in more efficient use of computing resources, such as processor cycles, memory, network bandwidth, and power, compared to previous solutions that rely on inefficient interactions with a presented calendar environment and objects within the presented calendar environment. Technical benefits in addition to those specifically described herein may also be realized by implementations of the disclosed technology.
[0039] A calendar object is typically a representation of scheduled events in a calendar application that is configured to provide an electronic representation of a calendar. The representation may include a calendar showing dates and days of the week and a list of appointments. The calendar application may be a local application designed for individual use, or may be a networked application that allows calendar information to be shared in an interactive and collaborative environment. Examples of calendar software include WINDOWS LIVE CALENDAR, GOOGLE CALENDAR, or MICROSOFTOUTLOOK.
[0040] Arranged and networked meetings represent a popular form of electronic collaboration that utilizes interactive applications (e.g., CISCO WEBEX provided by CISCO SYSTEMS, Inc. of San Jose, CA, GOTOMEETING provided by CITRIX SYSTEMS, INC. of Santa Clara, CA, ZOOM provided by ZOOM VIDEO COMMUNICATIONS of San Jose, CA, GOOGLE HANGOUTS provided by ALPHABET INC of Mountain View, CA, and SKYPE and SKYPE FOR BUSINESS and TEAMS provided by MICROSOFT CORPORATION of Redmond, WA) to facilitate communication between two or more participants. Participants in a communication session in a web conference can exchange live video, audio, and other types of content to view, listen to, and otherwise share information. Various types of computing devices can be utilized to participate in web conferences, including, but not limited to: smart phones, tablet computing devices, set-top boxes, smart TVs, video game systems, and AR, VR, and MR devices.
[0041] Many calendar applications present scheduling information in a static format. The details of a calendar event may not be updated in a dynamic and real-time manner, and unless the calendar event is opened or otherwise further activated, the relevant calendar information is not readily available. Various embodiments for implementing an improved interface for viewing and interacting with calendar objects of a calendar application are disclosed. In one embodiment, an interactive calendar surface is disclosed that is operable to facilitate user interaction with the content of a calendar event and interaction with other participants of the calendar event, all within a calendar view of a calendar application. Enabled user interactions may include updating meeting content, sharing meeting content, interacting with other participants, and joining meetings. By using the techniques described herein, information for calendar events is presented in a dynamic format that allows timely and useful information to be presented directly within a calendar view. The dynamic view may include real-time updates on the status of calendar events and interactive capabilities provided directly on the representation of calendar events within the calendar view.
[0042] In some embodiments, the interactive calendar surface can automatically convert an existing calendar item for a meeting into a live meeting object within the calendar view. Figure 1 The figure illustrates an exemplary calendar view 100 presented on a user interface (UI) including calendar items 110. Calendar view 100 may indicate one or more calendar days including a time span including a plurality of time slots.
[0043] The calendar item 110 may be updated prior to the set start time of the meeting to include and display a "join" control 130 within the calendar view. The join control 130 may be configured to enable a user to join the meeting directly from the transformed calendar view without opening the details of the calendar item. The join control 130 may have at least a selectable area configured to indicate a scheduled meeting to join. Although some existing user interfaces provide a "join" button, this functionality is typically provided when the user further engages with the calendar item, such as opening the calendar item, opening and selecting a menu option, or otherwise moving further away from the calendar view. In some cases, the user must select a detailed view that requires multiple clicks to open and access the details of the meeting.
[0044] In various embodiments, the status of a calendar item can be dynamically updated based on context such as the current time and date. Context information can also be based on other information, such as user preferences, whether the organizer of the meeting has started the meeting, and other factors. In one embodiment, a calendar item can provide a meeting title, date, time, and location, but the "join" button may not be initially displayed before the start time of the meeting, before a time threshold, or other criteria. When multiple calendar items are displayed, such as in a full-day calendar view or a full-week calendar view, such interactive options are usually not presented on the calendar item. In an embodiment, when a threshold time is reached before the meeting start time, such as fifteen minutes before the start time, the status of the calendar meeting can be updated, and a "join" control can be added to the calendar item. The "join" control can be automatically added when the calendar application is presented in the calendar view without any specific input from the user. In addition, the "join" control can be presented on a calendar item or multiple calendar items within a calendar view, and the calendar view can include multiple date ranges and calendar items within those date ranges without the user opening the calendar item.
[0045] In one embodiment, the calendar item may also provide an indication that a meeting is in progress. In addition to adding a "Join" button, Figure 1 In the illustrated example, calendar item 110 may also provide a visual indication, such as a color change, to indicate that a meeting is ongoing.
[0046] The visual indication and addition of a "join" button can be an additional other notification for the meeting, which can be provided across multiple interfaces and form factors with an interface to a calendar item. In an embodiment, the "join" control can be continuously presented during the entire time the meeting is ongoing.
[0047] In some embodiments, an "RSVP" option may be presented on the calendar item. In response to the "RSVP" option, the user may accept or decline the meeting directly in the calendar view by clicking or otherwise activating the option. An indication may be provided to the organizer of the meeting to indicate whether the user will attend the meeting.
[0048] In some embodiments, once a meeting is ongoing, additional information may be provided to provide further contextual awareness of the meeting. For example, an icon may be presented on the calendar item to indicate the number of participants who have joined the meeting. In one embodiment, an icon may be presented for each participant who has joined the meeting.
[0049] In some embodiments, the calendar item may also provide an indication of content being discussed or presented at a meeting. In an embodiment, a dynamic calendar item as described herein may be referred to as an interactive calendar surface. The interactive calendar surface may facilitate a shared conference and communication environment that improves collaboration and other activities. The data that may be provided on the interactive calendar surface may include, but is not limited to: video, images, 3D models, office applications, captured environments / objects, annotations, demonstrations, shared locations, notes, expressions, or other shared activities.
[0050] The interactive calendar surface can facilitate interaction with source data of content that is part of the calendar event. For example, if a presentation or document is being shared, a preview window can be presented on the calendar item. As another example, a video camera view can be presented on the meeting object. By providing such information, participants who are part of a longer meeting can selectively join the meeting, using the meeting preview to optimize the time spent in the meeting. This allows users to quickly access meeting content, rather than searching for the content as a separate task and opening an application to view an image of the content. Thus, the interactive calendar surface provides a focused view of the content that is contextually available to the group during the course of the calendar event.
[0051] The conference object can be opened to provide further details for the event. In some embodiments, the conference object can be sent to a user who can access the conference by interacting with the object. For example, a recipient of the conference object can click on the conference object to join the conference or view details about the conference.
[0052] In some embodiments, actions available for the conference object or interactive calendar surface can be dynamically updated based on detected activity in the room. For example, if a presentation is presented on a display within the presented environment, the interactive calendar surface can be updated to include a thumbprint of the displayed presentation.
[0053] Data from multiple sources can be used to provide context-aware information for calendar items. Such technology can improve user interaction with computing devices by automatically generating and displaying timely and relevant information without the user having to open calendar events, search, or manually access multiple sources. Among the many benefits provided by the technology described herein, user interaction with devices can be improved, which can reduce the number of unintentional inputs, reduce the consumption of processing resources, and alleviate the use of network sources. Other technical effects other than those mentioned in this article can also be achieved according to the implementation of the technology disclosed in this article.
[0054] In some embodiments, the actions available on the interactive calendar surface may be based on the assigned roles for the users. For example, some users may be assigned a meeting moderator role and may be allowed to edit content before it is shared. Other users may have a participant role or a group role and may be allowed to control their own settings or collectively control settings for the group.
[0055] In an embodiment, the conference object may also provide interactive options after the conference has ended. For example, the conference object may provide an indication that the conference has ended, such as a color change to indicate that the conference is no longer ongoing. Once the conference has ended, additional information may be provided to enable further interaction with the content of the conference. For example, icons may be presented on the calendar item to indicate participants who have joined the conference. In an embodiment, the calendar item may also provide a way to view or listen to recent activities, such as playback of a recording of a meeting, access to a chat transcript, and access to content shared at the conference. For example, if a presentation or document is shared, options may be provided on the conference object to access files or documents, contact conference participants, and the like.
[0056] In some embodiments, actions and features activated by the user during an edit / view session can be recorded and can be replayed by the user. In some embodiments, the captured images of the meeting can be linked to a time window. For example, images selected for editing from the meeting can be associated with a default time window such as 30 seconds. The interactive calendar surface can provide a timeline tool to traverse the time range during which activities occurred and record the available time range. In this way, the user can view different times of the activity from the perspective of the image, and further be provided with various editing options within the available time range.
[0057] In some embodiments, additional interactive calendar surface layers can be implemented on the active interactive calendar surface that is visible to the user and can be manipulated as independent objects. For example, additional interactive calendar surface objects can be independently saved, forwarded to other users, modified, annotated, added as objects to other applications and files, and viewed as recipients of other files and objects. The meeting object can be addressable, operable, and searchable as a conversation object. The meeting object can be edited, such as compressing or selecting highlights of the meeting, before sending the meeting in the same or different context.
[0058] Turning now to the accompanying drawings (which may be referred to herein as "figures" or "figures"), additional details regarding the improved calendar interface disclosed herein will be provided with reference to the accompanying drawings. The accompanying drawings show specific configurations or examples by way of illustration. Throughout the accompanying drawings, the same numbers represent similar or analogous elements. In the figures, the leftmost (one or more) digits of a reference number generally identify the figure in which the reference number first appears. References to individual items in a plurality of items can use a reference number with another digit included in parentheses (and / or a letter without parentheses) to refer to each individual item. General references to items may use specific reference numbers without letter sequence. The figures are not drawn to scale.
[0059] It should be appreciated that the subject matter described above can be implemented as a computer-controlled device, a computer process, a computing system, or as an article of manufacture such as a computer-readable storage medium. These and various other features will be apparent from reading the following detailed description and reviewing the associated drawings. Furthermore, the claimed subject matter is not limited to implementations that solve any or all of the disadvantages noted in any part of this disclosure.
[0060] It should be appreciated that various aspects of the subject matter briefly described above and described in further detail below can be implemented as hardware devices, computer-implemented methods, computer-controlled apparatus or devices, computing systems or articles of manufacture, such as computer storage media. Although the subject matter described herein is presented in the general context of program modules executed on one or more computing devices, those skilled in the art will recognize that other implementations can be performed in conjunction with other types of program modules. Typically, program modules include routines, programs, components, data structures, and other types of structures that perform specific tasks or implement specific abstract data types.
[0061] Those skilled in the art will also appreciate that aspects of the subject matter described herein can be practiced on or in conjunction with other computer system configurations than those specifically described herein, including multi-processor systems, microprocessor-based or programmable consumer electronics, AR, VR and MR devices, video gaming devices, handheld computers, smart phones, smart televisions, self-driving vehicles, smart watches, e-readers, tablet computing devices, dedicated hardware devices, network devices, and the like.
[0062] Figure 2 An example of a user interface 200 is illustrated in which a calendar application 210 is presented prior to a dynamic calendar event update. Figure 2 The calendar application 210 illustrated in FIG. 2 may represent various applications, including but not limited to: Teams, for Skype and Microsoft The calendar application 210 may display a representation 220 of a calendar view on the user interface 200. The calendar view may include one or more calendar days, the calendar day including a time span including a plurality of time slots. Scheduled meetings 230 and 240 may be presented in at least some of the time slots. The scheduled meetings are initially presented without interactive controls for joining the scheduled meetings.
[0063] refer to Figure 3 , the state of calendar item 230 can be dynamically updated based on context such as the current time and date. For example, when a threshold time is reached before the meeting start time of calendar item 230, such as fifteen minutes before the start time, a "join" control 300 can be added to calendar item 230. The "join" control 300 can be added when the user interface is in the calendar view without any specific input from the user. In addition, the "join" control 300 can be presented on the calendar item 230 within a calendar view, and the calendar view can include multiple date ranges and calendar items within those date ranges. The "join" control 300 can be presented during the entire time that the meeting is in progress. For example, clicking the "join" button can take the user to a pre-join screen or launch an application to join the meeting.
[0064] In one embodiment, calendar item 230 may also provide an indication that a meeting is ongoing. In addition to adding a "join" button 300, calendar item 230 may provide a visual indication such as a color change to indicate that the meeting is ongoing.
[0065] Once a meeting is ongoing, additional information can be provided to enable further contextual awareness of the meeting. Figure 4 , icon 400 can be presented on the calendar item to indicate the number and identity of the participants who have joined the conference. In one embodiment, an icon can be presented for each participant who has joined the conference.
[0066] In an embodiment, the calendar item may also provide an indication of the current content of the meeting. Figure 5 , if a presentation or document is being shared, a preview window 500 may be presented over the calendar item. As another example, the preview window 500 may include a video camera view.
[0067] In an embodiment, calendar item 230 may also provide interactive options after the meeting has ended. Figure 6, calendar item 230 may provide an indication that the meeting has ended, such as a change in color to indicate that the meeting is no longer ongoing. In addition, the "Join" button may be removed. Once the meeting has ended, additional information may be provided to enable further interaction with the content of the meeting. For example, icons may be presented on the calendar item to indicate the participants who joined the meeting. Figure 6 In the embodiment illustrated in , the calendar item 230 may also provide an icon 600 to view or listen to recent activities, such as playback of a recording of a meeting, a chat transcript, and access content shared at the meeting. For example, if a presentation or document is shared, an icon 610 may be provided on the calendar item to access the file or document. Figure 7 In one embodiment illustrated in , selection of icon 600 or 610 may open a UI 700 providing further details of the meeting. A follow-up button 710 may be provided to enable a user to schedule a follow-up meeting. In addition, a meeting playback control 720 may be provided to initiate playback of a recording of the meeting.
[0068] Figure 8 It is illustrated that while some features are accessible for a meeting in calendar view 100, the calendar item can be opened to provide further details in pane 800. Pane 800 can include options such as a join button 810 and an RSVP button 820 for participating in the meeting.
[0069] Fig. 9 900 (also referred to herein as "system 900") for providing dynamic updates of calendar events as disclosed herein. In an illustrative example, the exemplary environment 900 can include one or more servers 920, one or more networks 950, one or more user devices 909A-909B (collectively referred to as "user devices 909"), one or more provider devices 904A-904D (collectively referred to as "provider devices 904"), and one or more sources 906A-906E (collectively referred to as "sources 906"). The user device 909 can be used to interact with one or more users 903A-903B (collectively referred to as "users 903"), and the provider device 904 can be used to interact with one or more service providers 905A-905D (collectively referred to as "service providers 905"). This example is provided for illustrative purposes and should not be construed as limiting. It can be appreciated that exemplary environment 900 can include any number of devices, users, providers, and / or any number of servers 920 .
[0070] For illustrative purposes, service provider 905 can be a company, an individual, or any type of entity that can provide services or products to user 903, which can also be a company, an individual, or other entity. For illustrative purposes, service provider 905 and user 903 can be generally and individually referred to as "users" herein. In some configurations, a data object can include one or more calendar events. Context data can be analyzed to determine one or more calendar events that can be dynamically updated.
[0071] User devices 909, provider devices 904, servers 920, and / or any other computers configured with features disclosed herein can be interconnected via one or more local area networks and / or wide area networks, such as network 950. In addition, the computing devices can communicate using any technology, such as Bluetooth, WIFI, WIFIDIRECT, NFC, or any other suitable technology, which may include optical, wired, or wireless technologies. It should be appreciated that more types of connections than those described herein may be used.
[0072] The user device 909 or the provider device 904 (collectively referred to as a "computing device") can operate as a standalone device, or such a device can operate in conjunction with other computers such as one or more servers 920. An individual computing device can be in the form of a personal computer, a mobile phone, a tablet computer, a wearable computer (including a head mounted display (HMD) or a watch), or any other computing device having components for interacting with one or more users and / or remote computers. In an illustrative example, the user device 909 and the provider device 904 can include a local memory 980, also referred to herein as a "computer-readable storage medium" or a "non-transitory computer-readable storage medium," which is configured to store data, such as the client module 902 and other contextual data described herein.
[0073] Server 920 can be in the form of a personal computer, a server farm, a large-scale system, or any other computing system having components for processing, coordinating, collecting, storing, and / or transmitting data between one or more computing devices. In one illustrative example, server 920 can include local memory 980, also referred to herein as a "computer-readable storage medium," which is configured to store data, such as server module 919 and other data described herein. Server 920 can also include components and services for providing, receiving, and processing calendar data and performing one or more aspects of the techniques described herein, such as in Fig. 9 As will be described in more detail herein, any suitable module may operate in conjunction with other modules or devices to implement various aspects of the technology disclosed herein.
[0074] In some configurations, an application programming interface (API) discloses an interface through which an operating system and applications executing on the computing device can enable the functionality disclosed herein. Using this data interface and other interfaces, the operating system and applications can transmit and process context data and modify scheduling data as described herein.
[0075] The scheduling data 939 can define an appointment for the user 903 and the provider 905. The scheduling data 939 can define a start time and an end time. If the appointment is associated with a geographic location, global coordinates, and other information identifying the location, the scheduling data 939 can also include location data. The scheduling data 939 can define a single appointment or a series of appointments. In addition, the scheduling data 939 can include communication information, such as a phone number, an IM address, a URL, or other information for facilitating voice or video conferencing. The scheduling data 939 can also include a text description of the appointment and other data indicating the subject, service category, user 903 and / or provider 905. The scheduling data 939 can be stored on a server 920, a user device 909, a provider device 904, or any suitable computing device, which may include a Web-based service.
[0076] Attendee data 932 can include a list of the number of attendees scheduled for the meeting. Attendee data 932 can also be based on arrangement data 939. Document data 933 can include documents shared during the meeting. Status data 934 can define the availability of one or more parties. For example, status data 934 can indicate whether a party is unavailable, available, or unavailable before a specific date. Status data 934 can also define availability levels. These examples are provided for illustrative purposes and should not be interpreted as limiting. It can be appreciated that status data 934 includes data forms indicating the availability of a company, an individual, or a group of individuals. Preference data 929 can include user-defined preferences or provider-defined preferences.
[0077] In order to implement various aspects of the technology disclosed herein, Fig. 9 One or more computing devices of the present invention can be configured to generate data defining one or more live updates in response to detecting the presence of a condition. In some configurations, an implementation can include receiving scheduling data defining a calendar event. In addition, the implementation can include obtaining context data from multiple sources. As described in more detail herein, the context data can include additional scheduling data, live meeting dates, meeting participants, and / or other data related to the calendar event.
[0078] One or more computing devices can be configured to identify patterns of contextual data indicating the presence of conditions that affect one or more aspects of a calendar event. Conditions can include the introduction or modification of a calendar event and / or other events or data that can affect aspects of a calendar event.
[0079] Fig.10 1 is a diagram illustrating an exemplary environment 1000 in which the system 900 is operable to generate calendar information for an interactive session 104 and to save and edit content. In this example, the interactive session 104 is implemented between a plurality of client computing devices 106(1) to 106(N) (where N is a positive integer having a value of two or greater). The client computing devices 106(1) to 106(N) enable users to participate in the interactive session 104. In this example, the interactive session 104 is hosted by the system 102 via one or more networks 108. That is, the system 102 is capable of providing services that enable users of the client computing devices 106(1) to 106(N) to participate in the interactive session 104 (e.g., via live viewing and / or recorded viewing). Thus, "participants" of the interactive session 104 can include users and / or client computing devices (e.g., multiple users can participate in an interactive session in a conference room via use of a single client computing device), each of which is capable of communicating with other participants. Alternatively, interactive session 104 can be hosted by one of client computing devices 106(1)-106(N) utilizing peer-to-peer technology.
[0080] In the examples described herein, client computing devices 106(1) to 106(N) participating in an interactive session 104 are configured to receive interactive data and present the interactive data for display on a user interface of a display screen. The interactive data can include a collection of various instances or streams of content. For example, an individual stream of content can include media data associated with a video feed (e.g., audio and visual data capturing the appearance and voice of a user participating in the interactive session). Another example of an individual stream of content can include media data having a file displayed on a display screen and audio data capturing the user's voice. Thus, the various streams of content within the teleconference data enable facilitating teleconferencing between a group of people and sharing of content within the group of people.
[0081] System 102 includes device(s) 1010. Device(s) 1010 and / or other components of system 102 can include distributed computing resources that communicate with each other and / or with client computing devices 106(1)-106(N) via one or more networks 108. In some examples, system 102 may be a stand-alone system tasked with managing aspects of one or more interactive sessions, such as interactive session 104. As examples, system 102 may be managed by an entity such as Slack, WEBEX, GOTOMEETING, GOOGLE HANGOUTS, etc.
[0082] The network(s) 108 may include, for example, a public network such as the Internet, a private network such as an institutional and / or personal intranet, or some combination of private and public networks. The network(s) 108 may also include any type of wired and / or wireless network, including, but not limited to, a local area network ("LAN"), a wide area network ("WAN"), a satellite network, a cable network, a Wi-Fi network, a WiMax network, a mobile communication network (e.g., 3G, 4G, etc.), or any combination thereof. The network(s) 108 may utilize communication protocols, including packet-based and / or datagram-based protocols, such as the Internet Protocol ("IP"), the Transmission Control Protocol ("TCP"), the User Datagram Protocol ("UDP"), or other types of protocols. In addition, the network(s) 108 may also include a plurality of devices that facilitate network communications and / or form a hardware foundation for the network, such as switches, routers, gateways, access points, firewalls, base stations, repeaters, backbone devices, etc.
[0083] In some examples, network(s) 108 may also include devices capable of connecting to wireless networks, such as wireless access points (“WAPs”). Examples support connecting via WAPs that send and receive data over various electromagnetic frequencies (e.g., radio frequencies), including WAPs that support the Institute of Electrical and Electronics Engineers (“IEEE”) 802.11 standards (e.g., 802.11g, 802.11n, etc.), as well as other standards.
[0084] In various examples, (one or more) devices 1010 may include one or more computing devices that operate in a cluster or other grouping configuration to share resources, balance loads, improve performance, provide failover support or redundancy, or for other purposes. For example, (one or more) devices 1010 may belong to various types of devices, such as conventional server type devices, desktop computer type devices, and / or mobile type devices. Therefore, although illustrated as a single type of device - a server type device - (one or more) devices 1010 may include multiple device types and are not limited to a particular type of device. (One or more) devices 1010 may represent but are not limited to a server computer, a desktop computer, a network server computer, a personal computer, a mobile computer, a laptop computer, a tablet computer, or any other type of computing device.
[0085] The client computing device (e.g., one of the client computing device(s) 106(1)-106(N)), each of which is also referred to herein as a "data processing system") can be of a variety of types of devices, which can be the same as or different from device(s) 1010, such as a conventional client type device, a desktop computer type device, a mobile type device, a dedicated type device, an embedded type device, and / or a wearable type device. Thus, the client computing device can include, but is not limited to, a desktop computer, a game console and / or a gaming device, a tablet computer, a personal data assistant ("PDA"), a mobile phone / tablet hybrid device, a laptop computer, a telecommunications device, a computer navigation type client computing device such as a satellite-based navigation system including a global positioning system ("GPS") device, a wearable device, a virtual reality ("VR") device, an augmented reality (AR) device, an implanted computing device, an automotive computer, a network-enabled television, a thin client, a terminal, an Internet of Things ("IoT") device, a workstation, a media player, a personal video recorder ("PVR"), a set-top box, a camera, an integrated component (e.g., a peripheral device) for inclusion in a computing device, an appliance, or any other kind of computing device. Furthermore, the client computing device may include a combination of the earlier listed examples of client computing devices, such as, for example, a desktop computer type device or a mobile type device combined with a wearable device, etc.
[0086] The various classes and device types of client computing devices 106(1) to 106(N) can represent any type of computing device having one or more processing units 112 operably connected to a computer-readable medium 114 via a bus 116, which in some cases can include one or more of a system bus, a data bus, an address bus, a PCI bus, a Mini-PCI bus, and any type of local, peripheral and / or independent bus.
[0087] The executable instructions stored on the computer-readable medium 114 may include, for example, an operating system 118 , a client module 120 , a profile module 122 , and other modules, programs, or applications that can be loaded and executed by the processing unit(s) 112 .
[0088] The client computing device(s) 106(1)-106(N) may also include one or more interfaces 124 to enable communications between the client computing device(s) 106(1)-106(N) and other network devices (such as device(s) 1010) over the network(s) 108. Such network interface(s) 124 may include one or more network interface controllers (NICs) or other types of transceiver devices to send and receive communications and / or data over the network. In addition, the client computing device 106(1) may include an input / output ("I / O") interface 126 to enable communications with input / output devices, such as user input devices including peripheral input devices (e.g., game controllers, keyboards, mice, pens, voice input devices such as microphones, touch input devices, gesture input devices, etc.), and / or output devices including peripheral output devices (e.g., displays, printers, audio speakers, tactile output devices, etc.). Fig.10 The client computing device 106 (N) is illustrated as being connected in some manner to a display device (eg, display screen 128 ) that is capable of displaying an interactive timeline for the interactive session 104 , as shown.
[0089] exist Fig.10In the exemplary environment 1000 of FIG. 1 , client computing devices 106(1)-106(N) can use their respective client modules 120 to connect to each other and / or to other external devices(s) in order to participate in an interactive session 104. For example, a first user can utilize a client computing device 106(1) to communicate with a second user of another client computing device 106(2). When executing the client modules 120, the users can share data, which can result in the client computing device 106(1) connecting to the system 102 and / or other client computing devices 106(2)-106(N) via the network(s) 108.
[0090] The client computing device(s) 106(1)-106(N) may use their respective profile modules 122 to generate a participant profile and provide the participant profile to other client computing devices and / or the system's device(s) 1010. The participant profile may include one or more identities of a user or a group of users (e.g., name, unique identifier (“ID”), etc.), user data (such as personal data), machine data (such as location (e.g., IP address, room in a building, etc.), and technical capabilities, etc. The participant profile may be used to register participants for an interactive session.
[0091] As in Fig.10 As shown in , the device(s) 1010 of the system 102 includes a server module 1030 and an output module 132. The server module 1030 is configured to receive media streams 134(1) to 134(3) from individual client computing devices, such as client computing devices 106(1) to 106(3). As described above, the media streams can include video feeds (e.g., audio and visual data associated with a user), audio data to be output (e.g., an audio-only experience that does not transmit the user's video data), text data (e.g., a text message), file data, and / or screen sharing data (e.g., a document, a slideshow, an image, a video displayed on a display screen, etc.), etc. Thus, the server module 1030 is configured to receive a collection of various media streams 134(1) to 134(3) (the collection is referred to herein as media data 134). In some scenarios, not all client computing devices participating in the interactive session 104 provide media streams. For example, the client computing device may be a consuming or “listening” device only, such that it only receives content associated with the interactive session 104 , but does not provide any content to the interactive session 104 .
[0092] The server module 1030 is configured to generate session data 136 based on the media data 134. In various examples, the server module 1030 can select aspects of the media data 134 to be shared with the participating client computing devices 106(1) to 106(N). Accordingly, the server module 1030 is configured to pass the session data 136 to the output module 132, and the output module 132 can transmit the teleconference data to the client computing devices 106(1) to 106(3). As shown, the output module 132 transmits the teleconference data 138 to the client computing device 106(1), transmits the teleconference data 140 to the client computing device 106(2), and transmits the interactive data 142 to the client computing device 106(3). The interactive data transmitted to the client computing devices can be the same or different (e.g., the positioning of the content stream within the user interface can be different from one device to the next). The output module 132 is also configured to record the interactive session (eg, a version of the interactive data) and maintain a record of the interactive session 144 .
[0093] Device(s) 1010 can also include a calendar module 146 , and in various examples, calendar module 146 is configured to manage schedule data 148 in session data 136 and / or events related to interactive session 144 .
[0094] A client computing device, such as client computing device 106(N), can provide a request 150 to view a recording of an interactive session 104. In response, output module 132 can provide interactive data and calendar data 152 to be displayed on display screen 128 associated with client computing device 106(N). The teleconference data transmitted to client computing device 106(N) includes previously recorded content of interactive session 104. As further described herein, a user of client computing device 106(N) can provide input(s) to add supplemental recorded content to interactive session 104 and / or interactive timeline, and data 154 associated with the supplemental recorded content can be transmitted from client computing device 106(N) to system 102 so that the recording of interactive session 104 and interactive timeline can be updated with the supplemental recorded content. This enables other participants (e.g., users of client computing devices 106(1)-106(3)) to consume or view the supplemental recorded content after live viewing of the interactive session has ended. An improved human-computer interface ("HCI") is disclosed herein for interacting with a calendar and a representation of calendar content. In some embodiments, the calendar information may be presented in conjunction with a communication platform such as a video conferencing platform. Such a system may be referred to as an interactive calendar and scheduling system.
[0095] Fig.11 A diagram showing example components of an example device 1100 configured to present and update calendar data is illustrated. Device 1100 may represent one of device(s) 106 or, in other examples, may represent a client computing device (e.g., client computing device 106(1)), where device 1100 includes one or more processing units 1118, computer-readable media 1104, and communication interface(s) 1106. The components of device 1100 are operably connected, for example, via a bus, which may include one or more of a system bus, a data bus, an address bus, a PCI bus, a Mini-PCI bus, and any variety of local, peripheral, and / or independent buses.
[0096] As used herein, processing unit(s) (such as processing unit(s) 1118) may represent, for example, a CPU-type processing unit, a GPU-type processing unit, a field programmable gate array ("FPGA"), another type of digital signal processor ("DSP"), or other hardware logic components that may be driven by a CPU in some cases. For example, but not limited to, illustrative types of hardware logic components that may be used include application specific integrated circuits ("ASICs"), application specific standard products ("ASSPs"), systems on chips ("SOCs"), complex programmable logic devices ("CPLDs"), and the like.
[0097] As used herein, a computer-readable medium (such as computer-readable medium 1104) can store instructions that can be executed by (one or more) processing units. The computer-readable medium can also store instructions that can be executed by an external processing unit (such as by an external CPU, an external GPU) and / or by an external accelerator (such as an FPGA type accelerator, a DSP type accelerator, or any other internal or external accelerator). In various examples, at least one CPU, GPU, and / or accelerator is incorporated into the computing device, while in some examples, one or more of the CPU, GPU, and / or accelerator is external to the computing device.
[0098] Computer readable media may include computer storage media and / or communication media. Computer storage media may include one or more of volatile memory, non-volatile memory and / or other persistent and / or secondary computer storage media, removable and non-removable computer storage media implemented in any method or technology for storing information such as computer readable instructions, data structures, program modules or other data. Thus, computer storage media includes media in tangible and / or physical form contained within a device and / or as a hardware component either as part of the device or external to the device, including, but not limited to, random access memory (“RAM”), static random access memory (“SRAM”), dynamic random access memory (“DRAM”), phase change memory (“PCM”), read-only memory (“ROM”), erasable programmable read-only memory (“EPROM”), electrically erasable programmable read-only memory (“EEPROM”), flash memory, compact disk read-only memory (“CD-ROM”), digital versatile disk (“DVD”), optical cards or other optical storage media, cassettes, magnetic tape, magnetic disk storage devices, magnetic cards or other magnetic storage devices or media, solid-state memory devices, storage arrays, network attached storage devices, storage area networks, hosted computer storage devices, or any other storage memory, storage devices, and / or storage media that can be used to store and maintain information for access by a computing device.
[0099] In contrast to computer storage media, communication media may embody computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism. As defined herein, computer storage media does not include communication media. That is, computer storage media does not include communication media consisting only of a modulated data signal, a carrier wave, or a propagated signal itself.
[0100] The communication interface(s) 1106 may represent, for example, a network interface controller ("NIC") or other type of transceiver device to send and receive communications over a network.
[0101] In the illustrated example, computer-readable medium 1104 includes data storage 1108. In some examples, data storage 1108 includes a data storage device, such as a database, a data warehouse, or other type of structured or unstructured data storage. In some examples, data storage 1108 includes a corpus and / or a relational database having one or more tables, indexes, stored processes, etc. to enable data access, including one or more of the following: Hypertext Markup Language ("HTML") tables, Source Description Framework ("RDF") tables, Web Ontology Language ("OWL") tables, and / or Extensible Markup Language ("XML") tables.
[0102] The data store 1108 can store data for the operation of processes, applications, components, and / or modules stored in the computer-readable medium 1104 and / or executed by the processing unit(s) 1118 and / or accelerator(s). For example, in some examples, the data store 1108 can store session data 1110 (e.g., session data 136), profile data 1181 (e.g., associated with participant profiles), and / or other data. The session data 1110 can include the total number of participants (e.g., users and / or client computing devices) in the interactive session 104, as well as the activities that occurred in the interactive session 104, and / or other data related to when and how the interactive session 104 was conducted or hosted. The data store 1108 can also include record(s) 1114 of the interactive session(s).
[0103] Alternatively, some or all of the above data can be stored on a separate memory 1181 on one or more processing units 1118, such as a CPU-type processor, a GPU-type processor, an FPGA-type accelerator, a DSP-type accelerator, and / or a memory on another accelerator. In this example, the computer-readable medium 1104 also includes an operating system 1184 and (one or more) application programming interfaces 1186, which are configured to expose the functions and data of the device 1100 to other devices. In addition, the computer-readable medium 1104 includes one or more modules, such as a server module 1030, an output module 132, and a calendar module 146, but the number of modules illustrated is only an example, and the number can be larger or smaller. That is, the functions associated with the illustrated modules described in this article can be performed by a smaller number of modules or a larger number of modules on one device, or distributed across multiple devices.
[0104] Fig.12 Various aspects of a system 1200 are illustrated that provide a framework for several exemplary scenarios utilizing the techniques disclosed herein. More specifically, the block diagram of the system 1200 shows an illustrative example of a server 1220 receiving scheduling data 131 defining a scheduled meeting. The server 1220 also stores the scheduling data 131 and preference data 129 defining a plurality of calendar events for a user. The server 1220 also receives context data 650 from a plurality of sources 106A-106E and other sources described herein. To illustrate various aspects of the examples described below, the user device 101 is displaying a user interface (UI) 200 showing a calendar object.
[0105] Fig.131300 according to one embodiment disclosed herein. It should be understood by those of ordinary skill in the art that the operations of the methods disclosed herein are not necessarily presented in any particular order, and that it is possible and contemplated to perform some or all of the operations in (one or more) alternative orders. For ease of description and illustration, the operations have been presented in the order of demonstration. Operations may be added, omitted, performed together, and / or performed simultaneously without departing from the scope of the appended claims.
[0106] It should also be understood that the illustrated method can be terminated at any time and need not be fully executed. Some or all of the operations of the method and / or substantially equivalent operations can be performed by executing computer-readable instructions included on a computer storage medium, as defined herein. The term "computer-readable instructions" and its variants used in the specification and claims are broadly used herein to include routines, applications, application modules, program modules, programs, components, data structures, algorithms, etc. Computer-readable instructions can be implemented on various system configurations, including single-processor or multi-processor systems, minicomputers, mainframe computers, personal computers, handheld computing devices, microprocessor-based programmable consumer electronics, combinations thereof, etc.
[0107] It should therefore be appreciated that the logical operations described herein are implemented as: (1) a sequence of computer-implemented actions or program modules running on a computing system such as those described herein, and / or (2) interconnected machine logic circuits or circuit modules within the computing system. The implementation is a matter of choice depending on the performance and other requirements of the computing system. Thus, the logical operations may be implemented in software, firmware, dedicated digital logic, and any combination thereof.
[0108] In addition, Fig.13 The operations illustrated in the and other figures can be the same as those described above with respect to Figures 1 to 12 The described exemplary presentation GUIs are implemented in association.
[0109] refer to Fig.13, operation 1301 illustrates presenting a representation of a calendar view on a user interface (UI). In an embodiment, the calendar view may indicate one or more calendar days. In addition, the calendar day may include a time span including multiple time slots. Operation 1301 may be followed by operation 1303. Operation 1303 illustrates presenting a representation of a calendar event indicating a scheduled meeting in at least one of the time slots. In an embodiment, the scheduled meeting may be presented without an interactive control for joining the scheduled meeting. Operation 1303 may be followed by operation 1305. Operation 1305 illustrates determining that a start time for the scheduled meeting is within a threshold time. Operation 1305 may be followed by operation 1307. Operation 1307 illustrates updating the presentation to include the interactive control for joining the scheduled meeting in response to determining that the start time for the scheduled meeting is within the threshold time. In an embodiment, the interactive control may include at least an optional area configured to indicate joining the scheduled meeting. Operation 1307 may be followed by operation 1309. Operation 1309 illustrates receiving, via the interactive control, input data indicating activation of the interactive control. Operation 1309 may be followed by operation 1311. Operation 1311 illustrates causing the collaboration application to join the scheduled meeting in response to the input data.
[0110] Fig.14 is a diagram illustrating aspects of a routine 1400 for interacting with a presented environment according to one embodiment disclosed herein. Fig.14 , operation 1401 illustrates presenting a representation of a calendar view on a user interface (UI). In an embodiment, the calendar view may indicate one or more calendar days. The calendar day may also include a time span containing multiple time slots. Operation 1401 may be followed by operation 1403. Operation 1403 illustrates presenting a representation of a scheduled meeting in at least one of the time slots. In an embodiment, the scheduled meeting may be presented without an interactive control for joining the scheduled meeting. Operation 1403 may be followed by operation 1405. Operation 1405 illustrates determining that the start time for the scheduled meeting is within a threshold time. Operation 1405 may be followed by operation 1407. Operation 1407 illustrates converting the representation of the scheduled meeting into a live meeting object within the calendar view in response to determining that the start time for the scheduled meeting is within the threshold time.
[0111] Fig.15 Additional details of an exemplary computer architecture 1500 for a computer are shown, such as in Figure 1-14 Any computing device in the computing device depicted in , which is capable of executing the program components described in this article. Fig.15 The computer architecture 1500 illustrated in the figure illustrates an architecture for a server computer, a mobile phone, a PDA, a smart phone, a desktop computer, a netbook computer, a tablet computer, and / or a laptop computer. The computer architecture 1500 can be used to execute any aspect of the software components presented herein.
[0112] exist Fig.15 The illustrated computer architecture 1500 includes a central processing unit 1502 ("CPU"), a system memory 1504, including random access memory 15015 ("RAM") and read-only memory ("ROM") 1508, and a system bus 1510 that couples the memory 1504 to the CPU 1502. A basic input / output system, including basic routines that facilitate the transfer of information between elements within the computer architecture 1500, such as during startup, is stored in the ROM 1508. The computer architecture 1500 also includes a mass storage device 1512 for storing an operating system 1507, data, such as context data 1550, input data 1551, schedule data 131, calendar events 1567, content data 1569, and one or more application programs (not shown). Fig.15 (depicted in).
[0113] The mass storage device 1512 is connected to the CPU 1502 through a mass storage device controller (not shown) connected to the bus 1510. The mass storage device 1512 and its associated computer readable media provide non-volatile storage for the computer architecture 1500. Although the description of computer readable media contained herein refers to a mass storage device, such as a solid state drive, hard disk, or CD-ROM drive, those skilled in the art will appreciate that the computer readable media can be any available computer storage media or communication media that can be accessed by the computer architecture 1500.
[0114] Communication media includes computer readable instructions, data structures, program modules, or other data in a modulated data signal (such as a carrier wave or other transmission mechanism), and includes any transmission media. The term "modulated data signal" means a signal that changes or sets one or more of its characteristics in a manner that encodes information in the signal. By way of example and not limitation, communication media include wired media such as a wired network or a direct wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.
[0115] By way of example and not limitation, computer storage media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. For example, computer media include, but are not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid-state storage technology, CD-ROM, digital versatile disk ("DVD"), HD-DVD, BLU-RAY or other optical storage devices, cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and can be accessed by the computer architecture 1500. For purposes of the claims, the phrases "computer storage medium", "computer-readable storage medium" and variations thereof do not by themselves include waves, signals and / or other transient and / or intangible communication media.
[0116] According to various configurations, the computer architecture 1500 can operate in a networked environment using logical connections to remote computers through the network 7515 and / or another network (not shown). The computer architecture 1500 can be connected to the network 7515 via a network interface unit 1514 connected to the bus 1510. It should be appreciated that the network interface unit 1514 can also be used to connect to other types of networks and remote computer systems. The computer architecture 1500 can also include an input / output controller 1516 for receiving and processing input from a number of other devices, including a keyboard, a mouse, or an electronic pen (in the case of a computer). Fig.15 Similarly, input / output controller 1516 may provide signals to a display screen, printer, or other type of output device (also not shown). Fig.15 ) provides an output.
[0117] It should be appreciated that when loaded into CPU 1502 and executed, the software components described herein can convert CPU 1502 and the entire computer architecture 1500 from a general-purpose computing system to a special-purpose computing system customized to facilitate the functions presented herein. CPU 1502 can be composed of any number of transistors or other discrete circuit elements, which can present any number of states individually or collectively. More specifically, in response to the executable instructions contained in the software modules disclosed herein, CPU 1502 can operate as a finite state machine. These computer executable instructions can convert CPU 1502 by specifying how CPU 1502 converts between states, thereby converting the transistors or other discrete hardware elements that constitute CPU 1502.
[0118] Encoding the software modules presented herein may also convert the physical structure of the computer-readable medium presented herein. In different implementations of this specification, the specific conversion of the physical structure may depend on various factors. Examples of such factors may include, but are not limited to, the technology used to implement the computer-readable medium, whether the computer-readable medium is characterized as a primary memory or an auxiliary memory, etc. For example, if the computer-readable medium is implemented as a semiconductor-based memory, the software disclosed herein may be encoded on the computer-readable medium by converting the physical state of the semiconductor memory. For example, the software may convert the state of transistors, capacitors, or other discrete circuit elements that constitute the semiconductor memory. The software may also convert the physical state of such components in order to store data thereon.
[0119] As another example, the computer readable medium disclosed in this article can be implemented using magnetic or optical technology. In such an implementation, when the software is encoded therein, the software presented in this article can convert the physical state of the magnetic medium or optical medium. These conversions can include changing the magnetic properties of specific locations in a given magnetic medium. These conversions can also include changing the physical characteristics or characteristics of specific locations in a given optical medium to change the optical properties of those locations. Without departing from the scope and spirit of this specification, other conversions of physical media are possible, and the above examples are provided only to facilitate this discussion.
[0120] In view of the above, it should be appreciated that many types of physical transformations occur in computer architecture 1500 in order to store and execute the software components presented herein. It should also be appreciated that computer architecture 1500 may include other types of computing devices, including handheld computers, embedded computer systems, personal digital assistants, and other types of computing devices known to those skilled in the art. It is also contemplated that computer architecture 1500 may not include Fig.15 All components shown in the Fig.15 Other components not explicitly shown in the drawings or the like may be utilized. Fig.15 A completely different architecture than the one shown in .
[0121] Fig.16 An exemplary distributed computing environment 1600 is depicted that is capable of executing the software components described herein for providing context-aware insights into calendar events. Fig.16 The distributed computing environment 1600 illustrated in FIG. 1 can be used to execute any aspects of the software components presented herein. For example, the distributed computing environment 1600 can be used to execute various aspects of the software components described herein.
[0122] According to various embodiments, the distributed computing environment 1600 includes a computing environment 1602 that operates on, communicates with, or is part of a network 1604. As described above, the network 1604 can be or include a network 1656. The network 1604 can also include various access networks. One or more client devices 1606A-1606N (hereinafter collectively and / or generally referred to as "clients 1606") can communicate via the network 1604 and / or other connections (on the Fig.16 1602). In one illustrated configuration, the client 1606 includes a computing device 1606A, such as a laptop, desktop computer, or other computing device; a tablet or slab computing device ("tablet computing device") 1606B; a mobile computing device 1606C, such as a mobile phone, smart phone, or other mobile computing device; a server computer 1606D; and / or other devices 1606N. It should be understood that any number of clients 1606 can communicate with the computing environment 1602. Figure 1-15 Two exemplary computing architectures are illustrated and described for the client 1606. It should be understood that the illustrated client 1606 and computing architectures illustrated and described herein are exemplary and should not be construed as being limiting in any way.
[0123] In the illustrated configuration, the computing environment 1602 includes an application server 1608, a data storage device 1610, and one or more network interfaces 1612. According to various implementations, the functionality of the application server 1608 can be provided by one or more server computers that execute as part of the network 1604 or communicate with the network 1604. The application server 1608 can host various services, virtual machines, portals, and / or other sources. In the illustrated configuration, the application server 1608 hosts one or more virtual machines 1614 to host applications or other functions. According to various implementations, the virtual machine 1614 hosts one or more applications and / or software modules that are used to provide context-aware insights into calendar events. It should be understood that this configuration is illustrative and should not be interpreted as limiting in any way. The application server 1608 also hosts or provides access to one or more portals, link pages, websites, and / or other information ("Web portals") 1616.
[0124] According to various implementations, the application server 1608 also includes one or more mailbox services 1618 and one or more messaging services 1620. The mailbox service 1618 can include an electronic mail ("email") service. The mailbox service 1618 can also include various personal information management ("PIM") services, including but not limited to: calendar services, contact management services, collaboration services, and / or other services. The messaging service 1620 can include but is not limited to: instant messaging services, chat services, forum services, and / or other communication services.
[0125] The application server 1608 may also include one or more social networking services 1622. The social networking services 1622 can include various social networking services, including but not limited to: services for sharing or posting status updates, instant messages, links, photos, videos, and / or other information; services for commenting on or showing interest in articles, products, blogs, or other sources; and / or other services. In some configurations, the social networking services 1622 are provided by or include the following items: FACEBOOK social networking service, LINKEDIN professional network service, MYSPACE social networking service, FOURSQUARE geographic network service, YAMMER office colleague network service, etc. In other configurations, the social networking services 1622 are provided by other services, sites, and / or providers that may or may not be explicitly referred to as social network providers. For example, some websites allow users to interact with each other via email, chat services, and / or other means in various activities and / or contexts, such as reading published articles, commenting on goods or services, publishing, collaboration, games, etc. Examples of such services include but are not limited to: WINDOWS LIVE service and XBOX LIVE service from Microsoft Corporation of Redmond, Washington. Other services are possible and are considered.
[0126] The social networking service 1622 can also include comment, blog and / or microblogging services. Examples of such services include, but are not limited to: YELP comment service, KUDZU check service, OFFICETALK enterprise microblogging service, TWITTER messaging service, GOOGLE BUZZ service and / or other services. It should be appreciated that the above service list is not exhaustive, and for the sake of brevity, many additional and / or alternative social networking services 1622 are not mentioned here. Therefore, the above configuration is illustrative and should not be interpreted as being limited in any way. According to various implementations, the social networking service 1622 can host one or more applications and / or software modules that are used to provide the functionality described herein for providing context-aware insights into calendar events. For example, any one of the application servers 1608 can transmit or facilitate the functions and features described herein. For example, a social networking application, a mail client, a messaging client, or a browser running on a phone or any other client 1606 can communicate with the network service 1622 and (even if partially) facilitate the above about Figure 1-15 Functionality as described.
[0127] As in Fig.16 As shown in , application server 1608 can also host other services, applications, portals and / or other sources ("other sources") 1624. Other sources 1624 can include, but are not limited to, document sharing, rendering, or any other functionality. Thus, it can be appreciated that computing environment 1602 can provide integration of concepts and technologies disclosed herein, which are provided with various mailboxes, messaging, social networks and / or other services or sources.
[0128] As mentioned above, the computing environment 1602 can include a data store 1610. According to various implementations, the functionality of the data store 1610 is provided by one or more databases operating on or in communication with the network 1604. The functionality of the data store 1610 can also be provided by one or more server computers configured to host data for the computing environment 1602. The data store 1610 can include, host, or provide one or more real or virtual data stores 1626A-1626N (hereinafter collectively and / or generally referred to as "data stores 1626"). The data stores 1626 are configured to host data used or created by the application servers 1608 and / or other data. Although not described herein, the data stores 1626 may be used to store data used or created by the application servers 1608 and / or other data. Fig.16Although not shown in the figure, data storage 1626 can also host or store web documents, word documents, presentation documents, data structures, algorithms for execution by the recommendation engine and / or other data utilized by any application or another module. Various aspects of data storage 1626 can be associated with a service for storing files.
[0129] The computing environment 1602 can communicate with or be accessed by a network interface 1612. The network interface 1612 can include various types of network hardware and software for supporting communications between two or more computing devices, including but not limited to the client 1606 and the application server 1608. It should be appreciated that the network interface 1612 can also be used to connect to other types of networks and / or computer systems.
[0130] It should be understood that the distributed computing environment 1600 described herein can provide any number of virtual computing resources to any aspect of the software elements described herein and / or can be configured to perform other distributed computing functions of any aspect of the software components disclosed herein. According to various implementations of the concepts and technologies disclosed herein, the distributed computing environment 1600 provides the software functions described herein as services to the client 1606. It should be understood that the client 1606 can include real or virtual machines, including but not limited to: server computers, network servers, personal computers, mobile computing devices, smart phones and / or other devices. Therefore, various configurations of the concepts and technologies disclosed herein enable any device configured to access the distributed computing environment 1600 to utilize the functions described herein to provide context-aware insights into calendar events, among other aspects.
[0131] It should be appreciated that the subject matter described above can be implemented as a computer-controlled device, a computer process, a computing system, or as an article such as a computer-readable storage medium. The operations of the exemplary method are illustrated in individual boxes and are summarized with reference to those boxes. The method is illustrated as a logical flow of boxes, each of which can represent one or more operations implemented in hardware, software, or a combination thereof. In the context of software, the operations represent computer-executable instructions stored on one or more computer-readable media, which, when executed by one or more processors, enable one or more processors to perform the operations.
[0132] Typically, computer executable instructions include routines, programs, objects, modules, components, data structures, etc. that perform specific functions or implement specific abstract data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described operations can be performed in any order, combined in any order, subdivided into multiple sub-operations, and / or performed in parallel to implement the described processes. The described processes can be performed by sources associated with one or more devices (such as one or more internal or external CPUs or GPUs) and / or one or more hardware logic (such as a field programmable gate array ("FPGA"), a digital signal processor ("DSP"), or other types of accelerators).
[0133] All methods and processes described above can be embodied in a software code module executed by one or more general-purpose computers or processors, and fully automated via the software code module. The code module can be stored in any type of computer-readable storage medium or other computer storage device, such as those described below. Some or all methods can alternatively be embodied in special-purpose computer hardware, such as described below.
[0134] Any routine description, element or box in the flowchart described in this article and / or depicted in the accompanying drawings should be understood to potentially represent a module, segment or code portion, which includes one or more executable instructions for implementing a specific logical function or element in the routine. Alternative implementations are included within the scope of the examples described in this article, wherein elements or functions can be deleted, or performed in an order different from that shown or discussed, including substantially synchronously or in reverse order, depending on the functions involved, as will be understood by those skilled in the art.
[0135] It should be understood that, unless otherwise specifically stated, conditional language used herein such as "can," "may," "might," or "could" is understood within the context to present that a particular example includes but other examples do not include a particular feature, element, and / or step. Therefore, such conditional language is generally not intended to imply that a particular feature, element, and / or step is in any way necessary for one or more examples, or that one or more examples necessarily include logic for determining, with or without user input or prompting, whether a particular feature, element, and / or step is included or will be performed in any particular example. Unless otherwise specifically stated, connecting language such as the phrase "at least one of X, Y, or Z" should be understood to indicate that an item, term, etc. can be X, Y, or Z, or a combination thereof.
[0136] It should also be appreciated that many changes and modifications may be made to the examples described above, and that the elements of these examples will be understood to be in other acceptable examples. All such modifications and variations are intended to be included within the scope of this disclosure and protected by the following claims.
[0137] Finally, although various configurations have been described in language specific to structural features and / or methodological acts, it should be understood that the subject matter defined in the accompanying descriptions is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as exemplary forms of implementing the claimed subject matter.
[0138] Among many other technical benefits, the techniques herein enable more efficient use of computing resources such as processor cycles, memory, network bandwidth, and power compared to previous solutions that relied on inefficient manual placement of virtual objects in a 3D environment. Other technical benefits not specifically mentioned herein can also be achieved by implementations of the disclosed subject matter.
[0139] Although these techniques have been described in language specific to structural features and / or methodological acts, it should be understood that the appended claims are not necessarily limited to the described features or acts. Rather, the features and acts are described as exemplary implementations of such techniques.
[0140] Example clauses
[0141] The disclosure presented herein encompasses the subject matter set forth in the following exemplary clauses.
[0142] Exemplary clause A, a system comprising:
[0143] one or more data processing units; and
[0144] A computer readable medium having encoded thereon computer executable instructions for causing the one or more data processing units to:
[0145] presenting a representation of a calendar view on a user interface (UI), the calendar view indicating one or more calendar days, the calendar day comprising a time span including a plurality of time slots;
[0146] presenting a representation of a calendar event indicative of a scheduled meeting in at least one of the time slots, wherein the scheduled meeting is presented without an interactive control for joining the scheduled meeting;
[0147] determining that a start time for the scheduled meeting is within a threshold time;
[0148] In response to determining that the start time for the scheduled meeting is within the threshold time, updating the presentation to include the interactive control for joining the scheduled meeting, the interactive control having at least a control configured to indicate a desired start time.
[0149] an optional area to join said scheduled meeting;
[0150] receiving, via the interactive control, input data indicative of activation of the interactive control; and
[0151] The collaboration application is caused to join the scheduled meeting in response to the input data.
[0152] Example clause B, the system of Example clause A, wherein the instructions further cause the one or more data processing units to:
[0153] In response to determining that the start time for the scheduled meeting is within the threshold time, updating the presented scheduled meeting to visually indicate that the scheduled meeting is within the threshold time.
[0154] Example clause C. The system of any one of Example clauses A to B, wherein the instructions further cause the one or more data processing units to:
[0155] Determining that the scheduled meeting is no longer active; and
[0156] In response to determining that the scheduled meeting is no longer active, updating the presentation on the UI to remove the interactive control for joining the scheduled meeting.
[0157] Example clause D. The system of any one of Example clauses A to C, wherein the instructions further cause the one or more data processing units to:
[0158] Determining that the scheduled meeting is no longer active; and
[0159] In response to determining that the scheduled meeting is no longer active, the presentation is updated to visually indicate that the scheduled meeting is no longer active.
[0160] Exemplary clause E. The system of any one of Exemplary clauses A to D, wherein the instructions further cause the one or more data processing units to:
[0161] In response to determining that the start time for the scheduled meeting is within the threshold time, the presented scheduled meeting is updated to visually indicate one or more participants who have joined the scheduled meeting.
[0162] Exemplary clause F. The system of any one of Exemplary clauses A to E, wherein the instructions further cause the one or more data processing units to:
[0163] The presented scheduled meeting is updated to visually indicate a live image of the scheduled meeting in response to determining that the start time for the scheduled meeting is within the threshold time.
[0164] Exemplary clause G. The system of any one of Exemplary clauses A to F, wherein the instructions further cause the one or more data processing units to:
[0165] In response to determining that the start time for the scheduled meeting is within the threshold time, updating the presented scheduled meeting to include a preview icon configured to initiate a preview of a recent message associated with the scheduled meeting.
[0166] Exemplary clause H. The system of any one of Exemplary clauses A to G, wherein the instructions further cause the one or more data processing units to:
[0167] In response to determining that the start time for the scheduled meeting is within the threshold time, updating the presented scheduled meeting to include a file icon configured to indicate that a new file associated with the scheduled meeting has been added.
[0168] Exemplary clause I. The system of any one of Exemplary clauses A to H, wherein the instructions further cause the one or more data processing units to:
[0169] In response to determining that the start time for the scheduled meeting is within the threshold time, updating the presented scheduled meeting to include a note icon configured to indicate that a new note associated with the scheduled meeting has been added.
[0170] Although exemplary clauses A to I are described above with respect to a system, it will be appreciated that in the context of the present disclosure, the subject matter of exemplary clauses A to I can additionally or alternatively be implemented by a method or an apparatus.
[0171] Exemplary clause J, a method to be performed by a data processing system, the method comprising:
[0172] presenting a representation of a calendar view on a user interface (UI), the calendar view indicating one or more calendar days, the calendar day comprising a time span including a plurality of time slots;
[0173] presenting a representation of a scheduled meeting in at least one of the time slots, wherein the scheduled meeting is presented without an interactive control for joining the scheduled meeting;
[0174] determining that a start time for the scheduled meeting is within a threshold time;
[0175] responsive to determining that the start time for the scheduled meeting is within the threshold time, updating the presented scheduled meeting on the UI to include the interactive control for joining the scheduled meeting, the interactive control having at least a selectable region configured to indicate a desire to join the scheduled meeting;
[0176] receiving, via the interactive control, input data indicative of a selection of the interactive control; and
[0177] The collaboration application is caused to join the scheduled meeting in response to the input data.
[0178] Exemplary clause K, the method of Exemplary clause J, further comprising:
[0179] In response to determining that the start time for the scheduled meeting is within the threshold time, updating the presented scheduled meeting to include a whiteboard icon configured to indicate that a new whiteboard associated with the scheduled meeting has been added.
[0180] Exemplary clause L. The method of any one of Exemplary clauses I to K, further comprising:
[0181] In response to determining that the start time for the scheduled meeting is within the threshold time, updating the presented scheduled meeting to include a chat icon configured to indicate that recent chat activity associated with the scheduled meeting is available.
[0182] Exemplary Clause M, the method of any one of Exemplary Clauses I to L, further comprising: updating the presented scheduled meeting to include a share icon, wherein the share icon is configured to cause the scheduled meeting to be forwarded to selected participants when the share icon is selected.
[0183] Exemplary clause N. The method of any one of Exemplary clauses I to M, further comprising:
[0184] In response to determining that the start time for the scheduled meeting is within the threshold time, updating the presented scheduled meeting to include a recording icon configured to indicate that a recording associated with the scheduled meeting is available for viewing.
[0185] Exemplary clause O. The method of any one of Exemplary clauses I to N, further comprising:
[0186] Determining that the scheduled meeting is no longer active; and
[0187] In response to determining that the scheduled meeting is no longer active, updating the presented scheduled meeting on the UI to remove the interactive control for joining the scheduled meeting.
[0188] Exemplary clause P. The method of any one of Exemplary clauses I to O, further comprising:
[0189] In response to determining that the scheduled meeting is no longer active, the presented scheduled meeting is updated to include a recording icon configured to indicate that a recording associated with the scheduled meeting is available for viewing.
[0190] Although exemplary clauses J to P are described above with respect to methods, it may be appreciated that in the context of the present disclosure the subject matter of exemplary clauses J to P may additionally or alternatively be implemented by a system or apparatus.
[0191] Exemplary clause Q, a system comprising:
[0192] means for presenting, on a user interface (UI), a representation of a calendar view indicating one or more calendar days, the calendar day comprising a time span including a plurality of time slots;
[0193] means for presenting a representation of a scheduled meeting in at least one of the time slots, wherein the scheduled meeting is presented without interactive controls for joining the scheduled meeting;
[0194] means for determining that a start time for the scheduled meeting satisfies one or more criteria;
[0195] responsive to determining that the start time for the scheduled meeting satisfies the one or more criteria, means for updating the presentation on the UI to include the interactive control for joining the scheduled meeting, the interactive control having at least a selectable area configured to indicate a selectable area to be used to join the scheduled meeting;
[0196] means for receiving, via the interactive control, input data indicative of activation of the interactive control; and
[0197] Responsive to the input data, means for causing a collaboration application to join the scheduled meeting.
[0198] Example clause R, the system of example clause Q, further comprising:
[0199] In response to determining that the start time for the scheduled meeting satisfies the one or more criteria, means for updating the presented scheduled meeting to visually indicate an elapsed time for the scheduled meeting.
[0200] Exemplary clause S, the system of any of Exemplary clauses Q to R, further comprising:
[0201] In response to determining that the start time for the scheduled meeting satisfies the one or more criteria, a unit for updating the presented scheduled meeting to visually indicate that the scheduled meeting is within the threshold time.
[0202] Exemplary clause T, the system of any one of Exemplary clauses Q to S, further comprising:
[0203] means for determining that the scheduled meeting is no longer active; and
[0204] In response to determining that the scheduled meeting is no longer active, means for updating the presented scheduled meeting on the UI to remove the interactive control for joining the scheduled meeting.
[0205] Although exemplary clauses Q to T are described above with respect to a system, it will be appreciated that in the context of the present disclosure, the subject matter of exemplary clauses Q to T may additionally or alternatively be implemented by a method or via an apparatus.
[0206] The disclosure presented herein includes the subject matter set forth in the following exemplary clauses.
[0207] Exemplary clause AA, a system comprising:
[0208] one or more data processing units; and
[0209] A computer readable medium having encoded thereon computer executable instructions for causing the one or more data processing units to:
[0210] presenting a representation of a calendar view on a user interface (UI), the calendar view indicating one or more calendar days, the calendar day comprising a time span including a plurality of time slots;
[0211] presenting a representation of a scheduled meeting in at least one of the time slots, wherein the scheduled meeting is presented without an interactive control for joining the scheduled meeting;
[0212] determining that a start time for the scheduled meeting is within a threshold time; and
[0213] The representation of the scheduled meeting is converted to a live meeting object within the calendar view in response to determining that the start time for the scheduled meeting is within the threshold time.
[0214] Exemplary clause BB, the system of Exemplary clause AA, wherein the instructions further cause the one or more data processing units to:
[0215] The live conference object is updated to include a control for joining the scheduled conference, the control having at least a selectable region configured to indicate that the scheduled conference is to be joined.
[0216] Exemplary clause CC, the system of any one of Exemplary clauses AA to Exemplary clauses BB, wherein the instructions further cause the one or more data processing units to:
[0217] In response to determining that the start time for the scheduled meeting is within the threshold time, the live meeting object is updated to visually indicate that the scheduled meeting is within the threshold time.
[0218] Example clause DD, the system of any one of example clauses AA to CC, wherein the instructions further cause the one or more data processing units to:
[0219] Determining that the scheduled meeting is no longer active; and
[0220] The live conference object is updated to remove the interactive controls for joining the scheduled conference in response to determining that the scheduled conference is no longer active.
[0221] Example clause EE, the system of any one of example clauses AA to DD, wherein the instructions further cause the one or more data processing units to:
[0222] Determining that the scheduled meeting is no longer active; and
[0223] In response to determining that the scheduled meeting is no longer active, the live meeting object is updated to visually indicate that the scheduled meeting is no longer active.
[0224] Example clause FF, the system of any one of example clauses AA to EE, wherein the instructions further cause the one or more data processing units to:
[0225] In response to determining that the start time for the scheduled meeting is within the threshold time, the live meeting object is updated to indicate one or more participants that have joined the scheduled meeting.
[0226] Example clause GG, the system of any of example clauses AA to FF, wherein the instructions further cause the one or more data processing units to:
[0227] The live conference object is updated to present a video image of the scheduled meeting in response to determining that the start time for the scheduled meeting is within the threshold time.
[0228] Exemplary clause HH, the system of any of Exemplary clauses AA to GG, wherein the instructions further cause the one or more data processing units to:
[0229] In response to determining that the start time for the scheduled meeting is within the threshold time, the live meeting object is updated to include a preview control configured to initiate a preview of a recent message associated with the scheduled meeting.
[0230] Exemplary clause II. The system of any one of Exemplary clauses AA to HH, wherein the instructions further cause the one or more data processing units to:
[0231] receiving input data indicative of a change in perspective of the representation; and
[0232] A zoom window is automatically repositioned in response to the change in viewing angle to maintain a view of the portion of the representation.
[0233] Although exemplary clauses AA to II are described above with respect to systems, it will be appreciated that in the context of the present disclosure, the subject matter of exemplary clauses AA to II may additionally or alternatively be implemented by methods or apparatuses.
[0234] Exemplary clause JJ, a method performed by a data processing system, the method comprising:
[0235] presenting a representation of a calendar view on a user interface (UI), the calendar view indicating one or more calendar days, the calendar day comprising a time span including a plurality of time slots;
[0236] presenting a representation of a scheduled meeting in at least one of the time slots;
[0237] determining that a start time for the scheduled meeting satisfies one or more criteria;
[0238] converting the representation of the scheduled meeting to a live meeting object within the calendar view in response to determining that the start time for the scheduled meeting satisfies the one or more criteria, wherein the live meeting object includes a control for joining the scheduled meeting;
[0239] receiving, via the control, input data indicative of activation of the control; and
[0240] The collaboration application is caused to join the scheduled meeting in response to the input data.
[0241] Exemplary Clause KK, the method of Exemplary Clause JJ also includes:
[0242] In response to determining that the start time for the scheduled meeting satisfies the one or more criteria, the live meeting object is updated to include a whiteboard icon configured to indicate that a new whiteboard associated with the scheduled meeting has been added.
[0243] Exemplary clause LL, the method of any of Exemplary clauses II to KK, further comprising:
[0244] In response to determining that the start time for the scheduled meeting satisfies the one or more criteria, the live meeting object is updated to include a chat icon configured to indicate that a most recent chat associated with the scheduled meeting is actively available.
[0245] Exemplary clause MM, the method of any one of Exemplary clauses II to LL, further comprising: updating the live conference object to include a share icon, the share icon being configured to cause the scheduled conference to be forwarded to selected participants when selected.
[0246] Exemplary clause NN, the method of any one of Exemplary clauses II to MM, further comprising:
[0247] In response to determining that the start time for the scheduled meeting satisfies the one or more criteria, the live meeting object is updated to include a recording icon configured to indicate that a recording associated with the scheduled meeting is available for viewing.
[0248] Exemplary clause OO, the method of any one of exemplary clauses II to NN, further comprising:
[0249] Determining that the scheduled meeting is no longer active; and
[0250] The live conference object is updated to remove the control for joining the scheduled conference in response to determining that the scheduled conference is no longer active.
[0251] Exemplary clause PP, the method of any of Exemplary clauses II to NN, further comprising:
[0252] In response to determining that the start time for the scheduled meeting satisfies one or more criteria, the live meeting object is updated to include a note control configured to indicate that a new note associated with the scheduled meeting has been added.
[0253] Although exemplary clauses JJ to PP are described above with respect to methods, it will be appreciated that in the context of the present disclosure, the subject matter of exemplary clauses JJ to PP may additionally or alternatively be implemented by a system or an apparatus.
[0254] Exemplary clause QQ, a system comprising:
[0255] means for presenting, on a user interface (UI), a representation of a calendar view indicating one or more calendar days, the calendar day comprising a time span including a plurality of time slots;
[0256] means for presenting a representation of a scheduled meeting in at least one of said time slots;
[0257] means for determining that a start time for the scheduled meeting is within a threshold time;
[0258] means for converting the representation of the scheduled meeting into a live meeting object within the calendar view, wherein the live meeting object includes a control for joining the scheduled meeting, in response to determining that the start time for the scheduled meeting is within the threshold time;
[0259] means for receiving, via the control, input data indicative of a selection of the control; and
[0260] Responsive to the input data, means for causing the collaboration application to join the scheduled meeting.
[0261] The system of Exemplary Clause RR, Exemplary Clause QQ, further comprising:
[0262] In response to determining that the start time for the scheduled meeting is within a threshold time, means for updating the live meeting object to visually indicate an elapsed time for the scheduled meeting.
[0263] Example clause SS, the system of any one of example clauses QQ to RR, further comprising:
[0264] In response to determining that the start time for the scheduled meeting is within the threshold time, means for updating the live meeting object to visually indicate that the scheduled meeting is within the threshold time.
[0265] Exemplary clause TT, the system of any one of Exemplary clauses QQ to SS, further comprising:
[0266] means for determining that the scheduled meeting is no longer active; and
[0267] In response to determining that the scheduled meeting is no longer active, means for updating the live conference object to remove the control for joining the scheduled meeting.
[0268] Although exemplary clauses QQ to TT are described above with respect to a system, it will be appreciated that in the context of the present disclosure, the subject matter of exemplary clauses QQ to TT may additionally or alternatively be implemented by a method or via an apparatus.
Claims
1. A system comprising: one or more data processing units; as well as A computer-readable medium having encoded thereon computer-executable instructions for causing the one or more data processing units to: presenting a representation of a calendar view on a user interface (UI), the calendar view indicating one or more calendar days, the calendar day comprising a time span including a plurality of consecutive time slots; presenting, within the calendar view including the time span including the plurality of consecutive time slots, a representation of a scheduled meeting in at least one of the consecutive time slots, wherein the scheduled meeting is presented without an icon or button operable to provide an interactive control for joining the scheduled meeting; The meeting to finalize said arrangements has taken place; as well as In response to determining that the scheduled meeting has begun, the representation of the scheduled meeting is converted into a live meeting object and the representation of the scheduled meeting is replaced within the calendar view with the converted live meeting object, the live meeting object presenting live video or audio output of the scheduled meeting.
2. The system according to claim 1, wherein: The instructions further cause the one or more data processing units to: The live conference object is updated to include a control for joining the scheduled conference, the control having at least a selectable region configured to indicate that the scheduled conference is to be joined.
3. The system according to claim 2, wherein: The instructions further cause the one or more data processing units to: Determining that the scheduled meeting is no longer active; and In response to determining that the scheduled meeting is no longer active, updating the live conference object to remove the control for joining the scheduled meeting.
4. The system according to claim 1, wherein: The instructions further cause the one or more data processing units to: In response to determining that the start time of the scheduled meeting is within a threshold time, updating the live meeting object to visually indicate that the scheduled meeting is within the threshold time.
5. The system according to claim 4, wherein: The instructions further cause the one or more data processing units to: Determining that the scheduled meeting is no longer active; and In response to determining that the scheduled meeting is no longer active, updating the live conference object to visually indicate that the scheduled meeting is no longer active.
6. The system according to claim 1, wherein: The instructions further cause the one or more data processing units to: In response to determining that the scheduled meeting has begun, the live conference object is updated to indicate one or more participants that have joined the scheduled meeting.
7. The system according to claim 1, wherein: The instructions further cause the one or more data processing units to: Determining that the scheduled meeting is no longer active; and In response to determining that the scheduled meeting is no longer active, updating the live conference object to stop presenting the live video or audio output of the scheduled meeting.
8. The system according to claim 1, wherein: The instructions further cause the one or more data processing units to: In response to determining that the start time of the scheduled meeting is within a threshold time, updating the live meeting object to include a preview control configured to initiate a preview of a recent message associated with the scheduled meeting.
9. The system according to claim 1, wherein: The instructions further cause the one or more data processing units to: In response to determining that the start time of the scheduled meeting is within a threshold time, updating the live meeting object to include a note control configured to indicate that a new note associated with the scheduled meeting has been added.
10. A method to be performed by a data processing system, the method comprising: presenting a representation of a calendar view on a user interface (UI), the calendar view indicating one or more calendar days, the calendar day comprising a time span including a plurality of consecutive time slots; presenting, within the calendar view including the time span including the plurality of consecutive time slots, a representation of a scheduled meeting in at least one of the consecutive time slots; determining that a start time for the scheduled meeting satisfies one or more criteria; and In response to determining that the start time of the scheduled meeting satisfies the one or more criteria, converting the representation of the scheduled meeting into a live meeting object and replacing the representation of the scheduled meeting with the converted live meeting object within the calendar view, the live meeting object presenting live video or audio output of the scheduled meeting.
11. The method according to claim 10, further comprising: in, The live conference object includes an icon or button operable to provide controls for joining the scheduled conference; receiving, via the control, input data indicative of activation of the control; and The collaboration application is caused to join the scheduled meeting in response to the input data.
12. The method according to claim 10, further comprising: In response to determining that the start time of the scheduled meeting satisfies the one or more criteria, updating the live meeting object to include a whiteboard icon configured to indicate that a new whiteboard associated with the scheduled meeting has been added.
13. The method according to claim 10, further comprising: In response to determining that the start time of the scheduled meeting satisfies one or more criteria, updating the live meeting object to include a chat icon configured to indicate that a most recent chat associated with the scheduled meeting is actively available.
14. The method of claim 10, further comprising updating the live conference object to include a share icon configured to, when selected, cause the scheduled conference to be forwarded to selected participants.
15. The method according to claim 10, further comprising: In response to determining that the start time of the scheduled meeting satisfies the one or more criteria, updating the live meeting object to include a recording icon configured to indicate that a recording associated with the scheduled meeting is available.
16. The method according to claim 10, further comprising: In response to determining that the start time of the scheduled meeting satisfies one or more criteria, updating the live meeting object to include a note control configured to indicate that a new note associated with the scheduled meeting has been added.
17. A system comprising: means for presenting, on a user interface (UI), a representation of a calendar view indicating one or more calendar days, the calendar day comprising a time span including a plurality of consecutive time slots; means for presenting, within the calendar view including the time span containing the plurality of consecutive time slots, a representation of a scheduled meeting in at least one of the consecutive time slots; means for determining that the start time of the scheduled meeting is within a threshold time; and In response to determining that the start time of the scheduled meeting is within the threshold time, a unit for converting the representation of the scheduled meeting into a live meeting object and replacing the representation of the scheduled meeting with the converted live meeting object within the calendar view, the live meeting object presenting live video or audio output of the scheduled meeting.
18. The system of claim 17, further comprising: In response to determining that the start time of the scheduled meeting is within the threshold time, means for updating the live meeting object to visually indicate an elapsed time for the scheduled meeting.
19. The system of claim 17, further comprising: In response to determining that the start time of the scheduled meeting is within the threshold time, means for updating the live meeting object to visually indicate that the scheduled meeting is within the threshold time.
20. The system of claim 17, further comprising: a unit for determining that said scheduled meeting is no longer active; as well as In response to determining that the scheduled meeting is no longer active, means for updating the live conference object to stop presenting the live video or audio output of the scheduled meeting.