Real-time conference information in calendar views

By providing dynamic updates and interactive functions in the calendar view, the problem of inefficient interaction of existing calendar formulation applications is solved, user interaction efficiency and resource utilization are improved, and meeting management and collaboration environment are optimized.

CN119168610APending Publication Date: 2024-12-20MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411245670.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2019-03-17
Filing Date
2020-03-09
Publication Date
2024-12-20

AI Technical Summary

Technical Problem

Existing calendar development applications have inefficiencies in interactivity and information sharing, resulting in waste of user productivity and computing resources, especially when it is impossible to quickly view meetings and interact with the conference context.

Method used

By providing dynamic updates and interactive features within the calendar view, including ‘join’ controls, live meeting status indicators, RSVP options, content previews, and other interactive options, users can directly conduct meeting operations and interactions within the calendar view.

Benefits of technology

It improves the interaction efficiency between users and the calendar system, reduces unintentional input and resource consumption, and optimizes the conference management and collaboration environment.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119168610A_ABST
    Figure CN119168610A_ABST
Patent Text Reader

Abstract

A calendar view is presented on a user interface (UI). The scheduled conference presented in the time period in the calendar view initially has no interactive controls for joining the scheduled conference. In response to determining that the start time of the scheduled conference is within the threshold time, the presented scheduled conference is updated to include an interactive control for joining the scheduled conference. The interactive control has a selectable area configured to indicate that the scheduled conference is to be joined. In response to input data indicating a selection of the interactive control, the collaboration application joins the scheduled conference.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the patent application with the same name with application number 202080022447.2 filed on March 9, 2020. Background Art

[0002] Some computing systems provide interactive and collaborative environments that promote communication between two or more participants. Such systems may include a calendaring program that is configured to arrange and manage meetings and appointments. Although existing calendaring programs provide many features for arranging meetings, the inefficient interaction with calendaring programs may be detrimental to the use of user productivity and computing resources. When calendaring applications can not optimize user participation and information sharing, when participants cannot quickly and easily view meetings and interact with meeting contexts, production losses and inefficiencies may result. For example, some calendaring 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 meetings, participants must go to the date of the meeting, 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 the disclosure of this article has been presented. Summary of the invention

[0003] Many calendaring applications present schedule information in a static format. Unless the calendar event is opened or otherwise further activated, the details of the calendar event may not be updated in a dynamic and real-time manner, and relevant details may not be readily available. 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 can 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 can be automatically converted to a real-time meeting object within a calendar view. In an embodiment, an existing calendar item for a meeting can be updated before setting the start time of the meeting to include and display a "join" control. The join control can be configured so that a user can directly join a meeting from a calendar view without opening the details of a calendar item. Although some collaborative electronic user interfaces may provide a meeting "join" control, this function is typically only provided when the user further participates in a calendar item (e.g., opens a calendar item, opens and selects a menu option, or launches an application other than a calendar formulation application). In some cases, a user must select a detailed meeting view that requires multiple clicks to open and access meeting details.

[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 (e.g., in a full-day calendar view or a full-week calendar view), such interactive options are typically not presented for meetings displayed within a full-day calendar view or a full-week calendar view. In an embodiment, a "join" control can be added to a calendar item when a threshold time is reached before the start time of the meeting (e.g., fifteen minutes before the start time). The "join" control can be added when the user interface is in a 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, which can include multiple date ranges and calendar items within these date ranges. The "join" control can be presented during the entire time that the meeting is in real time. For example, clicking the "join" button can take 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 the meeting is taking place in real time. In addition to adding a "join" button, the calendar item may provide a visual indication such as a color change to indicate that the meeting is taking place in real time. The visual indication and addition of the "join" button may be in addition to other notifications for the meeting that may be provided across other interfaces and form factors that have an interface to the calendar item.

[0007] Once the meeting is ongoing in real time, 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, the elapsed time of the meeting may be presented, indicating how long the meeting has been ongoing in real time.

[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 while 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 camera view may be presented on the calendar item. By providing such information, participants who plan to participate in a portion of the meeting may selectively join the meeting, using the meeting preview 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. When recent chat activity is available, a chat icon may be provided with an indicator (e.g., a red dot). 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 where a calendar item may indicate that a new note has been added to the meeting. The icon may also indicate recent note activity by presenting a red bubble or red dot on the icon. The notes may include notes added by participants of the meeting via the collaborative platform used to facilitate the meeting.

[0012] In an embodiment, a whiteboard icon may be presented that 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 red dot on the icon. A whiteboard may be a tool for allowing participants of a meeting to draw or write shared input via a collaborative platform for facilitating the meeting.

[0013] In an embodiment, a recording icon may be presented that may indicate that the recording is available for viewing. The recording icon may indicate recent activity by presenting a red bubble or red dot on the icon. The recording may include a video and / or audio recording captured by a recording tool that may be part of a collaborative platform for facilitating meetings.

[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 red dot on the icon. The file may include files added or shared by participants of the meeting via a collaborative platform for facilitating the meeting.

[0015] In an embodiment, a share icon may be presented that a user may click or otherwise activate to forward the current meeting to other participants / share the current meeting with other participants or add the current meeting 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, a calendar item may also provide interactive options after a meeting has ended. For example, a calendar item may provide an indication that a meeting has ended, such as a color change to indicate that the meeting is no longer ongoing in real time. Once a 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 a calendar item to indicate the participants who participated in the meeting. In an embodiment, a calendar item may also provide a way to view or listen to recent activities (e.g., playback of a meeting recording), access chat records, and access content shared at the meeting. For example, if a presentation or document was shared, options may be provided on the calendar item to access the file or document, contact meeting participants, and the like.

[0017] Dynamic calendar items as described herein may be referred to as meeting objects or interactive calendar surfaces. Meeting objects or interactive calendar surfaces may facilitate a shared meeting 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 an active interactive calendar surface that is viewable by a user and can be manipulated as an independent object. For example, additional interactive calendar surface objects can be independently saved, forwarded to other users, modified, annotated, added to other applications and files as objects, and viewed as recipients of other files and objects. Meeting objects can be addressable, actionable, and searchable as conversation objects. Meeting objects can be edited before sending a meeting in the same or different context, for example to summarize or select highlights of the meeting.

[0019] Data from multiple resources can be used to provide context-aware information for calendar items in a calendar view. This technology can improve user interaction with a computing device by automatically generating and displaying timely and relevant information without requiring the user to open calendar events, search, or manually access multiple resources. Among the many benefits provided by the technology described herein, the interaction between the user and the device can be improved, which can reduce the number of unintentional inputs, reduce the consumption of processing resources, and alleviate the use of network resources. Other technical effects other than those mentioned herein can also be achieved according to the implementation of the technology disclosed herein. Existing systems that allow users to manually interact with calendar items typically require users to perform multiple tasks. Users can spend a lot of time searching for available calendar items to find and change settings, calling additional applications to perform functions that are not local to the calendar application, and finding content associated with scheduled activities. This can lead to a large amount of and unnecessary consumption of computing resources.

[0020] The examples described herein may be provided within the context of a collaborative environment (e.g., a scheduled calendar event, a group meeting, a live broadcast, etc.). For illustrative purposes, it will be appreciated that a computer managing a calendaring environment relates 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 illustrative purposes, 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 other than 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 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 to help determine the scope of the claimed subject matter. BRIEF DESCRIPTION OF THE DRAWINGS

[0022] Figure 1 is an example user interface illustrating aspects of a calendaring environment for embodiments disclosed herein.

[0023] Figure 2 An example display according to one embodiment disclosed herein is shown.

[0024] Figure 3 An example display according to one embodiment disclosed herein is shown.

[0025] Figure 4 An example display according to one embodiment disclosed herein is shown.

[0026] Figure 5 An example display according to one embodiment disclosed herein is shown.

[0027] Figure 6 An example display according to one embodiment disclosed herein is shown.

[0028] Figure 7 is an example user interface illustrating aspects of a calendaring environment for embodiments disclosed herein;

[0029] Figure 8 is an example user interface illustrating aspects of a calendaring environment for embodiments disclosed herein;

[0030] Fig. 9 is a computing system diagram showing aspects of an illustrative operating environment for the techniques disclosed herein;

[0031] Fig.10is a computing system diagram showing 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 according to one embodiment disclosed herein that can implement aspects of the disclosed techniques.

[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 according to one embodiment disclosed herein that can implement aspects of the disclosed techniques. DETAILED DESCRIPTION

[0038] The following detailed description describes an improved interface for viewing and interacting with calendar events presented in a representation of a calendar. Various embodiments are disclosed that enable productive discovery and management of a user's past, present, and future calendar activities. This can result 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 a scheduled event in a calendaring 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 calendaring application may be a local application designed for personal use, or may be a networked application that allows calendar information to be shared in an interactive and collaborative environment. Examples of calendaring software include WINDOWS LIVE CALENDAR, GOOGLE CALENDAR, or MICROSOFT OUTLOOK.

[0040] Scheduled 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, SKYPE and SKYPE FOR BUSINESS and TEAMS provided by MICROSOFT, Inc. of Redmond, WA) to facilitate communication between two or more participants. Participants in a communication session in a networked meeting are able to exchange real-time video, audio, and other types of content to view, listen to, and otherwise share information. Networked meetings can be participated in using various types of computing devices, 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 calendaring applications present scheduling information in a static format. Unless a calendar event is opened or otherwise further activated, the details of the calendar event may not be updated in a dynamic and real-time manner, and the relevant calendar information is not easily available. Various embodiments of an improved interface for viewing and interacting with a calendar object for a calendaring 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 calendaring application. The user interaction implemented may include updating meeting content, sharing meeting content, interacting with other participants, and joining a meeting. By using the technology described herein, information of a calendar event is presented in a dynamic format that allows timely and useful information to be presented directly within a calendar view. A dynamic view may include real-time updates on the status of a calendar event and interactive capabilities provided directly on the representation of a calendar event within a calendar view.

[0042] In some embodiments, the interactive calendar surface can automatically convert existing calendar items for meetings into real-time meeting objects within the calendar view. Figure 1 1 shows an example calendar view 100 presented on a user interface (UI) including calendar items 110. The calendar view 100 may indicate one or more calendar days including a time span including a plurality of time slots.

[0043] Calendar item 110 may be updated to include and display a "join" control 130 within the calendar view prior to setting the start time of the meeting. Join control 130 may be configured so that a user can join a meeting directly from the transformed calendar view without opening the details of the calendar item. Join control 130 may have at least a selectable area configured to indicate that a scheduled meeting is to be joined. While some existing user interfaces provide a "join" button, this capability is typically provided when the user further engages with the calendar item (e.g., opens the calendar item, opens and selects a menu option, or otherwise moves further away from the calendar view). In some cases, the user must select a detailed view that requires multiple clicks to open and access meeting details.

[0044] In various embodiments, the state of the calendar item can be dynamically updated based on contexts 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, the calendar item can provide the meeting title, date, time, and location, but the "join" button may not be initially displayed before the start time of the meeting, before the time threshold, or according to other criteria. When multiple calendar items are displayed (e.g., in a full-day calendar view or a full-week calendar view), this interactive option is typically not presented on the calendar item. In an embodiment, when the threshold time is reached before the meeting start time (e.g., fifteen minutes before the start time), the state of the calendar meeting can be updated, and the "join" control can be added to the calendar item. The "join" control can be automatically added when the calendar formulation application is presented in the calendar view, without any specific input from the user. In addition, the "join" control can be presented on the calendar item or multiple calendar items in the calendar view, without the user opening the calendar item, and the calendar view can include multiple date ranges and calendar items within these date ranges.

[0045] In one embodiment, the calendar item may also provide an indication that the meeting is ongoing in real time. Figure 1 In the example shown in , calendar item 110 may also provide a visual indication, such as a color change, to indicate that the meeting is ongoing in real time.

[0046] The visual indication and addition of a "join" button can be additional other notifications for the meeting that can be provided across multiple interfaces and form factors with an interface to a calendar item. In an embodiment, the "join" control can continue to be presented during the entire time that the meeting is in real time.

[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 while 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 the meeting is ongoing in real time, additional information may be provided to provide further contextual awareness of the meeting. For example, an icon may be presented on a 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, calendar items may also provide indications of content being discussed or presented at a meeting. In embodiments, dynamic calendar items as described herein may be referred to as interactive calendar surfaces. Interactive calendar surfaces may facilitate shared conference and communication environments that improve collaboration and other activities. The data that may be provided on an 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.

[0050] The interactive calendar surface can facilitate interaction with the source data of the 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 camera view can be presented on a 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 the 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 may be opened to provide further details of the event. In some embodiments, the conference object may be sent to a user who may access the conference by interacting with the object. For example, the recipient of the conference object may be able to click on the conference object to join the conference or view details about the conference.

[0052] In some embodiments, actions available for a conference object or interactive calendar surface can be dynamically updated based on activity detected 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 the thumbprint of the presented presentation.

[0053] Data from multiple resources can be used to provide context-aware information for calendar items. This technology can improve user interaction with computing devices by automatically generating and displaying timely and relevant information without requiring the user to open calendar events, search, or manually access multiple resources. Among the many benefits provided by the technology described herein, user interaction with the device can be improved, which can reduce the number of unintentional inputs, reduce the consumption of processing resources, and alleviate the use of network resources. Other technical effects in addition to those mentioned herein can also be achieved according to the implementation of the technology disclosed herein.

[0054] In some embodiments, the actions available on the interactive calendar surface may be based on the roles assigned to the users. For example, some users may be assigned the role of meeting leader, and these users may be allowed to edit content before it is shared. Other users may have a participant role or a group role, and these users may be allowed to control their own settings or collectively control the settings of 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 in real time. Once the conference has ended, additional information may be provided to enable further interaction with the conference content. For example, an icon may be presented on a 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 (e.g., playback of a conference recording, access chat history), and access content shared at the conference. For example, if a presentation or document was shared, options may be provided on the conference object to access the file or document, contact conference participants, and the like.

[0056] In some embodiments, actions and features activated by a user during an edit / view session can be recorded and can be replayed by the user. In some embodiments, captured images of a meeting can be linked to a time window. For example, images selected for editing from a meeting can be associated with a default time window (e.g., 30 seconds). An interactive calendar surface can provide a timeline tool to traverse the time range during which an activity occurred and record the available time range. In this way, a user can view different times of an 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 an active interactive calendar surface that is viewable by a user and can be manipulated as an independent object. For example, additional interactive calendar surface objects can be independently saved, forwarded to other users, modified, annotated, added to other applications and files as objects, and viewed as recipients of other files and objects. Meeting objects can be addressable, actionable, and searchable as conversation objects. Meeting objects can be edited before sending a meeting in the same or different context, for example to summarize or select highlights of the meeting.

[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 the same or similar elements. In the figures, the left-most digit of a reference number generally identifies the figure in which the reference number first appears. References to individual items of a plurality of items may use a reference number with another numeral included in parentheses (and / or a letter without parentheses) to refer to each individual item. General references to items may use a specific reference number without a 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 may 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 may 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 recognize that aspects of the subject matter described herein may be practiced on or in conjunction with other computer system configurations other than those specifically described herein, including multi-processor systems, microprocessor-based or programmable consumer electronic devices, AR, VR and MR devices, video gaming devices, handheld computers, smart phones, smart televisions, self-driving cars, smart watches, e-readers, tablet computing devices, dedicated hardware devices, network appliances, and the like.

[0062] Figure 2 An example of a user interface 200 is shown in which a calendaring application 210 is presented prior to a dynamic calendar event update. Figure 2 The calendaring application 210 shown in FIG. 2 may represent a variety of applications, including but not limited to Teams, Skype for and Microsoft The calendaring application 210 may display a representation of a calendar view on the user interface 200. The calendar view may include one or more calendar days including a time span including a plurality of time periods. Scheduled meetings 230 and 240 may be presented in at least some of the time periods. 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 (e.g., fifteen minutes before the start time), a "join" control 300 can be added to calendar item 230. The "join" control 300 can be added while the user interface is in a 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, which can include multiple date ranges and calendar items within these date ranges. The "join" control 300 can be presented during the entire time that the meeting is in real time. 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 the meeting is taking place in real time. 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 taking place in real time.

[0065] Once the meeting is ongoing in real time, additional information can be provided to provide further contextual awareness of the meeting. Figure 4, an icon 400 may 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 for each participant who has joined the conference may be presented.

[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 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 color change to indicate that the meeting is no longer ongoing in real time. 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 participating in the meeting. Figure 6 In the embodiment shown in , calendar item 230 may also provide icons 600 for viewing or listening to recent activities (e.g., playback of a conference recording, chat history) and accessing content shared in the conference. 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 shown in FIG. 7 , selection of icon 600 or 610 may open a UI 700 that provides further details of the meeting. A follow-up button 710 may be provided to enable a user to schedule a follow-up meeting. Additionally, a meeting playback control 720 may be provided to initiate playback of a conference recording.

[0068] Figure 8 It is shown that while some features in calendar view 100 are accessible for the meeting, the calendar item can be opened to provide further details in pane 800. Pane 800 can include options for participating in the meeting, such as a join button 810 and an RSVP button 820.

[0069] Fig. 9900 (also referred to herein as "system 900") for providing dynamic updates of calendar events disclosed herein. In an illustrative example, the example environment 900 may 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 resources 906A-906E (collectively referred to as "resources 906"). The user device 909 may be used to interact with one or more users 903A-903B (collectively referred to as "users 903"), and the provider device 904 may 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 the example environment 900 may include any number of devices, users, providers, and / or any number of servers 920.

[0070] For illustrative purposes, service provider 905 may be a company, an individual, or any type of entity that can provide services or products to user 903, and user 903 may also be a company, an individual, or other entity. For illustrative purposes, service provider 905 and user 903 may be generally and individually referred to herein as "users." In some configurations, a data object may include one or more calendar events. Context data may be analyzed to determine one or more calendar events that may be dynamically updated.

[0071] User device 909, provider device 904, server 920 and / or any other computer configured with features disclosed herein can be interconnected via one or more local area networks and / or wide area networks (e.g., network 950). Additionally, computing devices can communicate using any technology (e.g., BLUETOOTH, WIFI, WIFIDIRECT, NFC, or any other suitable technology that may include optical, wired or wireless technologies). It should be appreciated that more types of connections than those described herein may be utilized.

[0072] The user device 909 or the provider device 904 (collectively referred to as a "computing device") can operate as a stand-alone device, or such a device can operate in conjunction with other computers (e.g., one or more servers 920). A single computing device can take 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 may include a local memory 980 (also referred to herein as a "computer-readable storage medium" or a "non-transitory computer-readable storage medium") that is configured to store data, such as the client module 902 and other contextual data described herein.

[0073] Server 920 may take 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 data, and / or communicating data between one or more computing devices. In one illustrative example, server 920 may include local memory 980 (also referred to herein as a "computer-readable storage medium") configured to store data, such as server module 929 and other data described herein. Server 920 may 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, Fig. 9 As will be described in more detail herein, any suitable module may operate in conjunction with other modules or devices to implement aspects of the technology disclosed herein.

[0074] In some configurations, an application programming interface (API) exposes an interface through which operating systems and applications executing on computing devices can implement the functionality disclosed herein. Using this data interface and other interfaces, operating systems and applications can communicate and process context data and modify scheduling data as described herein.

[0075] The scheduling data 939 may define an appointment for the user 903 and the provider 905. The scheduling data 939 may 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 may also include location data. The scheduling data 939 may define a single appointment or a series of appointments. Additionally, the scheduling data 939 may include communication information, such as a phone number, an IM address, a URL, or other information for facilitating a voice or video conference. The scheduling data 939 may 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 may be stored on a server 920, a user device 909, a provider device 904, or any suitable computing device that may include a Web-based service.

[0076] Attendee data 932 may include a list of multiple attendees scheduled to participate in the meeting. Attendee data 932 may also be based on arrangement data 939. Document data 933 may include documents shared during the meeting. Status data 934 may define the availability of one or more parties. For example, status data 934 may indicate whether a party is unavailable, available, or unavailable before a specific date. Status data 934 may also define availability levels. These examples are provided for illustrative purposes and should not be construed as limiting. It can be appreciated that status data 934 includes the form of data indicating the availability of a company, an individual, or a group of individuals. Preference data 929 may include user-defined preferences or provider-defined preferences.

[0077] In order to implement aspects of the technology disclosed herein, Fig. 9 One or more computing devices of the system may be configured to generate data defining one or more real-time updates in response to detecting the presence of a condition. In some configurations, implementations may include receiving scheduling data defining a calendar event. Additionally, implementations may include obtaining context data from multiple resources. As described in more detail herein, context data may include additional scheduling data, real-time meeting dates, meeting participants, and / or other data related to the calendar event.

[0078] One or more computing devices may be configured to identify a pattern of contextual data indicating the presence of a condition that affects one or more aspects of a calendar event. The condition may include the introduction or modification of a calendar event and / or other events or data that may affect aspects of a calendar event.

[0079] Fig.101 is a diagram illustrating an example environment 1000 in which the system 900 may operate 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 2 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 on one or more networks 108. That is, the system 102 may provide services that enable users of the client computing devices 106(1) to 106(N) to participate in the interactive session 104 (e.g., via real-time viewing and / or recorded viewing). Thus, a "participant" of the interactive session 104 may include users and / or client computing devices (e.g., multiple users may participate in the interactive session in a communication room via the use of a single client computing device), each of which may communicate with other participants. Alternatively, interactive session 104 may be hosted by one of client computing devices 106(1)-106(N) using 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 may include a collection of various instances or streams of content. For example, a single stream of content may 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 a single stream of content may include media data including 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) 110. Device(s) 110 and / or other components of system 102 may include distributed computing resources that communicate with each other and / or with client computing devices 106(1) to 106(N) via one or more networks 108. In some examples, system 102 may be a stand-alone system that is responsible for managing aspects of one or more interactive sessions (e.g., interactive session 104). As an example, 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 (e.g., the Internet), a private network (e.g., 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 the hardware foundation of the network, such as switches, routers, gateways, access points, firewalls, base stations, repeaters, backbone devices, and the like.

[0083] In some examples, network(s) 108 may also include devices that enable connection to wireless networks, such as wireless access points (“WAPs”). Examples support connectivity 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.21 standards (e.g., 802.21g, 802.21n, 802.21ac, etc.) and other standards.

[0084] In various examples, the device(s) 110 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, the device(s) 110 may belong to various categories of devices, such as traditional server-type devices, desktop-type devices, and / or mobile-type devices. Therefore, although the device(s) 110 are shown as a single type of device (a server-type device), the device(s) 110 may include a wide variety of device types and is not limited to a particular type of device. The device(s) 110 may represent, but is not limited to, a server computer, a desktop computer, a web server computer, a personal computer, a mobile computer, a laptop computer, a tablet computer, or any other type of computing device.

[0085] A client computing device (e.g., one of client computing devices 106(1)-106(N)), each of which is also referred to herein as a "data processing system") can belong to various categories of devices that can be the same as or different from device(s) 110, such as, for example, a traditional server-type device, a desktop-type device, a mobile-type device, a dedicated-type device, an embedded-type device, and / or a wearable-type device. Thus, client computing devices may include, but are not limited to, desktop computers, game consoles and / or gaming devices, tablet computers, personal data assistants (“PDAs”), mobile phone / tablet hybrid devices, laptop computers, telecommunication devices, computer navigation-type client computing devices (e.g., satellite-based navigation systems, including global positioning system (“GPS”) devices), wearable devices, virtual reality (“VR”) devices, augmented reality (“AR”) devices, implanted computing devices, automotive computers, network-enabled televisions, thin clients, terminals, Internet of Things (“IoT”) devices, workstations, media players, personal video recorders (“PVRs”), set-top boxes, cameras, integrated components (e.g., peripherals) for inclusion in computing devices, household appliances, or any other kind of computing device. Furthermore, client computing devices may include combinations of the earlier listed examples of client computing devices, such as a combination of a desktop-type device or a mobile-type device with a wearable device, etc.

[0086] The various classes and device types of client computing devices 106(1) to 106(N) may represent any type of computing device having one or more processing units 112 operably connected to a computer-readable medium 114 (e.g., via a bus 116), which in some instances may include a system bus, a data bus, an address bus, a PCI bus, a Mini-PCI bus, and one or more of any of a variety of local, peripheral, and / or independent buses.

[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 may be loaded and executed by the processing unit(s) 112 .

[0088] The client computing devices 106(1)-106(1)N may also include one or more interfaces 124 to enable communications between the client computing devices 106(1)-106(N) and other networked devices (e.g., device(s) 110) over the network(s) 108. Such network interfaces 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 (e.g., 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, touch output devices, etc.). Fig.10 The client computing device 106 (N) is shown connected in some manner to a display device (eg, display screen 128) that can display an interactive timeline of the interactive session 104, as shown.

[0089] exist Fig.10 In the example environment 1000 of FIG. 1000 , client computing devices 106 ( 1 ) through 106 (N) can use their respective client modules 120 to connect to each other and / or to other external device(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 ) through 106 (N) via the network(s) 108 .

[0090] The client computing devices 106(1)-106(N) can use their respective profile modules 122 to generate participant profiles and provide the participant profiles to other client computing devices and / or the device(s) 110 of the system 102. The participant profiles can include one or more of the following: an identity of a user or a group of users (e.g., name, unique identifier (“ID”), etc.), user data (e.g., personal data), machine data such as location (e.g., IP address, room in a building, etc.), and technical capabilities, etc. The participant profiles can be utilized to register participants for an interactive session.

[0091] like Fig.10, the device(s) 110 of the system 102 include a server module 130 and an output module 132. The server module 130 is configured to receive media streams 134(1) to 134(3) from various client computing devices (e.g., client computing devices 106(1) to 106(N)). As described above, the media streams may include video feeds (e.g., audio and visual data associated with a user), audio data to be output (e.g., an audio-only experience in which the user's video data is not sent), text data (e.g., a text message), file data, and / or screen sharing data (e.g., a document, slide layout, image, video, etc. displayed on a display screen), etc. Thus, the server module 130 is configured to receive a collection of various media streams 134(1) to 134(3) (the collection being 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 device or a “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 130 is configured to generate session data 136 based on the media data 134. In various examples, the server module 130 can select aspects of the media stream 2134 to be shared with the participating client computing devices 106(1) to 106(N). Accordingly, the server module 2130 is configured to pass the session data 136 to the output module 132, and the output module 132 can communicate the teleconference data to the client computing devices 106(1) to 106(3). As shown, the output module 132 sends the teleconference data 138 to the client computing device 106(1), sends the teleconference data 140 to the client computing device 106(2), and sends the interactive data 142 to the client computing device 106(3). The interactive data sent to the client computing devices can be the same or can be different (e.g., the positioning of the stream of content 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 (e.g., a version of the interactive data) and maintain a record of the interactive session 144.

[0093] Device(s) 110 may 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), may provide a request 150 to view a recording of an interactive session 104. In response, output module 132 may provide interactive data and calendar data 152 to be displayed on display screen 128 associated with client computing device 106(N). The teleconference data sent 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) may provide input to add supplemental recorded content to interactive session 104 and / or interactive timeline, and data 154 associated with the supplemental recorded content may be sent from client computing device 106(N) to system 102 so that the recording of interactive session 104 and interactive timeline may 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") for interacting with a calendar and representations of calendar content is disclosed herein. In some embodiments, 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 calendaring and scheduling system.

[0095] Fig.11 A diagram illustrating example components of an example device 1100 configured to present and update calendar data is shown. 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 1108, computer-readable media 1104, and communication interface(s) 1106. The components of device 1100 may be operatively 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 of a variety of local, peripheral, and / or independent buses.

[0096] As utilized herein, processing unit(s) (e.g., processing unit(s) 1108 and / or processing unit(s) 1111) may represent, for example, a CPU-type processing unit, a GPU-type processing unit, a field programmable gate array (“FPGA”), another class of digital signal processors (“DSP”), or other hardware logic components (which may be driven by a CPU in some instances). For example, but not limitation, illustrative types of hardware logic components that may be utilized 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 (e.g., computer-readable medium 1104) may store instructions that may be executed by a processing unit(s). The computer-readable medium may also store instructions that may be executed by an external processing unit (e.g., by an external CPU, an external GPU) and / or may be executed by an external accelerator (e.g., 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 (e.g., computer readable instructions, data structures, program modules or other data). Thus, computer storage media includes media in tangible and / or physical form included in devices and / or hardware components that are part of a device or external to a 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, magnetic 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 transmission mechanism. As defined herein, computer storage media does not include communication media. That is, computer storage media does not include communication media that consists only of a modulated data signal, a carrier wave, or a propagation 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 example shown, computer-readable medium 1104 includes data repository 1108. In some examples, data repository 1108 includes a data storage device, such as a database, a data warehouse, or other type of structured or unstructured data storage device. In some examples, data repository 1108 includes a corpus and / or a relational database having one or more tables, indexes, stored procedures, etc. to enable data access, including, for example, one or more of the following: Hypertext Markup Language ("HTML") tables, Resource Description Framework ("RDF") tables, Web Ontology Language ("OWL") tables, and / or Extensible Markup Language ("XML") tables.

[0102] The data repository 1108 may store data for the operation of processes, applications, components, and / or modules stored in the computer-readable medium 1104 and / or executed by the data processing unit(s) 1118 and / or accelerator(s). For example, in some examples, the data repository 1108 may store session data 1110 (e.g., session data 136), profile data 1181 (e.g., which is associated with a participant profile), and / or other data. The session data 1110 may include the total number of participants (e.g., users and / or client computing devices) in the interactive session 104, 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 repository 1108 may also include record(s) 1114 of the interactive session(s).

[0103] Alternatively, some or all of the data referenced above may be stored on a separate memory 1181 on board of one or more data processing units 1118 (e.g., on board of a CPU-type processor, a GPU-type processor, an FPGA-type accelerator, a DSP-type accelerator, and / or other accelerator). In this example, the computer-readable medium 1104 also includes an operating system 1184 and (multiple) application programming interfaces 1186 configured to expose the functions and data of the device 1100 to other devices. Additionally, the computer-readable medium 1104 includes one or more modules (e.g., a server module 130, an output module 132, and a calendar module 146), but the number of illustrated modules is only an example, and the number may be higher or lower. That is, the functions described in association with the illustrated modules herein may be performed by a smaller number of modules or a larger number of modules on one device or across multiple devices.

[0104] Fig.12Aspects of a system 1200 are shown that provide a framework for several example scenarios utilizing the techniques disclosed herein. More specifically, the block diagram of the system 1200 shows an illustrative example of a server 120 receiving scheduling data 131 defining a scheduled meeting. The server 120 also stores the scheduling data 131 and preference data 129 defining a plurality of calendar events for a user. The server 120 also receives context data 650 from a plurality of resources 106A-106E and other resources described herein. To illustrate aspects of the examples described below, the user device 101 is displaying a user interface (UI) 200 showing a calendar object.

[0105] Fig.13 1300 is a diagram illustrating aspects of a routine 1300 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 an alternative order. For ease of description and illustration, the operations have been presented in the order shown. The 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 may be terminated at any time and need not be performed in its entirety. As defined herein, some or all of the operations of the method and / or substantially equivalent operations may be performed by executing computer-readable instructions included on a computer storage medium. The term "computer-readable instructions" and variations thereof used in the specification and claims are used broadly herein to include routines, applications, application modules, program modules, programs, components, data structures, algorithms, and the like. Computer-readable instructions may be implemented on a variety of system configurations, including single-processor or multi-processor systems, minicomputers, mainframe computers, personal computers, handheld computing devices, microprocessor-based programmable consumer electronics, combinations thereof, and the like.

[0107] It should be appreciated, therefore, 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 units, and any combination thereof.

[0108] Additionally, Fig.13 The operations shown in the other figures may be the same as those described above with respect to Figures 1 to 12 The described examples present GUIs that are implemented in association.

[0109] refer to Fig.13 , operation 1301 shows a representation of presenting a calendar view on a user interface (UI). In an embodiment, the calendar view may indicate one or more calendar days. Additionally, the calendar day may include a time span including multiple time periods. Operation 1301 may be followed by operation 1303. Operation 1303 shows presenting a representation of a calendar event indicating a scheduled meeting in at least one of the time periods. 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 shows determining that the start time of the scheduled meeting is within a threshold time. Operation 1305 may be followed by operation 1307. Operation 1307 shows, in response to determining that the start time of the scheduled meeting is within the threshold time, updating the presentation to include an interactive control for joining the scheduled meeting. In an embodiment, the interactive control may include at least an optional area configured to indicate that the scheduled meeting is to be joined. Operation 1307 may be followed by operation 1309. Operation 1309 shows receiving input data indicating activation of the interactive control via 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 1400 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 shows 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. A calendar day may also include a time span including multiple time periods. Operation 1401 may be followed by operation 1403. Operation 1403 shows presenting a representation indicating a scheduled meeting in at least one of the time periods. 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 shows determining that the start time of the scheduled meeting is within a threshold time. Operation 1405 may be followed by operation 1407. Operation 1407 shows that in response to determining that the start time of the scheduled meeting is within the threshold time, converting the representation of the scheduled meeting into a real-time meeting object within the calendar view.

[0111] Fig.15 A method for use with a computer (e.g., Figure 1-14 1500 that is capable of executing the program components described herein). Fig.15The computer architecture 1500 shown in shows 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 perform any aspect of the software components presented herein.

[0112] Fig.15 The computer architecture 1500 shown in FIG. 1 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 containing basic routines that help to transfer 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 (e.g., context data 1550), input data 1551, schedule data 131, calendar events 1567, content data 1569, and one or more application programs ( Fig.15 not depicted).

[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 (e.g., a solid-state drive, a hard disk, or a CD-ROM drive), those skilled in the art will recognize that 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 (e.g., a carrier wave or other transport mechanism), and includes any delivery media. The term "modulated data signal" refers to a signal that has one or more of its characteristics changed or set 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 memory technology, CD-ROM, digital versatile disk ("DVD"), HD-DVD, BLU-RAY or other optical storage, 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 include waves, signals and / or other transient and / or intangible communication media per se.

[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, which is used to receive and process input and output from a plurality of other devices (including a keyboard, a mouse, or an electronic pen ( Fig.15 Similarly, the input / output controller 1516 can provide input to a display screen, a printer, or other type of output device (also not shown). Fig.15 ) provides an output.

[0117] It should be appreciated that when the software components described herein are loaded into the CPU 1502 and executed, these software components can convert the 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. The 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, the CPU 1502 can operate as a finite state machine. These computer executable instructions can convert the CPU 1502 by specifying how the CPU 1502 converts between states, thereby converting the transistors or other discrete hardware elements that constitute the CPU 1502.

[0118] Encoding the software modules presented herein can 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 can be encoded on the computer-readable medium by converting the physical state of the semiconductor memory. For example, the software can convert the state of transistors, capacitors, or other discrete circuit elements that constitute the semiconductor memory. The software can also convert the physical state of these components in order to store data thereon.

[0119] As another example, the computer readable medium disclosed herein can be implemented using magnetic or optical technology. In such an implementation, when the software is encoded in a magnetic medium or an optical medium, the software presented herein can convert the physical state of the magnetic medium or the optical medium. These conversions can include changing the magnetic properties of a specific location in a given magnetic medium. These conversions can also include changing the physical properties or features of a specific location in a given optical medium to change the optical properties of these locations. Without departing from the scope and spirit of this specification, other conversions of physical media are possible, and the aforementioned 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 figure or may be used in conjunction with Fig.15 The architecture shown in is completely different from the architecture shown in.

[0121] Fig.16 An illustrative distributed computing environment 1600 is depicted that is capable of executing the software components described herein to provide context-aware insights into calendar events. Fig.16 The distributed computing environment 1600 shown in FIG. 1 can be used to perform any aspects of the software components presented herein. For example, the distributed computing environment 1600 can be used to perform aspects of the software components described herein.

[0122] According to various embodiments, the distributed computing environment 1600 includes a computing environment 1602 operating on, communicating with, or being part of a network 1604. As described above, the network 1604 may be or may include a network 1656. The network 1604 may also include various access networks. One or more client devices 1606A-1606N (hereinafter collectively and / or generally referred to as "clients 1606") may communicate with each other via the network 1604 and / or other connections ( Fig.16 1602). In one illustrated configuration, the client 1606 includes: a computing device 1606A, such as a laptop computer, 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. This document refers to Figure 1-15 Two example computing architectures are shown and described for the client 1606. It should be understood that the illustrated client 1606 and computing architectures shown and described herein are illustrative 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 may 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 may host various services, virtual machines, portals, and / or other resources. 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 to provide context-aware insights into calendar events. It should be understood that this configuration is illustrative and should not be interpreted as being 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 may include an electronic mail ("email") service. The mailbox service 1618 may 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 may 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 may include various social networking services, including but not limited to services for sharing or publishing status updates, instant messages, links, photos, videos, and / or other information; services for commenting on or showing interest in articles, products, blogs, or other resources; and / or other services. In some configurations, the social networking services 1622 are provided by or include the following: FACEBOOK social networking services, LINKEDIN professional networking services, MYSPACE social networking services, FOURSQUARE geographic networking services, YAMMER office colleagues networking services, 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 networking providers. For example, some websites allow users to interact with each other via email, chat services, and / or other means during various activities and / or contexts (e.g., reading published articles, commenting on goods or services, publishing, collaboration, games, etc.). Examples of such services include but are not limited to WINDOWS LIVE services and XBOX LIVE services from Microsoft Corporation of Redmond, Washington. Other services are possible and are contemplated.

[0126] The social networking service 1622 may also include comment, blog and / or microblogging services. Examples of such services include, but are not limited to, the YELP comment service, the KUDZU check service, the OFFICETALK enterprise microblogging service, the TWITTER messaging service, the GOOGLE BUZZ service, and / or other services. It should be appreciated that the above list of services is not exhaustive, and for the sake of brevity, many additional and / or alternative social networking services 1622 are not mentioned herein. Therefore, the configuration described above is illustrative and should not be interpreted as being limited in any way. According to various implementations, the social networking service 1622 may host one or more applications and / or software modules to provide the functionality described herein for providing context-aware insights into calendar events. For example, any one of the application servers 1608 may communicate or facilitate the functionality 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 may communicate with the network service 1622 and (even if partially) facilitate the above description of the configuration described herein. Figure 1-15 Describes the functionality.

[0127] like Fig.16 As shown in FIG. 1 , application server 1608 may also host other services, applications, portals, and / or other resources (“other resources”) 1624. Other resources 1624 may include, but are not limited to, document sharing, presentation, or any other functionality. Thus, it can be appreciated that computing environment 1602 may provide integration of concepts and technologies disclosed herein, which are provided herein with various mailboxes, messaging, social networks, and / or other services or resources.

[0128] As mentioned above, the computing environment 1602 may 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 may also be provided by one or more server computers configured to host data for the computing environment 1602. The data store 1610 may include, host, or provide one or more real or virtual data repositories 1626A-1626N (hereinafter collectively and / or generally referred to as "data repositories 1626"). The data repositories 1626 are configured to host data used or created by the application servers 1608 and / or other data. Although not described herein, the data store 1626 may be used to store data used or created by the application servers 1608 and / or other data. Fig.16 , but the data repository 1626 can also host or store web documents, word documents, presentation documents, data structures, algorithms executed by the recommendation engine, and / or other data utilized by any application or another module. Aspects of the data repository 1626 can be associated with a service for storing files.

[0129] The computing environment 1602 may communicate with or be accessed by a network interface 1612. The network interface 1612 may 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 may 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 may include a real machine or a virtual machine, including but not limited to a server computer, a web server, a personal computer, a mobile computing device, a smart phone, 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 and other aspects.

[0131] It should be appreciated that the subject matter described above may 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. The operations of the example methods are shown in separate boxes and are summarized with reference to those boxes. The method is shown as a logical flow of boxes, each of which may represent one or more operations that may be implemented in hardware, software, or a combination thereof. In the context of software, an operation represents a computer-executable instruction stored on one or more computer-readable media that, when executed by one or more processors, enables the one or more processors to perform the recited operation.

[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 may 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 may be performed by resources associated with one or more devices (e.g., one or more internal or external CPUs or GPUs) and / or one or more hardware logic units (e.g., field programmable gate arrays ("FPGAs"), digital signal processors ("DSPs"), 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 as described below. Some or all of the methods can alternatively be embodied in dedicated computer hardware as described below.

[0134] Any conventional description, element or box in the flowcharts described herein and / or depicted in the accompanying drawings should be understood to potentially represent a module, segment or portion of code, 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 herein, wherein, depending on the functions involved as understood by those skilled in the art, elements or functions may be deleted from those shown or discussed or performed in a different order, including substantially simultaneously or in reverse order.

[0135] It should be appreciated that, unless specifically stated otherwise, conditional language used herein (e.g., "can," "could," "might," or "may," etc.) is understood within the context to express that certain examples include and other examples do not include certain features, elements, and / or steps. Thus, such conditional language is generally not intended to imply that one or more examples in any way require certain features, elements, and / or steps, or that one or more examples must include logic for determining (with or without user input or prompting) whether certain features, elements, and / or steps are to be included or performed in any particular example. Unless specifically stated otherwise, conjunction language such as the phrase "at least one of X, Y, or Z" should be understood to mean that an item, term, etc. may be X, Y, or Z, or a combination thereof.

[0136] It should also be recognized that various changes and modifications may be made to the examples described above, and the elements therein should be understood to be among other acceptable examples. All such changes and modifications are intended to be included herein within the scope of the present disclosure and protected by the accompanying 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 appended representations is not necessarily limited to the specific features or acts described. Rather, the specific features and acts disclosed serve as example 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 rely on inefficient manual placement of virtual objects in a 3D environment. Other technical benefits not specifically mentioned herein may also be achieved through implementations of the disclosed subject matter.

[0139] Although the technology has 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 example implementations of the technology.

[0140] Sample Clauses

[0141] The disclosure presented herein covers the subject matter set forth in the following example clauses.

[0142] Example Item A, a system comprising:

[0143] one or more data processing units; and

[0144] A computer-readable medium having computer-executable instructions encoded thereon, the computer-executable instructions being used to cause one or more data processing units to perform the following operations:

[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 periods;

[0146] presenting a representation of a calendar event indicative of a scheduled meeting in at least one of the time periods, wherein the scheduled meeting is presented without an interactive control for joining the scheduled meeting;

[0147] Determining that the start time of a scheduled meeting is within a threshold time;

[0148] In response to determining that the start time of the scheduled meeting is within the threshold time, updating the presentation to include an interactive control for joining the scheduled meeting, the interactive control having at least a selectable region configured to indicate that the scheduled meeting is to be joined;

[0149] receiving, via the interactive control, input data indicative of activation of the interactive control; and

[0150] In response to the input data, the collaboration application is caused to join the scheduled meeting.

[0151] Example clause B, the system of example clause A, wherein the instructions further cause the one or more data processing units to perform the following operations:

[0152] In response to determining that the start time of the scheduled meeting is within the threshold time, the presented scheduled meeting is updated to visually indicate that the scheduled meeting is within the threshold time.

[0153] 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 perform the following operations:

[0154] Determining that a scheduled meeting is no longer active; and

[0155] In response to determining that the scheduled meeting is no longer active, updating the presentation on the UI to remove the interactive controls for joining the scheduled meeting.

[0156] 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 perform the following operations:

[0157] Determining that a scheduled meeting is no longer active; and

[0158] In response to determining that the scheduled meeting is no longer active, updating the presentation to visually indicate that the scheduled meeting is no longer active.

[0159] Example clause E. The system of any one of example clauses A to D, wherein the instructions further cause the one or more data processing units to:

[0160] In response to determining that the start time of 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.

[0161] Example clause F. The system of any one of example clauses A to E, wherein the instructions further cause the one or more data processing units to:

[0162] In response to determining that the start time of the scheduled meeting is within the threshold time, the presented scheduled meeting is updated to visually indicate a real-time image of the scheduled meeting.

[0163] Example clause G. The system of any one of example clauses A to F, wherein the instructions further cause the one or more data processing units to:

[0164] In response to determining that the start time of the scheduled meeting is within the threshold time, the presented scheduled meeting is updated to include a preview icon configured to initiate a preview of recent messages associated with the scheduled meeting.

[0165] Example clause H. The system of any one of example clauses A to G, wherein the instructions further cause the one or more data processing units to:

[0166] In response to determining that the start time of the scheduled meeting is within the threshold time, the presented scheduled meeting is updated to include a file icon configured to indicate a new file associated with the scheduled meeting has been added.

[0167] Example clause I. The system of any one of example clauses A to H, wherein the instructions further cause the one or more data processing units to perform the following operations:

[0168] In response to determining that the start time of the scheduled meeting is within the threshold time, the presented scheduled meeting is updated to include a note icon configured to indicate that a new note associated with the scheduled meeting has been added.

[0169] Although example 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 example clauses A to I may additionally or alternatively be implemented by a method or an apparatus.

[0170] Example clause J, a method performed by a data processing system, the method comprising:

[0171] 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 periods;

[0172] presenting a representation of a scheduled meeting in at least one of the time periods, wherein the scheduled meeting is presented without interactive controls for joining the scheduled meeting;

[0173] Determining that the start time of a scheduled meeting is within a threshold time;

[0174] In response to determining that the start time of the scheduled meeting is within the threshold time, updating the presented scheduled meeting on the UI to include an interactive control for joining the scheduled meeting, the interactive control having at least a selectable area configured to indicate that the scheduled meeting is to be joined;

[0175] Receiving input data via the interactive control indicative of a selection of the interactive control; and causing the collaboration application to join the scheduled meeting in response to the input data.

[0176] Example clause K, the method of example clause J, further comprising:

[0177] In response to determining that the start time of the scheduled meeting is within the threshold time, updating the presented scheduled meeting to include a whiteboard icon configured to indicate a new whiteboard associated with the scheduled meeting has been added.

[0178] Example clause L, the method of any of example clauses I to K, further comprising:

[0179] In response to determining that the start time of 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.

[0180] Example Clause M, the method of any one of Example Clauses I to L, further comprising: updating the presented scheduled meeting to include a sharing icon, the sharing icon being configured to: when the sharing icon is selected, cause the scheduled meeting to be forwarded to the selected participant.

[0181] Example clause N, the method of any one of example clauses I to M, further comprising:

[0182] In response to determining that the start time of 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.

[0183] Example clause O, the method of any one of example clauses I to N, further comprising:

[0184] Determining that a scheduled meeting is no longer active; and

[0185] In response to determining that the scheduled meeting is no longer active, updating the presented scheduled meeting on the UI to remove interactive controls for joining the scheduled meeting.

[0186] Example clause P, the method of any one of example clauses I to O, further comprising:

[0187] In response to determining that the scheduled meeting is no longer active, 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.

[0188] Although example clauses J to P are described above with respect to a method, it will be appreciated that in the context of the present disclosure, the subject matter of example clauses J to P may additionally or alternatively be implemented by a system or an apparatus.

[0189] Example Item Q, a system comprising:

[0190] Unit for 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 periods;

[0191] means for presenting a representation of a scheduled meeting in at least one of the time periods, wherein the scheduled meeting is presented without interactive controls for joining the scheduled meeting;

[0192] A unit for determining that a start time of a scheduled meeting satisfies one or more criteria;

[0193] means for, in response to determining that the start time of the scheduled meeting satisfies the one or more criteria, updating a presentation on the UI to include an interactive control for joining the scheduled meeting, the interactive control having at least a selectable area configured to indicate that the scheduled meeting is to be joined;

[0194] means for receiving, via the interactive control, input data indicative of activation of the interactive control; and

[0195] Means for causing the collaboration application to join the scheduled meeting in response to input data.

[0196] Example clause R, the system of example clause Q, further comprising:

[0197] A cell for updating a presented scheduled meeting to visually indicate an elapsed time for the scheduled meeting in response to determining that the start time of the scheduled meeting satisfies one or more criteria.

[0198] Example clause S, the system of any of example clauses Q to R, further comprising:

[0199] A cell for updating the presented scheduled meeting to visually indicate that the scheduled meeting is within a threshold time in response to determining that the start time of the scheduled meeting satisfies one or more criteria.

[0200] Example clause T, the system of any of example clauses Q to S, further comprising:

[0201] The meeting used to finalize the schedule is no longer a unit of activity; and

[0202] Means for updating, on a UI, the presented scheduled meeting to remove an interactive control for joining the scheduled meeting in response to determining that the scheduled meeting is no longer active.

[0203] Although example 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 example clauses Q to T may additionally or alternatively be implemented by a method or via an apparatus.

[0204] The disclosure presented herein covers the subject matter set forth in the following example clauses.

[0205] Example Clause AA, A system comprises:

[0206] one or more data processing units; and

[0207] A computer-readable medium having computer-executable instructions encoded thereon, the computer-executable instructions being used to cause one or more data processing units to perform the following operations:

[0208] 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 periods;

[0209] presenting a representation indicating a scheduled meeting in at least one of the time periods, wherein the scheduled meeting is presented without an interactive control for joining the scheduled meeting;

[0210] Determining that the start time of the scheduled meeting is within the threshold time; and

[0211] In response to determining that the start time of the scheduled meeting is within the threshold time, a representation of the scheduled meeting is converted to a real-time meeting object within the calendar view.

[0212] Example clause BB, the system of example clause AA, wherein the instructions further cause the one or more data processing units to perform the following operations:

[0213] The real-time 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.

[0214] Example clause CC, the system of any one of example clauses AA to BB, wherein the instructions further cause the one or more data processing units to perform the following operations:

[0215] In response to determining that the start time of the scheduled meeting is within the threshold time, the real-time meeting object is updated to visually indicate that the scheduled meeting is within the threshold time.

[0216] Example clause DD, the system of any of example clauses AA to CC, wherein the instructions further cause the one or more data processing units to:

[0217] Determining that a scheduled meeting is no longer active; and

[0218] In response to determining that the scheduled meeting is no longer active, updating the real-time meeting object to remove interactive controls for joining the scheduled meeting.

[0219] 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 perform the following operations:

[0220] Determining that a scheduled meeting is no longer active; and

[0221] In response to determining that the scheduled meeting is no longer active, the real-time meeting object is updated to visually indicate that the scheduled meeting is no longer active.

[0222] 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:

[0223] In response to determining that the start time of the scheduled meeting is within the threshold time, the real-time meeting object is updated to indicate one or more participants who have joined the scheduled meeting.

[0224] 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:

[0225] In response to determining that the start time of the scheduled meeting is within the threshold time, the real-time meeting object is updated to present a video image of the scheduled meeting.

[0226] Example clause HH, the system of any of example clauses AA to GG, wherein the instructions further cause the one or more data processing units to:

[0227] In response to determining that the start time of the scheduled meeting is within the threshold time, the real-time meeting object is updated to include a preview control configured to initiate a preview of recent messages associated with the scheduled meeting.

[0228] Example clause II, the system of any one of example clauses AA to HH, wherein the instructions further cause the one or more data processing units to:

[0229] receiving input data indicating a change in perspective of a representation; and

[0230] In response to a change in viewing angle, the zoom window is automatically repositioned to maintain a view of a portion of the representation.

[0231] Although example clauses AA to II are described above with respect to a system, it will be appreciated that in the context of the present disclosure, the subject matter of example clauses AA to II may additionally or alternatively be implemented by a method or an apparatus.

[0232] Example Clause JJ, A method performed by a data processing system, the method comprising:

[0233] 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 periods;

[0234] presenting a representation of the scheduled meetings in at least one of the time periods;

[0235] determining that a start time for a scheduled meeting satisfies one or more criteria;

[0236] In response to determining that the start time of the scheduled meeting satisfies the one or more criteria, converting a representation of the scheduled meeting into a real-time meeting object within the calendar view, wherein the real-time meeting object includes a control for joining the scheduled meeting;

[0237] receiving, via the control, input data indicating activation of the control; and

[0238] In response to the input data, the collaboration application is caused to join the scheduled meeting.

[0239] The method of Example Clause KK, Example Clause JJ also includes:

[0240] In response to determining that the start time of the scheduled meeting satisfies the one or more criteria, the real-time meeting object is updated to include a whiteboard icon configured to indicate that a new whiteboard associated with the scheduled meeting has been added.

[0241] Example clause LL, the method of any of example clauses II to KK, further comprising:

[0242] In response to determining that the start time of the scheduled meeting satisfies the one or more criteria, the real-time meeting object is updated to include a chat icon configured to indicate that recent chat activity associated with the scheduled meeting is available.

[0243] Example clause MM, the method of any one of example clauses II to LL, further comprising: updating the real-time conference object to include a sharing icon, the sharing icon being configured to: when the sharing icon is selected, cause the scheduled conference to be forwarded to the selected participant.

[0244] Example clause NN, the method of any one of example clauses II to MM, further comprising:

[0245] In response to determining that the start time of the scheduled meeting satisfies the one or more criteria, the real-time meeting object is updated to include a recording icon configured to indicate that a recording associated with the scheduled meeting is available for viewing.

[0246] Example clause OO, the method of any one of example clauses II to NN, further comprising:

[0247] Determining that a scheduled meeting is no longer active; and

[0248] In response to determining that the scheduled meeting is no longer active, updating the real-time meeting object to remove controls for joining the scheduled meeting.

[0249] Example clause PP, the method of any of example clauses II to NN, further comprising:

[0250] In response to determining that the start time of the scheduled meeting satisfies the one or more criteria, the real-time meeting object is updated to include a note control configured to indicate that a new note associated with the scheduled meeting has been added.

[0251] Although example clauses JJ to PP are described above with respect to a method, it will be appreciated that in the context of the present disclosure, the subject matter of example clauses JJ to PP may additionally or alternatively be implemented by a system or an apparatus.

[0252] Sample Clause QQ, a system comprising:

[0253] Unit for 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 periods;

[0254] means for presenting a representation of the scheduled meetings in at least one of the time periods;

[0255] A unit for determining that the start time of a scheduled meeting is within a threshold time;

[0256] means for converting a representation of the scheduled meeting into a real-time meeting object within the calendar view in response to determining that the start time of the scheduled meeting is within a threshold time, wherein the real-time meeting object includes a control for joining the scheduled meeting;

[0257] means for receiving, via the control, input data indicative of a selection of the control; and

[0258] Means for causing the collaboration application to join the scheduled meeting in response to input data.

[0259] The system of sample clauses RR and QQ also includes:

[0260] Means for updating the real-time meeting object to visually indicate an elapsed time of the scheduled meeting in response to determining that the start time of the scheduled meeting is within a threshold time.

[0261] Example clause SS, the system of any of example clauses QQ to RR, further comprising:

[0262] A cell for updating the real-time meeting object to visually indicate that the scheduled meeting is within the threshold time in response to determining that the start time of the scheduled meeting is within the threshold time.

[0263] Example clause TT, the system of any of example clauses QQ to SS, further comprising:

[0264] The meeting used to finalize the schedule is no longer a unit of activity; and

[0265] Means for updating a real-time conference object to remove controls for joining the scheduled conference in response to determining that the scheduled conference is no longer active.

[0266] Although example 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 example 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 computer-executable instructions encoded thereon, the computer-executable instructions being used to cause the one or more data processing units to perform the following operations: presenting a representation of a calendar view on a user interface (UI), the calendar view indicating one or more calendar days, the calendar days comprising a time span including a plurality of sequential time periods; presenting, within the calendar view including the time span encompassing the plurality of sequential time periods, a representation of a calendar event indicative of a scheduled meeting in at least one of the sequential time periods, wherein the scheduled meeting is presented without an icon or button operative to provide an interactive control for joining the scheduled meeting; the meeting to finalize the arrangements has taken place; and In response to determining that the scheduled meeting has begun, updating the representation of the calendar event within the calendar view by adding a visual indication to the representation of the calendar event within the calendar view when the calendar view is presented, wherein the visual indication includes additional information indicating the current status of the scheduled meeting while the meeting is in progress, and wherein the visual indication is provided without joining the scheduled meeting.

2. The system according to claim 1, wherein: The instructions further cause the one or more data processing units to perform the following operations: An icon or button is added, the icon or button being operable to provide an interactive control for joining the scheduled meeting, the icon or button having at least a selectable area configured to indicate that the scheduled meeting is to be joined.

3. The system according to claim 2, wherein: The instructions further cause the one or more data processing units to perform the following operations: receiving, via the interactive control, input data indicative of activation of the interactive control; and In response to the input data, causing the collaboration application to join the scheduled meeting.

4. The system according to claim 1, wherein: The instructions further cause the one or more data processing units to perform the following operations: determining that the scheduled meeting is no longer active; and In response to determining that the scheduled meeting is no longer active, updating the representation of the calendar event on the UI to remove a status indication when the calendar view is presented.

5. The system according to claim 1, wherein: The instructions further cause the one or more data processing units to perform the following operations: determining that the scheduled meeting is no longer active; and In response to determining that the scheduled meeting is no longer active, when the calendar view is presented, updating the representation of the calendar event to visually indicate that the scheduled meeting is no longer active.

6. The system according to claim 1, wherein: The visual indication visually indicates one or more participants that have joined the scheduled meeting.

7. The system according to claim 1, wherein: The visual indication visually indicates a real-time image of the scheduled meeting.

8. The system according to claim 1, wherein: The visual indication includes a preview icon configured to initiate a preview of recent messages associated with the scheduled meeting.

9. The system according to claim 1, wherein: The visual indication includes a file icon configured to indicate that a new file associated with the scheduled meeting has been added.

10. The system according to claim 1, wherein: The visual indication includes a note icon configured to indicate that a new note associated with the scheduled meeting has been added.

11. The system according to claim 1, wherein: The visual indication is used to indicate the identity and number of attendees that have joined the scheduled meeting.

12. A method 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 days comprising a time span including a plurality of sequential time periods; presenting, within the calendar view including the time span encompassing the plurality of sequential time periods, a representation of a scheduled meeting in at least one of the sequential time periods, wherein the scheduled meeting is presented without an interactive control for joining the scheduled meeting; the meeting to finalize the arrangements has taken place; and In response to determining that the scheduled meeting is ongoing in real time, updating the representation of the scheduled meeting within the calendar view by adding a visual indication to the representation of the scheduled meeting within the calendar view while the calendar view is presented, wherein the visual indication includes additional information indicating a current status of the scheduled meeting while the meeting is ongoing, and wherein the visual indication is provided without joining the scheduled meeting.

13. The method according to claim 12, wherein: The visual indication includes a whiteboard icon configured to indicate that a new whiteboard has been added in association with the scheduled meeting.

14. The method according to claim 12, wherein: The visual indication includes a chat icon configured to indicate that recent chat activity associated with the scheduled meeting is available.

15. The method according to claim 12, wherein: The visual indication includes a share icon configured to cause the scheduled meeting to be forwarded to selected participants when the share icon is selected.

16. The method according to claim 12, wherein: The visual indication includes a recording icon configured to indicate that a recording associated with the scheduled meeting is available for viewing.

17. The method according to claim 12, further comprising: Determining that said scheduled meeting is no longer active; In response to determining that the scheduled meeting is no longer active, updating a representation of the scheduled meeting on the UI to remove a status indication; and In response to determining that the scheduled meeting is no longer active, updating the representation of the scheduled meeting to include a recording icon configured to indicate that a recording associated with the scheduled meeting is available for viewing.

18. 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 sequential time periods; means for presenting, within the calendar view including the time span encompassing the plurality of sequential time periods, a representation of a scheduled meeting in at least one of the sequential time periods, wherein the scheduled meeting is presented without an interactive control for joining the scheduled meeting; Units used to determine that a scheduled meeting has started; and Unit for updating a representation of the scheduled meeting within the calendar view by adding a visual indication to the representation of the scheduled meeting within the calendar view when the calendar view is presented, in response to determining that the scheduled meeting has begun, wherein the visual indication includes additional information indicating a current status of the scheduled meeting while the meeting is ongoing, and wherein the visual indication is provided without joining the scheduled meeting.

19. The system of claim 18, further comprising: Means for updating a representation of the scheduled meeting to visually indicate an elapsed time of the scheduled meeting in response to determining that the meeting has begun.

20. The system of claim 18, further comprising: Means for updating, in response to determining that the meeting satisfies one or more criteria, a representation of the scheduled meeting to visually indicate that the scheduled meeting satisfies the one or more criteria.

21. The system of claim 18, further comprising: The meeting used to determine said arrangements is no longer an active unit; as well as Means for updating, on the UI, a representation of the scheduled meeting to remove a status indication in response to determining that the scheduled meeting is no longer active.