English:
[0001] Embodiments described herein relate to electronic scheduling assistants, and, in particular methods and systems for displaying different categories of participants for a calendar event, such as a meeting, separately within a scheduling assistant.
[0002] Some electronic calendar applications present one or more user interfaces, often called an electronic scheduling assistant, that aid a user in scheduling a calendar event, such as meeting. For example, when a user (an organizer) creates a meeting and selects a plurality of participants to invite to the meeting, an electronic scheduling assistant may aggregate the schedules of each of the plurality of participants and display the aggregated schedule to the organizer so that the organizer can select a time for the meeting that works for each participant invited the meeting. However, in situations where the meeting attendance of one or more participants is optional, displaying the aggregated schedule for each participant within the electronic scheduling assistant makes it difficult for the organizer to determine if there is a time where each participant who is required to attend the meeting is available regardless of whether other participants, who attendance is optional, are available.
[0003] Therefore, embodiments described herein provide an electronic scheduling assistant within an electronic calendaring application that generates, for each of a plurality of categories of participants, an aggregated schedule for the category that identifies the schedules of participants included in the category. Thus, using the separate aggregated schedules, an organizer can easily determine when, for example, all participants associated with one category (for example, a“required category”) are available for an event (regardless of the availability of participants in other categories). Dividing participants into a plurality of categories and generating an aggregated schedule for each of the categories allows organizers to more quickly and easily schedule events. Also, in some embodiments, the electronic scheduling assistant described herein collapses an aggregated schedule for a particular category to provide a single schedule entry, which further simplifies the user interfaces provided via the electronic scheduling assistant and improve user efficiency and resource usage.
[0004] In particular, one embodiment provides a system for providing electronic scheduling assistance. The system includes an electronic computing device including an electronic processor. The electronic processor is configured to retrieve a category assigned from a plurality of categories to each of a plurality of participants associated with a calendar event and retrieve a schedule associated with each of the plurality of participants associated with the calendar event. The electronic processor is also configured to aggregate the schedules of each of the plurality of participants assigned to each of the plurality of categories to create an aggregated schedule associated with each of the plurality of categories, and generate and output a user interface for display on a display device, the user interface including the aggregated schedule of each of the plurality of categories in separate regions of the user interface.
[0005] Another embodiment provides a method for providing electronic scheduling assistance. The method includes retrieving, with an electronic processor, a category assigned from a plurality of categories to each of a plurality of participants associated with a calendar event and retrieving, with the electronic processor, a schedule associated with each of the plurality of participants associated with the calendar event. The method also includes aggregating, with the electronic processor, the schedules of each of the plurality of participants assigned to each of the plurality of categories to create an aggregated schedule associated with each of the plurality of categories, the aggregated schedule for each of the plurality of categories including a sub-region for each of the plurality of participants assigned to the category representing a schedule over a period of time, and generating and outputting a user interface for display on a display device, the user interface including the aggregated schedule of each of the plurality of categories in separate regions of the user interface.
[0007] FIG. 1 schematically illustrates a system for providing electronic scheduling assistance according to some embodiments.
[0008] FIG. 2 schematically illustrates a user device included in the system of FIG. 1 according to some embodiments.
[0009] FIG. 3 schematically illustrates a server included in the system of FIG. 1 according to some embodiments.
[0010] FIG. 4 is a flowchart illustrating a method performed by the system of FIG. 1 for providing electronic scheduling assistance according to some embodiments.
[0011] FIGS. 5-6 illustrate a user interface of an electronic scheduling assistant according to some embodiments.
[0012] One or more embodiments are described and illustrated in the following description and accompanying drawings. These embodiments are not limited to the specific details provided herein and may be modified in various ways. Furthermore, other embodiments may exist that are not described herein. Also, the functionality described herein as being performed by one component may be performed by multiple components in a distributed manner. Likewise, functionality performed by multiple components may be consolidated and performed by a single component. Similarly, a component described as performing particular functionality may also perform additional functionality not described herein. For example, a device or structure that is“configured” in a certain way is configured in at least that way, but may also be configured in ways that are not listed. Furthermore, some embodiments described herein may include one or more electronic processors configured to perform the described functionality by executing instructions stored in non-transitory, computer-readable medium. Similarly, embodiments described herein may be implemented as non-transitory, computer-readable medium storing instructions executable by one or more electronic processors to perform the described functionality. As used in the present application,“non-transitory computer- readable medium” comprises all computer-readable media but does not consist of a transitory, propagating signal. Accordingly, non-transitory computer-readable medium may include, for example, a hard disk, a CD-ROM, an optical storage device, a magnetic storage device, a ROM (Read Only Memory), a RAM (Random Access Memory), register memory, a processor cache, or any combination thereof.
[0013] In addition, the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. For example, the use of“including,” “containing,”“comprising,”“having,” and variations thereof herein is meant to encompass the items listed thereafter and equivalents thereof as well as additional items. The terms “connected” and“coupled” are used broadly and encompass both direct and indirect connecting and coupling. Further,“connected” and“coupled” are not restricted to physical or mechanical connections or couplings and can include electrical connections or couplings, whether direct or indirect. In addition, electronic communications and notifications may be performed using wired connections, wireless connections, or a combination thereof and may be transmitted directly or through one or more intermediary devices over various types of networks, communication channels, and connections. Moreover, relational terms such as first and second, top and bottom, and the like may be used herein solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions.
[0014] As described above, in situations where the attendance of some participants in a calendar event, such as a meeting, is optional, displaying the aggregated schedule for each participant of the event makes it difficult for the organizer to determine if there is a time where each participant who is required to attend the event is available even if other participants who are not required to attend are unavailable. Therefore, embodiments described herein provide an electronic scheduling assistant that allows participants to be assigned a category (for example, a required category or an optional category) and uses such category assignments to generate a separate aggregated schedule for each category. The separate aggregated schedules allow an organizer to easily and efficiently determine when, for example, all participants associated with a required category are available for a meeting. Furthermore, by collapsing the aggregated schedule for a particular category, the user interfaces described herein provide a more efficient user interface that allows an organizer to quickly navigate to and select a time for an event.
[0015] FIG. 1 schematically illustrates an example system 100 for providing electronic scheduling assistance. The system 100 illustrated in FIG. 1 includes a server 105 and one or more user devices 110, 115, 120, 125. The server 105 and the user devices 110, 115, may communicate with any number of user devices, and the four user devices 110, 115, 120, 125 illustrated in FIG. 1 are purely for illustrative purposes. Similarly, it should also be understood that the system 100 may include any number of servers and the single server 105 illustrated in FIG. 1 is purely for illustrative purposes. Also, in some embodiments, one of the user devices 110, 115, 120, 125 may communicate with the server 105 through one or more intermediary devices (not shown).
[0016] FIG. 2 schematically illustrates the user device 110 according to some embodiments. The user device 110 is an electronic computing device, such as a desktop computer or terminal, a laptop, a tablet computer, a smart phone, a smart television, a smart whiteboard, a smart wearable, or the like. As illustrated in FIG. 2, the user device includes an electronic processor 200 (for example, a microprocessor, application-specific integrated circuit (ASIC), or another suitable electronic device), a memory 205 (a non- transitory, computer-readable storage medium), and a communication interface 210, such as a transceiver, for communicating over the communication network(s) 130 and, optionally, one or more additional communication networks or connections. The communication interface 210 allows the user device 110 to communicate with the server 105 over the communication network(s) 130.
[0018] The electronic processor 200 is configured to execute instructions (for example, stored in the memory 205) to perform various functionality. For example, in the embodiment illustrated in FIG. 2, the memory 205 includes a client application 225 that allows the user device 110 to communicate with the server 105 and, in particular, access the electronic scheduling assistance provided via the server 105 as described herein. For example, in some embodiments, the client application 225 includes a browser application, such as Internet Explorer® provided by Microsoft Corporation, configured to access the electronic scheduling assistance described herein. In other embodiments, the client application includes an electronic calendaring application, such as Outlook® provided by Microsoft Corporation, configured to access the electronic scheduling assistance described herein.
[0019] It should be understood that the user device 110 may include additional components than those illustrated in FIG. 2 in various configurations and may perform additional functionality than the functionality described herein. For example, in some embodiments, the user device 110 includes multiple electronic processors, multiple memories, multiple communication interfaces, multiple input devices, multiple output devices, or a combination thereof. Also, it should be understood that, although not described or illustrated herein, the user devices 115, 120, 125 may include similar components and perform similar functionality as the user device 110. Additionally, while embodiments below are described with regards to the user device 110, the embodiments described below may similarly be performed by any user device included in the system 100.
[0020] FIG. 3 schematically illustrates the server 105 according to some embodiments. As illustrated in FIG. 3, the server 105 is an electronic computing device that includes an electronic processor 300 (for example, a microprocessor, application-specific integrated circuit (ASIC), or another suitable electronic device), a memory 305 (a non-transitory, computer-readable storage medium), and a communication interface 310, such as a transceiver, for communicating over the communication network(s) 130 and, optionally, one or more additional communication networks or connections. The electronic processor 300, the memory 305, and the communication interface 310 communicate wirelessly, over one or more communication lines or buses, or a combination thereof. It should be understood that the server 105 may include additional components than those illustrated in FIG. 3 in various configurations and may perform additional functionality than the functionality described herein. Furthermore, the functionality described herein as being performed by the server 105 may be performed in a distributed nature, such as via a plurality of servers or similar devices included in a cloud computing environment.
[0021] The electronic processor 300 is configured to execute instructions (for example, stored in the memory 305) to perform various functionality. For example, in the embodiment illustrated in FIG. 3, the memory 305 includes an electronic scheduling assistant 315 that is configured to, when executed by the electronic processor 300, perform the functionality described herein. For example, as described in more detail below, the electronic scheduling assistant 315 generates and outputs user interfaces that include an aggregated schedule for participants of a calendar event assigned to a particular category. As used in the present application, a“calendar event” may include a meeting, a conference call, a conference or presentation, a task, or any other type of event that is associated with a time (for example, a date and a time and potentially a duration) and multiple participants. Also, as used in the present application, a“participant” of a calendar event may include an individual, a group of individuals (such as a department at an organization), a location, such as a conference room, or another resource associated with event, such as, for example, audio/visual equipment, catering services, or the like. In some embodiments, the electronic scheduling assistant 315 is a stand-alone software application and, in other embodiments, the electronic scheduling assistant is integrated in a larger software application, such as an electronic calendaring application (for example, Outlook® provided by Microsoft Corporation).
[0022] As illustrated in FIG. 3, in some embodiments, the memory 305 also stores one or more schedules 320, wherein each schedule 320 is associated with a participant. It should be understood that, in some embodiments, the schedules 320 are stored in a separate memory from the electronic scheduling assistant 315 or, in some embodiments, in a separate computing device from the server 105.
[0023] Each schedule 320 represents one or more events associated with a participant, including, for example, the dates, times, and durations of each event. The schedules 320 may also include other information for an event, such as a location, a title or description, or the like. It should be understood that the schedules 320 may be organized in various ways. For example, in some embodiments, each participant may be associated with a set of events (resulting in the storage of a separate set of events for each participant). However, alternatively or in addition, a set of events may be stored, wherein each event is associated with one or more participants (resulting in the storage of a single set of events).
[0025] The schedules 320 are updated as calendar event are created, accepted, declined, or the like. For example, when a new calendar event is created by an organizer and sent to a participant, the schedule 320 of the organizer can be updated to mark the time associated with the new calendar event as being unavailable and the schedule 320 of the participant can be updated to mark the time associated with the new calendar event as being unavailable. In some embodiments, the time associated with the new calendar event within the participant’s schedule can be initially marked as being tentatively unavailable and can be subsequently marked as being unavailable or available depending on whether the participant accepts or declines the event. In some embodiments, the electronic scheduling assistant 315 is configured to update and manage schedules 320. However, alternatively or in addition, a separate application or service may be configured to update the manage the schedules 320 while the electronic scheduling assistant 315 accesses the schedules to generate the user interfaces and associated functionality described herein.
[0026] FIG. 4 illustrates an example method 400 of providing electronic scheduling assistance. The method 400 is described as being performed by the electronic scheduling assistant 315 (as executed by the electronic processor 300). However, it should be understood that method 400 or portions thereof may be performed by other applications or devices. For example, in some embodiments, the method 400 or portions thereof are performed by the client application 225, as executed by the electronic processor 200 included in the user device 110, which is configured to communicate with the server 105. The method 400 is also described as being performed as part of scheduling a new calendar event by an organizer, wherein the organizer has specified a plurality of participants for the calendar event and, optionally, a time or time range for the calendar event. However, it should be understood that the method 400 is also applicable during updating of an existing, already-scheduled calendar event.
[0027] As illustrated in FIG. 4, the method 400 includes, for each of the plurality of participants associated with the calendar event, retrieving a category assigned to the participant from a plurality of available categories (at block 405) and retrieving a schedule associated with the participant (at block 410). In some embodiments, the plurality of available categories includes a required category and an optional category. However, it should be understood that other categories may be used and, in some embodiments, more than two categories may be used. For example, the categories may include a required category, an optional category, and a location category, which designates participants that represent locations or other resources, such as conference rooms, equipment, services, or the like. Similarly, other categories may be used, such as speaker or presenter category, which may indicate that a participant is required to speak or present at the calendar event (as compared to merely attending the event).
[0028] In some embodiments, the organizer selects the category for one or more of the participants of the new calendar event as part of specifying the participants for the new calendar event. For example, as part of creating the calendar event, an organizer may select (via the input device 215 of the user device 110) a category for one or more participants for the event. The selection may be performed via a drop-down selection menu or other mechanisms, such as by dragging and dropping a representation of a participant (for example, an icon) into an areas of a user interface associated with a particular category. Also, as described below with respect to FIG. 5, an organizer can select a category for a participant by adding a participant to different sections of a displayed user interface.
[0029] Alternatively or in addition, a category may be automatically selected for a participant. For example, the required category may be automatically selected for the organizer of the event. Similarly, user roles (for example, whether a participant is a manger of a project), locations, or historical selections may be used to automatically select a category for a participant. Automatically-selected categories may be presented to the organizer for confirmation and updating as needed. For example, in some embodiments, a user can update selected categories within the user interfaces described herein (whether initially selected by the organizer or automatically).
[0030] In some embodiments, the schedule 320 retrieved for a particular participant (at block 410) may include the participant’s entire schedule (all events occurring presenting and in the future). Alternatively, the schedule 320 retrieved for a particular participant of the new calendar event may include timeslots and any associated events representing a particular duration of time. For example, when the organizer specifies a time for the new calendar event, a predetermined time period before the specified time, after the specified time, or both may be retrieved from the schedules 320. Alternatively, the duration of time may be specified by the organizer as part of the creating the new calendar event.
[0031] As illustrated in FIG. 4, the method 400 also includes aggregating the schedules of each participant assigned to each of the plurality of categories to create an aggregated schedule associated with each of the plurality of categories (at block 415) and generating and outputting a user interface for display on a display device, the user interface including the aggregate schedule of each of the plurality of categories in separate regions of the user interface (at block 420).
[0032] For example, FIG. 5 illustrates a user interface 500 including an aggregated schedule for each of a plurality of categories according to some embodiments. In particular, as illustrated in FIG. 5, the user interface 500 includes an aggregated schedule 502 for the required category and an aggregated schedule 504 for an optional category. Each aggregated schedule 502, 504 is displayed in a separate region of the user interface 500. For example, as illustrated in FIG. 5, in some embodiments, the aggregated schedules 502, 504 are displayed in a horizontally-stacked orientation wherein the time slots included in each aggregated schedule are aligned such that time slots representing the same time in each aggregated schedule are aligned horizontally. It should be understood that FIG. 5 illustrates one example orientation of the aggregated schedules and other orientations and configurations are possible, including, for example, a vertically-stacked orientation.
[0033] As illustrated in FIG. 5, each aggregated schedule 502, 504 includes a sub- region for each participant assigned to the category, wherein the sub-region represents a schedule of the participant over a period of time. In particular, the aggregated schedule 502 includes a sub-region 515 displaying a schedule for John Smith, a sub-region 520 displaying a schedule for Joe Cool, a sub-region 525 displaying a schedule for Jane Smith, a sub-region 530 displaying a schedule for Dave Smith, and a sub-region 535 displaying a schedule for Jane Smith, all of whom have been set as required participants.
[0034] As illustrated in FIG. 5, in some embodiments, a participant may be added to the plurality of participants associated with a category using the user interface 500. For example, the user interface 500 includes a selectable add required attendee option 550, which a user can select to enter an identifier of a participant, such as a name from a drop down menu populated with the organizer’s contacts, a directory of users associated with an entity, or the like. When adding a participant using the add required attendee option 550, the added participant is automatically set as a required participant (without requiring a separate selection by the user). Similarly, the user interface 500 also includes a selectable add optional attendee option 555, which a user can select to add additional potential participants to the new calendar event. Accordingly, in some embodiments, after entering a potential date and time for a new calendar event, the organizer can use the user interface 500 to add and categorize participants for the new calendar event. As participants are added using these options 550, 555, the aggregated schedules 502, 504 can be updated to add a sub-region for the added participant. In some embodiments, the organizer can also drag and drop one or more participants (particular sub-regions) from one category or another within the user interface 500. Similarly, in some embodiments, the organizer can drag and drop an entire category of participants to another category, such as by dragging multiple sub-regions within an aggregated schedule for a category or a single, combined sub-region for a category as described below with respect to FIG. 6.
[0035] In some embodiments, the electronic scheduling assistant 315 is also configured to individually collapse an aggregated schedule of a category into a single sub- region representing the combined schedule for all participants assigned to a category one of the plurality of categories. For example, as illustrated in FIG. 5, the user interface 500 includes a user-selectable collapse option 505 associated with the aggregated schedule 502 (required category) and a user-selectable collapse option 510 associated with the aggregated schedule 504 (optional category). When the user-selectable collapse option 505 is selected, the electronic scheduling assistant 315 replaces the aggregated schedule 502 with a single sub-region that represents a combined schedule of all the required participants. In particular, instead of displaying the separate sub-regions 515, 520, 525, 530, and 535 as illustrated in FIG. 5, the electronic scheduling assistant 315 displays a single sub-region 605 as illustrated in the user interface 600 of FIG. 6. Although not described herein, selecting the user-selectable collapse option 510 similarly replaces the aggregated schedule 504 with a single sub-region for the optional category as described herein for the required category.
[0036] For example, as illustrated in FIG. 5, the sub-regions 515, 520, 525, 530, 535 indicate that the required participants Joe Smith, Joe Cool, Jane Smith, Dave Smith, and Deb Smith are all available only from 12:30 PM to 1 PM. Therefore, the single sub-region 605 illustrated in FIG. 6 for the required category indicates that the participants associated with required category are available from 12:30 PM to 1 PM (the time slots associated with this duration are marked as being available). Similarly, since at least one of the required participants are unavailable (including tentatively unavailable) during the other time slots, the remaining, other time slots included in the sub-region 605 are marked as being unavailable. Accordingly, the collapsed single sub-region 605 represents a plurality of time slots similar to the aggregated schedule 502 but each of the plurality of time slots included in the sub-region 605 is marked as an available time slot or an unavailable time slot based on whether all of the required participants are collectively available or unavailable. In other words, a time slot included in the sub-region 605 is marked as an available time slot in response the schedule retrieved for each participant assigned to the required category having the time slot marked as an available time slot and, alternatively, is marked as an available time slot in response the schedule retrieved for at least one participant assigned to the required category having the one of the plurality of time slots marked as an unavailable time slot. It should be understood that other ways of combining the schedules for the single sub-region 605 may be used, such as by considering whether a majority of participants are available or unavailable or marking timeslots as tentatively unavailable if any participant has the time slot marked as tentatively unavailable.
[0037] The electronic scheduling assistant 315 may also be configured to individually expand a single sub-region representing the combined schedule for all participants assigned to one category back into the aggregated schedule for the category. For example, in some embodiments, as illustrated in FIG. 6, when a single sub-region for a category is displayed, the user-selectable collapse option may convert to a user-selectable expand option. However, in other embodiments, separate options (selection mechanisms) may be used.
[0038] As illustrated in FIG. 6, in some embodiments, only a maximum number of single participants from a category may be allowed for a calendar event. For example, a location category may include a set of potential locations for the event and aggregated and combined (collapsed) schedules can be provided for this category of participants. in some embodiments, a location may be automatically selected based on various factors, such as, for example, size, proximity to one or more participants, duration of the event, historical usage of the location, or the like. Also, in some embodiments, radio buttons provided for participants within a particular category may be used to include and exclude a participant from a category (without having to completely remove and subsequently re-add a participant). Accordingly, an organizer can use such buttons to see aggregate or combined schedules based on different subsets of various categories to identify an optimal time for an event.
[0039] As also illustrated in FIGS. 5 and 6, in some embodiments, one or more participants associated with an event may not be associated with a category. For example, in the example user interface 500 and the example user interface 600, the participant Northwind Traders is not associated with a category. These participants may be displayed as part of a default“un-assigned” category and can be associated with an aggregated schedule and collapsed single sub-region (combined schedule) as described above for other categories.
[0040] As also illustrated in FIGS. 5 and 6, in some embodiments, a user can selectively enable and disable the separation of participants by category by selecting an all attendees option 545. In particular, when this option 545 is selected, the separate aggregated schedules for each category are removed and separate sub-regions for each participant may be provided as described herein without grouping or other categorizing participants.
[0041] It should be understood that although the electronic scheduling assistant 315 is described herein as being executed and provided via the server 105 (as part of a hosted service or application), in some embodiments, the functionality described herein with respect to the assistant 315 (or a portion thereof) may be performed via the client application 225 executed via the electronic processor 200 of the user device 110. For example, in some embodiments, the client application 225 may be configured generate and output the user interfaces described herein but may communicate with the server 105 (or other servers or devices) to access the schedules 320 used to generate the user interfaces. Also, in some embodiments, the schedules 320 or a portion thereof may be stored locally at the user device 110, which may allow the user device 110 to generate and output the user interfaces described herein and the associated functionality without the need to access an external device, such as the server 105.
[0042] Various features and advantages of some embodiments are set forth in the following claims.

中文:
[0001]本文描述的实施例涉及电子调度助理,并且具体地涉及用于在调度助理内分开地显示针对日历事件(诸如会议)的不同类别的参与者的方法和系统。
[0002]一些电子日历应用呈现一个或多个用户界面,用户界面通常被称为电子调度助理,其帮助用户调度诸如会议的日历事件。例如,当用户(组织者)创建会议并且选择要邀请来参加会议的多个参与者时,电子调度助理可以聚合多个参与者中的每个参与者的日程,并且将经聚合的日程显示给组织者,以使得组织者可以选择用于会议的时间,该时间适合被邀请参加会议的每个参与者。但是,在一个或多个参与者的会议出席是可选的情形中,在电子调度助理中显示每个参与者的经聚合的日程使组织者难以确定是否存在需要出席会议的每个参与者有可用的时间而不管可选出席的其他参与者是否有空闲。
[0003]因此,本文描述的实施例在电子日历应用内提供电子调度助理,其针对多个类别的参与者中的每个类别的参与者生成针对类别的经聚合的日程,该经聚合的日程标识包括在该类别中的参与者的日程。因此,使用分开的经聚合的日程,组织者可以轻松确定例如何时与一个类别(例如,“必需类别”)相关联的所有参与者都可以参加某个事件(无论其他类别中的参与者是否有空)。将参与者划分成多个类别并且针对类别中的每个类别生成经聚合的日程允许组织者更快速并且容易地调度事件。此外,在一些实施例中,本文描述的电子调度助理折叠针对特定类别的经聚合的日程以提供单个日程条目,这进一步简化了经由电子调度助理所提供的用户界面并且提高了用户效率和资源使用。
[0004]特别地,一个实施例提供了一种用于提供电子调度辅助的系统。该系统包括:包括电子处理器的电子计算设备。电子处理器被配置为取回从多个类别被分配给与日历事件相关联的多个参与者中的每个参与者的类别,并且取回关联于与日历事件相关联的多个参与者中的每个参与者的日程。电子处理器还被配置为:聚合被分配给多个类别中的每个类别的多个参与者中的每个参与者的日程,以创建与多个类别中的每个类别相关联的经聚合的日程,以及生成和输出用于在显示设备上显示的用户界面,该用户界面包括在用户界面的分开的区域中的多个类别中的每个类别的经聚合的日程。
[0005]另一实施例提供了一种用于提供电子调度辅助的方法。该方法包括:使用电子处理器取回从多个类别被分配给与日历事件相关联的多个参与者中的每个参与者的类别,以及使用电子处理器取回关联于与日历事件相关联的多个参与者中的每个参与者的日程。该方法还包括:使用电子处理器聚合被分配给多个类别中的每个类别的多个参与者中的每个参与者的日程,以创建与多个类别中的每个类别相关联的经聚合的日程,针对多个类别中的每个类别的经聚合的日程包括针对被分配给该类别的多个参与者中的每个参与者的子区域,该子区域表示一段时间上的日程,以及生成和输出用于在显示设备上显示的用户界面,该用户界面包括在用户界面的分开的区域中的多个类别中的每个类别的经聚合的日程。
[0007]图1示意性地图示了根据一些实施例的用于提供电子调度辅助的系统。
[0008]图2示意性地图示了根据一些实施例的包括在图1的系统中的用户设备。
[0009]图3示意性地图出了根据一些实施例的包括在图1的系统中的服务器。
[0010]图4是图示了根据一些实施例的由图1的系统执行以用于提供电子调度辅助的方法的流程图。
[0011]图5-图6图示了根据一些实施例的电子调度助理的用户界面。
[0012]在以下描述和附图中描述和图示了一个或多个实施例。这些实施例不限于本文提供的具体细节并且可以以各种方式来修改。此外,可以存在本文未描述的其他实施例。另外,本文描述为由一个组件执行的功能可以由多个组件以分布式的方式来执行。同样,由多个组件执行的功能可以被合并并且由单个组件执行。类似地,被描述为执行特定功能的组件也可以执行本文未描述的附加功能。例如,以某种方式“配置”的设备或结构至少以该方式来配置,但是也可能以未列出的方式来配置。此外,本文描述的一些实施例可以包括一个或多个电子处理器,其被配置为通过执行存储在非暂态计算机可读介质中的指令来执行所描述的功能。类似地,本文描述的实施例可以被实现为存储可由一个或多个电子处理器执行以执行所描述功能的指令的非暂态计算机可读介质。如在本申请中使用的,“非暂态计算机可读介质”包括所有计算机可读介质但不包括暂态传播信号。因此,非暂态计算机可读介质可以包括例如硬盘、CD-ROM、光存储设备、磁存储设备、ROM(只读存储器)、RAM(随机存取存储器)、寄存器存储器、处理器缓存或它们的任意组合。
[0013]此外,本文使用的措辞和术语是为了描述的目的并且不应被视为限制。例如,“包括”、“包含”、“含有”、“具有”及其变体在本文中的使用意在涵盖其后列出的项目及其等同物以及附加项目。术语“连接”和“耦合”被广泛使用,并且涵盖直接和间接连接和耦合。此外,“连接”和“耦合”不限于物理或机械连接或者耦合,并且可以包括直接或间接的电连接或耦合。此外,电子通信和通知可以使用有线连接、无线连接或它们的组合来执行,并且可以通过各种类型的网络、通信信道和连接直接传输或通过一个或多个中间设备传输。此外,诸如第一和第二、顶部和底部等等之类的关系术语在本文中可以仅用于将一个实体或动作与另一实体或动作区分开来,而不一定要求或暗示这些实体或动作之间的任何实际的这种关系或顺序。
[0014]如上所述,在诸如会议的日历事件中的一些参与者的出席是可选的情形中,显示针对事件的每个参与者的经聚合的日程使组织者难以确定是否存在这样的时间:每个需要出席事件的参与者都有空闲,即使不需要参加该事件的其他参与者没有空闲。因此,本文描述的实施例提供了一种电子调度助理,其允许参与者被分配类别(例如,必需类别或者可选类别)并且使用这样的类别分配来针对每个类别生成分开的经聚合的日程。分开的经聚合的日程允许组织者轻松有效地确定例如与必需类别相关联的所有参与者何时都有空参加会议。此外,通过折叠特定类别的经聚合的日程,本文描述的用户界面提供了更有效的用户界面,其允许组织者快速导航到事件并且为事件选择时间。
[0015]图1示意性地图示了用于提供电子调度辅助的示例系统100。图1中所图示的系统100包括服务器105和一个或多个用户设备110、115、120、125。服务器105与用户设备110、115、120、125通过一个或多个有线或无线通信网络130通信。无线通信网络130的部分可以使用诸如互联网的广域网、诸如BluetoothTM网络或Wi-Fi的局域网以及它们的组合或衍生物来实现。应当理解,服务器105可以与任意数目的用户设备进行通信,并且图1中所图示的四个用户设备110、115、120、125仅用于说明目的。类似地,还应当理解,系统100可以包括任意数目的服务器,并且图1中所图示的单个服务器105仅用于说明目的。此外,在一些实施例中,用户设备110、115、120、125中的一个用户设备可以通过一个或多个中间设备(未示出)来与服务器105通信。
[0016]图2示意性地图示了根据一些实施例的用户设备110。用户设备110是电子计算设备,诸如台式计算机或终端、笔记本计算机、平板计算机、智能电话、智能电视、智能白板、智能穿戴等。如图2中所图示的,用户设备包括电子处理器200(例如,微处理器、专用集成电路(ASIC)或其他合适的电子设备)、存储器205(非暂态计算机可读存储介质),以及诸如收发器的通信接口210,用于通过(多个)通信网络130和可选的一个或多个附加通信网络或连接进行通信。通信接口210允许用户设备110通过(多个)通信网络130来与服务器105通信。
[0018]电子处理器200被配置为执行(例如,存储在存储器205中的)指令以执行各种功能。例如,在图2中所图示的实施例中,存储器205包括客户端应用225,其允许用户设备110与服务器105通信,并且特别地,访问经由服务器105提供的电子调度辅助,如本文所述。例如,在一些实施例中,客户端应用225包括浏览器应用,诸如由微软公司提供的Internet其被配置为访问本文所描述的电子调度辅助。在其他实施例中,客户端应用包括电子日历应用,诸如由微软公司提供的其被配置为访问本文所描述的电子调度帮助。
[0019]应当理解,用户设备110可以在各种配置中包括除了图2中所图示的那些组件之外的附加组件,并且可以执行比本文描述的功能更多的功能。例如,在一些实施例中,用户设备110包括多个电子处理器、多个存储器、多个通信接口、多个输入设备、多个输出设备或其组合。此外,应当理解,尽管在本文中未描述或图示,但是用户设备115、120、125可以包括与用户设备110类似的组件并且执行类似的功能。此外,虽然以下实施例是关于用户设备110描述的,但是下面描述的实施例可以类似地由系统100中包括的任何用户设备执行。
[0020]图3示意性地图示了根据一些实施例的服务器105。如图3中所图示的,服务器105是电子计算设备,其包括电子处理器300(例如,微处理器、专用集成电路(ASIC)或其他合适的电子设备)、存储器305(非暂态计算机可读存储介质)以及诸如收发器的通信接口310,用于通过(多个)通信网络130和可选的一个或多个附加通信网络或连接进行通信。电子处理器300、存储器305和通信接口310通过一个或多个通信线路或总线或其组合进行无线通信。应当理解,服务器105可以在各种配置中包括除了图3中所图示的那些组件之外的附加组件,并且可以执行比本文描述的功能附加的功能。此外,本文描述为由服务器105执行的功能可以以分布式的性质来执行,诸如经由多个服务器或者被包括在云计算环境中的类似设备。
[0021]电子处理器300被配置为执行(例如,存储在存储器305中的)指令以执行各种功能。例如,在图3中所图示的实施例中,存储器305包括电子调度助理315,其被配置为当由电子处理器300执行时执行本文描述的功能。例如,如下文更详细描述的,电子调度助理315生成并且输出用户界面,该用户界面包括被分配给特定类别的日历事件的参与者的经聚合的日程。如在本申请中使用的,“日历事件”可以包括会议、电话会议、会议或演示、任务或者与时间(例如,日期和时间以及可能的持续时间)和多个参与者相关联的任何其他类型的事件。此外,如在本申请中所使用的,日历事件的“参与者”可以包括个人、群体(诸如组织中的部门)、位置(诸如会议室)或与事件相关联的另一资源,诸如例如音频/视频设备、餐饮服务等。在一些实施例中,电子调度助理315是独立的软件应用,并且在其他实施例中,电子调度助理被集成在更大的软件应用中,例如电子日历应用(例如,由微软公司提供的)。
[0022]如图3中所图示的,在一些实施例中,存储器305还存储一个或多个日程320,其中每个日程320与参与者相关联。应当理解,在一些实施例中,日程320被存储在与电子调度助理315分离的存储器中;或者在一些实施例中,日程320被存储在与服务器105分离的计算设备中。
[0023]每个日程320表示与参与者相关联的一个或多个事件,包括例如每个事件的日期、时间和持续时间。日程320还可以包括针对事件的其他信息,诸如位置、标题或描述,等等。应当理解,可以以各种方式组织日程320。例如,在一些实施例中,每个参与者可以与一组事件相关联(其结果是针对每个参与者存储分开的一组事件)。然而,备选地或附加地,可以存储一组事件,其中每个事件与一个或多个参与者相关联(其结果是存储单独一组事件)。
[0025]随着日历事件被创建、接受、拒绝等,日程320被更新。例如,当新的日历事件由组织者创建并且被发送给参与者时,组织者的日程320可以被更新以将与新的日历事件相关联的时间标记为不可用,并且参与者的日程320可以被更新以将与新的日历事件关联的时间标记为不可用。在一些实施例中,与参与者的日程中的新的日历事件相关联的时间可以最初被标记为暂时不可用,并且可以随后取决于参与者是接受还是拒绝该事件而被标记为不可用或可用。在一些实施例中,电子调度助理315被配置为更新和管理日程320。然而,备选地或附加地,单独的应用或服务可以被配置为在电子调度助理315访问日程的同时更新和管理日程320,以生成本文所描述的用户界面和相关联的功能。
[0026]图4图示了提供电子调度辅助的示例方法400。方法400被描述为由电子调度助理315执行(如由电子处理器300执行)。然而,应当理解,方法400或其部分可以由其他应用或设备来执行。例如,在一些实施例中,方法400或其部分由客户端应用225执行,如由包括在被配置为与服务器105通信的用户设备110中的电子处理器200执行。方法400也被描述为作为由组织者调度新的日历事件的一部分来执行,其中组织者已经为日历事件指定了多个参与者,并且可选地为日历事件指定了时间或时间范围。然而,应当理解,方法400也适用于更新现有的、已调度的日历事件期间。
[0027]如图4中所图示的,方法400包括,对于与日历事件相关联的多个参与者中的每个参与者,从多个可用类别中取回被分配给参与者的类别(在框405处)以及取回与参与者相关联的日程(在框410处)。在一些实施例中,多个可用类别包括必需类别和可选类别。然而,应当理解,可以使用其他类别,并且在一些实施例中,可以使用多于两个类别。例如,类别可以包括必需类别、可选类别和位置类别,其指明表示位置或其他资源(诸如会议室、设备、服务等)的参与者。类似地,可以使用其他类别,诸如演讲者或呈现者类别,这可以指示参与者需要在日历事件处演讲或呈现(与仅仅参加事件相比)。
[0028]在一些实施例中,作为针对新的日历事件指定参与者的一部分,组织者为新日历事件的一个或多个参与者选择类别。例如,作为创建日历事件的一部分,组织者可以(经由用户设备110的输入设备215)为事件的一个或多个参与者选择类别。该选择可以经由下拉选择菜单或其他机制来执行,诸如通过将参与者的表示(例如,图标)拖动并且放到用户界面的、与特定类别相关联的区域中。此外,如下面参考图5所描述的,组织者可以通过将参与者添加到所显示的用户界面的不同部分来为参与者选择类别。
[0029]备选地或附加地,可以为参与者自动选择类别。例如,可以为事件的组织者自动选择必需类别。类似地,用户角色(例如,参与者是否是项目的管理者)、位置或历史选择可以被用来为参与者自动选择类别。可以根据需要将自动选择的类别一被呈现给组织者以供确认和更新。例如,在一些实施例中,用户可以在本文所描述的用户界面内更新所选择的类别(无论由组织者最初选择的还是自动选择的)。
[0030]在一些实施例中,针对特定参与者所取回的日程320(在框410处)可以包括参与者的整个日程(当前存在和将来发生的所有事件)。备选地,针对新的日历事件的特定参与者所取回的日程320可以包括时隙和表示特定持续时间的任何相关联的事件。例如,当组织者针对新的日历事件指定时间时,可以从日程320中取回所指定的时间之前、所指定的时间之后或者以上两者的预定时间段。备选地,作为创建新的日历事件的一部分,持续时间可以由组织者来指定。此外,在一些实施例中,持续时间可以基于新的事件的细节(例如,持续时间、位置、参与者数目等)而变化,或者可以包括静态持续时间,诸如下一天、周或月。
[0031]如图4中所图示的,方法400还包括聚合被分配给多个类别中的每个类别的每个参与者的日程,以创建与多个类别中的每个类别相关联的经聚合的日程(在框415处),以及生成和输出用于在显示设备上显示的用户界面,该用户界面包括在用户界面的分开的区域中的多个类别中的每个类别的经聚合的日程(在块420)。
[0032]例如,图5图示了根据一些实施例的包括用于多个类别中的每个类别的经聚合的日程的用户界面500。特别地,如图5中所图示的,用户界面500包括针对必需类别的经聚合的日程502和针对可选类别的经聚合的日程504。每个经聚合的日程502、504都被显示在用户界面500的分开的区域中。例如,如图5中所图示的,在一些实施例中,经聚合的日程502、504以水平堆叠取向显示,其中每个经聚合的日程中包括的时隙被对齐,以使得表示每个经聚合的日程中的相同时间的时隙被水平对齐。应当理解,图5图示了经聚合的日程的一个示例取向,并且其他取向和配置是可能的,包括例如垂直堆叠取向。
[0033]如图5中所图示的,每个经聚合的日程502、504包括针对被分配给类别的每个参与者的子区域,其中子区域表示参与者在一段时间上的日程。特别地,经聚合的日程502包括显示针对John Smith的日程的子区域515、显示针对Joe Cool的日程的子区域520、显示针对Jane Smith的日程的子区域525、显示针对Dave Smith的日程的子区域530和显示针对Jane Smith日程的子区域535,所有这些人都已经被设置为必需的参与者。
[0034]如图5中所图示的,在一些实施例中,可以使用用户界面500将参与者添加到与类别相关联的多个参与者。例如,用户界面500包括可选择的添加必需的出席者选项550,用户可以选择该选项来录入参与者的标识符,诸如来自填充有组织者的联系人的下拉菜单中的名称、与实体相关联的用户目录等。当使用添加必需的出席者选项550来添加参与者时,所添加的参与者被自动设置为必需的参与者(无需用户单独选择)。类似地,用户界面500还包括可选择的添加可选出席者选项555,用户可以选择该选项以将附加的潜在参与者添加到新的日历事件。相应地,在一些实施例中,在录入针对新的日历事件的潜在日期和时间之后,组织者可以使用用户界面500针对新的日历事件添加参与者并且对其进行分类。当使用这些选项550、555添加参与者时,可以更新经聚合的日程502、504以添加针对所添加的参与者的子区域。在一些实施例中,组织者还可以从用户界面500内的一个类别或另一类别中拖放一个或多个参与者(特定子区域)。类似地,在一些实施例中,诸如通过拖动针对类别的经聚合的日程内的多个子区域或者针对类别的单个的经组合的子区域,组织者可以将参与者的整个类别拖放到另一类别,如下面参考图6所描述的。
[0035]在一些实施例中,电子调度助理315还被配置为单独地将类别的经聚合的日程折叠成单个子区域,该子区域表示针对被分配给多个类别中的一个类别的所有参与者的经组合的日程。例如,如图5中所图示的,用户界面500包括与经聚合的日程502(必需类别)相关联的用户可选折叠选项505和与经聚合的日程504(可选类别)相关联的用户可选折叠选项510。当用户可选折叠选项505被选择时,电子调度助理315利用表示所有必需的参与者的经组合的日程的单个子区域替换经聚合的日程502。具体地,代替显示如图5中所图示的分开的子区域515、520、525、530和535,电子调度助理315显示如图6的用户界面600中所图示的单个子区域605。虽然在本文中没有描述,但是选择用户可选折叠选项510类似地利用针对可选类别的单个子区域来替换经聚合的日程504,如本文针对必需类别所描述的。
[0036]例如,如图5中所图示,子区域515、520、525、530、535指示必需的参与者JoeSmith、Joe Cool、Jane Smith、Dave Smith和Deb Smith都只从下午12:30到下午1点有空闲。因此,针对必需类别在图6中所图示的单个子区域605指示与必需类别相关联的参与者从下午12:30到下午1点之间有空闲(与此持续时间相关联的时隙被标记为可用)。类似地,由于至少一个必需的参与者在其他时隙期间没有空闲(包括暂时不可用),因此子区域605中包括的剩余的其他时隙被标记为不可用。因此,经折叠的单个子区域605表示类似于经聚合的日程502的多个时隙,但是包括在子区域605中的多个时隙中的每个时隙基于所有必需的参与者是共同地有空闲还是没有空闲而被标记为可用时隙或不可用时隙。换句话说,响应于针对被分配给必须类别的每个参与者所取回的日程将时隙标记为可用时隙,子区域605中所包括的该时隙被标记为可用时隙;以及备选地,响应于针对被分配给必需类别的至少一个参与者所取回的日程将多个时隙中的一个时隙标记为不可用时隙,该时隙被标记为不可用时隙。应当理解,可以使用其他方式组合单个子区域605的日程,例如通过考虑大多数参与者是否有空闲或没有空闲,或者如果任何参与者将时隙标记为暂时不可用则将时隙标记为暂时不可用。
[0037]电子调度助理315还可以被配置为单独地将表示针对被分配给一个类别的所有参与者的经组合的日程的单个子区域展开回针对该类别的经聚合的日程中。例如,在一些实施例中,如图6中所图示,当显示针对类别的单个子区域时,用户可选折叠选项可以转换为用户可选展开选项。然而,在其他实施例中,可以使用分开的选项(选择机制)。
[0038]如图6中所图示的,在一些实施例中,对于日历事件可以仅允许来自类别的最大数目的单个参与者。例如,位置类别可以包括针对事件的一组潜在位置,并且可以为此类参与者提供经聚合的日程和经组合(经折叠)的日程。然而,为了调度事件,可以选择位置中的仅一个位置并且用户可以使用例如所显示的单选按钮通过用户界面600进行该选择。然而,在其他实施例中,当新的日历事件被保存或批准时,组织者可以在分开的用户界面(诸如弹出窗口)上选择单个位置。备选地或附加地,当位置类别中的位置中的仅一个位置针对事件的指定时间可用时,可以为事件自动选择该位置(无需组织者选择)。此外,在一些实施例中,可以基于各种因素自动选择位置,因素诸如例如大小、与一个或多个参与者的接近度、事件的持续时间、位置的历史使用等。此外,在一些实施例中,为特定类别内的参与者所提供的单选按钮可以被用来从类别中包括和排除参与者(无需完全移除以及随后重新添加参与者)。相应地,组织者可以使用这样的按钮来查看基于各种类别的不同子集的经聚合或经组合的日程,以标识针对事件的最佳时间。
[0039]还如图5和图6中所图示的,在一些实施例中,与事件相关联的一个或多个参与者可能不与类别相关联。例如,在示例用户界面500和示例用户界面600中,参与者NorthwindTraders不与类别相关联。这些参与者可以被显示为默认“未分配”类别的一部分,并且可以与针对其他类别如上所描述的经聚合的日程和经折叠的单个子区域(经组合的日程)相关联。
[0040]还如图5和图6中所图示的,在一些实施例中,用户可以通过选择所有出席者选项545来选择性地启用和禁用按类别对参与者的分离。具体地,当选择该选项545时,针对每个类别的单独的经聚合的日程被移除并且可以如本文所描述的提供针对每个参与者的分开的子区域,而无需对参与者进行分组或其他分类。
[0041]应当理解,虽然电子调度助理315在本文中被描述为经由服务器105(作为所托管的服务或应用的一部分)而被执行和提供,但是在一些实施例中,本文关于助理315描述的功能(或其一部分)可以通过经由用户设备110的电子处理器200所执行的客户端应用225来执行。例如,在一些实施例中,客户端应用225可以被配置为生成和输出本文描述的用户界面,但是可以与服务器105(或其他服务器或设备)通信以访问用于生成用户界面的日程320。此外,在一些实施例中,日程320或其一部分可以被本地存储在用户设备110处,这可以允许用户设备110生成和输出本文描述的用户界面和相关联的功能而无需访问外部设备,诸如服务器105。
[0042]在以下权利要求中阐述了一些实施例的各种特征和优点。