Patent Publication Number: US-2021184876-A1

Title: Automatic conference management tool

Description:
BACKGROUND 
     To organize a teleconference or a video conference, an organizer of the conference provides information such as the conference date, time, location, and the subject of the conference. The organizer may also identify participants to attend the conference and the conference information is sent to the participants (e.g., via an electronic mail). Additionally, or alternatively, an organizer of the conference may log onto a conferencing platform via a user device at the desired time to communicate with other participants without scheduling a conference ahead of time. To maximize participation, the organizer of the conference must correspond with multiple participants, which can be a tedious process that requires much time and coordination. This process can become more complex as additional participants are invited to the conference. By streamlining the process for scheduling a conference and enabling participants to join the conference, a better user experience may be provided to the organizer and the participants. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The detailed description is described with reference to the accompanying figures, in which the leftmost digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different figures indicates similar or identical items. 
         FIG. 1  illustrates example network architecture for implementing a conference management tool to start, schedule, and manage conferences using one or more communication channels. 
         FIG. 2  is a block diagram showing various components of an illustrative user device that implements a conference management application. 
         FIG. 3  is a block diagram showing various components of an illustrative conference management device that is configured to provide a conference code that can be associated with conference information. 
         FIG. 4  is a block diagram showing various components of an illustrative server for scheduling and managing conferences. 
         FIG. 5  illustrates example architecture for implementing a chatbot to schedule and manage conferences. 
         FIG. 6  is a flow diagram of an example process for scheduling a conference. 
         FIG. 7  is a flow diagram of an example process for updating conference information and initiating a conference. 
     
    
    
     DETAILED DESCRIPTION 
     This disclosure is directed to techniques for organizing teleconferences and video conferences. In some aspects, the techniques may implement a teleconferencing and/or videoconferencing system that includes a conference management server. The conference management server is configured to communicate with a user device to receive scheduling requests and to provide notifications to participants of a scheduled conference. The user device may include a locally installed conference management application that may facilitate sending a scheduling request to the conference management server via a communication channel, wherein the communication channel can include text message, email, phone, or chatbot. The scheduling request may include the desired date, time, location, a conference subject, and an identification of at least one participant. 
     In another embodiment, a user device may interact with a kiosk to schedule a conference via a locally installed conference management application. The kiosk may communicate the scheduling request to a conference management server, which in turn may make calendar associations on a calendar that is associated with a user account of a user operating the user device. In one example, the user may set up a user account using the conference management application. The conference management server may provide conference notifications to at least one participant in the conference. 
     In some aspects, the conference management server may provide conference notifications to the kiosk. Upon receiving the conference notifications, the kiosk may generate a unique conference code that is associated with conference information. The conference code may be various types of computer-readable code that may be entered or scanned via a user device. To initiate or attend the conference, a participant may enter or scan the generated code in the conference management application. In response, the user device may establish communication with additional user devices via a communication channel in a conference. For example, the conference code may be linked to a virtual chatroom in which users can engage in a chat session via text or short message service (SMS). 
     In various embodiments, a kiosk may provide a user interface such as a touchpad or a touch screen display and/or a web-based user interface for receiving user input (e.g., a scheduling request) and provide information such as a unique conference code that may be associated with conference information. A participant of a conference may enter the code in a conference management application using a user device to organize a conference, manage a conference, and/or to retrieve information about a conference. In one example, entering or scanning the conference code may initiate a short message system (SMS) conversation or a chat session with a chatbot to provide virtual assistance to the participant. The chatbot may assist the participant with scheduling a conference, inviting participants, modifying the conference, notifying participants, and/or so forth. In another example, the conference code may be linked to an event website from which the user may obtain details about the conference. 
     In various embodiments, the kiosk may be configured to detect the presence (e.g., via Bluetooth) of a user device that is located within a predetermined distance of the kiosk. In response to determining that the user device is located within the predetermined distance, the kiosk may verify that the user device is associated with contact information of a participant of a conference. Upon verification, the kiosk may send the conference code to the user device and the user device may provide a push notification to prompt the user to initiate or join the conference that is associated with the conference code. 
     The techniques described herein may be implemented in a number of ways. Example implementations are provided below with reference to the following figures. 
     Example Network Architecture 
       FIG. 1  illustrates an example architecture of a wireless communication network  100  in accordance with various aspects of this disclosure. The wireless communication network  100  may include one or more user devices  102 ( 1 )- 102 (N). The user devices  102 ( 1 )- 102 (N) may include smartphones, mobile devices, personal digital assistants (PDAs), gaming consoles, voice-activated virtual assistants, television receivers, and/or other electronic devices having a wireless communication function that are capable of receiving input, processing the input, and generating output data. 
     The user devices  102 ( 1 )- 102 (N) are configured to communicate with an access network (e.g., the RAN  106 , an access point  108 , etc.) over a physical communications interface or layer, shown in  FIG. 1  as air interfaces  104 ( 1 )- 104 (N) and/or a direct-wired connection. In some aspects, the air interface  104 ( 1 ) can comply with a given cellular communications protocol (e.g., 2G, 3G, 4G, and long-term evolution [LTE], LTE advanced, high-speed data packet access [HSDPA], evolved high-speed packet access [HSPA+], universal mobile telecommunication system [UMTS], code-division multiple access [CDMA], global system for mobile communications [GSM], etc.), while the air interface  104 ( 2 ) can comply with a wireless IP protocol (e.g., Wi-Fi, IEEE 802.11). The RAN  106  includes a plurality of access points that serve user devices  102 ( 1 )- 102 (N) over air interfaces  104 ( 1 )- 104 (N). The access points in the RAN  106  can be referred to as access nodes or ANs, access points or APs, base stations or BSs, Node Bs, eNode Bs, and so on. These access points can be terrestrial access points (or ground stations), or satellite access points. The RAN  106  is configured to connect to a core network  110  that can perform a variety of functions, including bridging circuit-switched (CS) calls between user devices  102 ( 1 )- 102 (N) served by the RAN  106  and other user devices  102 ( 1 )- 102 (N) served by the RAN  106  or a different RAN altogether, and can also mediate an exchange of packet-switched (PS) data with external networks such as Internet  112 . The Internet  112  includes a number of routing agents and processing agents (not pictured). In  FIG. 1 , the user device  102 (N) is shown as connecting to the Internet  112  directly (i.e., separate from the core network  110 , such as over an Ethernet connection of a Wi-Fi or an IEEE 802.11-based network). The Internet  112  can thereby function to bridge packet-switched data communications between the user device  102 (N) and user devices  102 ( 1 ) and  102 ( 2 ) via the core network  110 . 
     The access point  108  may be separate from the RAN  106 . The access point  108  may be connected to the Internet  112  independent of the core network  110  (e.g., via an optical communication system such as FiOS, a cable modem, etc.). The air interface  104 ( 2 ) may serve the user device  102 ( 1 ) over a local wireless connection, such as IEEE 802.11. Any of the user devices  102 ( 1 )- 102 (N) may be a desktop computer with a direct wired connection to the Internet  112 , such as a direct connection to a modem or router, which can correspond to the access point  108  in an example (e.g., for a Wi-Fi router with both wired and wireless connectivity). 
     The core network  110  is configured to support one or more communication services (e.g., Voice-over-Internet Protocol (VoIP)) sessions, Push-to-Talk (PTT) sessions, group communication sessions, social networking services, etc.) for user devices  102 ( 1 )- 102 (N) that can connect to the core network  110  via the RAN  106  and/or via the Internet  112 , and/or to provide content (e.g., web page downloads) to the user devices  102 ( 1 )- 102 (N). 
     One or more of the various user devices  102 ( 1 )- 102 (N) in  FIG. 1  may include a locally installed conference management application  122 . In other aspects, the conference management application  122  is network or web-based. The conference management application  122  may support various teleconferencing and/or video conferencing functionalities. For example, the conference management application  122  may enable users to schedule a conference, request a conference, invite participants, initiate a conference, join a conference, leave a conference, terminate a conference, and/or so forth. The conference management application  122  may also provide group chat functions, calendar synchronization, address book synchronization, collaboration functions, presentation mode, screen share, virtual whiteboard, notes, and/or so forth. 
     Additionally, or alternatively, the conference management application may be installed in an interactive kiosk  114 . The kiosk  114  can comprise general-purpose computers such as desktop computers, tablet computers, laptop computers, servers (e.g., on-premise servers), workstations, network appliances, Internet appliances, personal digital assistant (PDA), smartphone, television system, or other electronic devices that are capable of receiving input, processing the input, and generating output data. The kiosk  114  may also be teleconferencing and/or videoconferencing systems for facilitating audio and/or video communications. In various embodiments, the conference management application may be a component of a teleconferencing and/or videoconferencing system. 
     In some aspects, the kiosk  114  may be physically located in a target area  116  such as a conference room. Thus, the kiosk  114  may be dedicated to managing conference services for a single conference room. In various embodiments, the kiosk  114  may be associated with multiple conference rooms. In one example, the kiosk  114  may be located in a central location or a common location near one or more conference rooms. The kiosk  114  may also be in a remote location. 
     As will be described in further detail below, the kiosk  114  may include a code generator that generates unique conference code that is associated with conference information such as date, time, location, and participants of a conference. The conference code  120  can be a computer-readable code such as a QR code, Aztec code, Maxicode, Data Matrix, and/or various types of barcode such as visual code, spot code, and magneti-code. Additionally, the conference code  120  may comprise a combination of letters, numbers, characters, and/or symbols. The conference code  120  may be presented or displayed on a user interface of the kiosk  114 , which in turn may be scanned or read via an image capturing device (e.g., a camera) and/or a scanner of a user device to perform one or more operations. The one or more operations include retrieving information relating to a conference, initiating a conference, joining a conference, updating conference information, inviting additional participants, and/or so forth. For example, the kiosk  114  may provide a touch user interface using a touchpad or touch screen display and/or a web-based user interface. In various embodiments, the kiosk  114  may also include a communications device for transmitting the conference code  120  to a user device over one or more of the air interfaces  104 ( 1 )- 104 (N). 
     The network  100  further includes a conference management server  118 . The conference management server  118  is connected to the Internet  112 , the core network  110 , or both. The conference management server  118  may include general-purpose computers, such as desktop computers, tablet computers, laptop computers, servers (e.g., on-premise servers), or other electronic devices that are capable of receiving input, processing the input, and generating output data. The conference management server  118  may store data in a distributed storage system, in which data may be stored for long periods of time and replicated to guarantee reliability. 
     The conference management server  118  may provide data and processing redundancy, in which data processing and data storage may be scaled in response to demand. Further, in a networked deployment, new conference management servers may be added. Thus, the conference management server  118  can include a plurality of physical machines that may be grouped together and presented as a single computing system. Each physical machine of the plurality of physical machines may comprise a node in a cluster. The conference management server  118  may also be in the form of virtual machines, such as virtual engines (VE) and virtual private servers (VPS). 
     In various embodiments, the conference management server  118  may access cloud infra services that may be accessible via an integrated cloud infrastructure. The cloud infrastructure may provide access to cloud infra services such as providing computing resources to support data portioning, scaling, security, and backup. The cloud infrastructure may also support billing services and other monetization services (e.g., conference management related services, teleconferencing and/or videoconferencing systems, etc.). The cloud infrastructure may provide additional service abstractions such as Platform as a Service (PaaS), Infrastructure as a Service (IaaS), and/or Software as a Service (SaaS), depending upon embodiments. 
     As will be described below, the conference management server  118  may schedule conferences and provide notifications related to the conference. In some aspects, the conference management server  118  may include one or more components such as a scheduling module and a notification module. The scheduling module may schedule a new conference and/or update a scheduled conference in response to receiving requests from one or more user devices  102 ( 1 )- 102 (N) or the kiosk  114 . In one example, a user device may communicate a scheduling request to the conference management server  118 . The scheduling module may schedule a conference based at least on the request, which may include date, time, location, subject of the conference, and participants. Additionally, the scheduling module may make calendar associations on a calendar, wherein the calendar association may include conference information based at least on the request and date/time. 
     The notification module of the conference management server  118  may provide conference scheduling notifications to one or more participants and receive replies from the participants. If the scheduling module determines that there is a scheduling conflict, the scheduling module may return a suggested alternate date, time, and/or location and the notification module may communicate the recommendations to the user device. Upon scheduling a conference, the conference management server  118  may provide conference notifications including conference information to the kiosk  114 , which in turn may generate a conference code that is associated with the conference information. 
     The conference management server  118  may also facilitate establishing communication among user devices  102 ( 1 )- 102 (N) via a communication channel. The communication channel may include a chatbot that is supported via a chatbot application. In one example, an organizer of a conference may enter or scan a conference code to engage in a short message service (SMS) conversation or a chat session with the chatbot when scheduling the conference. The chatbot may prompt the organizer to provide information relating to the conference such as an alternate date, time, and location of the conference. The chatbot may also prompt the organizer to provide contact information associated with the participants of the conference. In response, the organizer may share a participant&#39;s contact information from the organizer&#39;s address book. The chatbot may also be configured to access one or more databases to retrieve information (e.g., contact information, scheduling information, calendar information, location information, etc.) to fulfill requests from a user device. In one example, the chatbot may be configured to access user account databases (e.g., home location register [HLR], home subscriber server [HSS], etc.), enterprise databases, and/or various data sources such as user devices. Additionally, the organizer may request a change to the conference date, time, location, and/or list of participants during the chat session. 
     The chatbot may also engage in a chat session with other participants of a conference. In one example, the chatbot may assist a participant in joining a conference by providing instructions or information relating to the conference. The chatbot may also assist a participant in sending a message to an organizer or other participants of a conference. The message may indicate that the participant will be late to join the conference. The message may also indicate that the participant is experiencing technical difficulties. 
     Example Computing Device Components 
       FIG. 2  is a block diagram showing various components of an illustrative computing device, wherein the computing device can comprise a user device  200 . The user device  200  corresponds to one or more user devices  102 ( 1 )- 102 (N) of  FIG. 1 . It is noted that the user device  200  as described herein can operate with more or fewer of the components shown herein. Additionally, the user device  200  as shown herein or portions thereof can serve as a representation of one or more of the computing devices of the present system. 
     The user device  200  may include a communication interface  202 , one or more processors  204 , hardware  206 , and memory  208 . The communication interface  202  may include wireless and/or wired communication components that enable the user device  200  to transmit data to and receive data from other networked devices. In at least one example, the one or more processor(s)  204  may be a central processing unit(s) (CPU), graphics processing unit(s) (GPU), both a CPU and GPU or any other sort of processing unit(s). Each of the one or more processor(s)  204  may have numerous arithmetic logic units (ALUs) that perform arithmetic and logical operations as well as one or more control units (CUs) that extract instructions and stored content from processor cache memory, and then executes these instructions by calling on the ALUs, as necessary during program execution. 
     The one or more processor(s)  204  may also be responsible for executing all computer applications stored in the memory, which can be associated with common types of volatile (RAM) and/or nonvolatile (ROM) memory. The hardware  206  may include additional user interface, data communication, or data storage hardware. For example, the user interfaces may include a data output device (e.g., visual display, audio speakers), and one or more data input devices. The data input devices may include but are not limited to, combinations of one or more of keypads, keyboards, mouse devices, touch screens that accept gestures, microphones, voice or speech recognition devices, and any other suitable devices. 
     The memory  208  may be implemented using computer-readable media, such as computer storage media. Computer-readable media includes, at least, two types of computer-readable media, namely computer storage media and communications media. Computer storage media includes 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. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD), high-definition multimedia/data storage disks, or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information for access by a computing device. In contrast, 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 mechanisms. The memory  208  may also include a firewall. In some embodiments, the firewall may be implemented as hardware  206  in the user device  200 . 
     The processors  204  and the memory  208  of the user device  200  may implement an operating system  210  and a conference management application  212 . The operating system  210  may include components that enable the user device  200  to receive and transmit data via various interfaces (e.g., user controls, communication interface, and/or memory input/output devices), as well as process data using the processors  204  to generate output. The operating system  210  may include a presentation component that presents the output (e.g., display the data on an electronic display, store the data in memory, transmit the data to another electronic device, etc.). Additionally, the operating system  210  may include other components that perform various additional functions generally associated with an operating system. 
     The conference management application  212  includes a calendar module  214  and an address book  216 . The calendar module  214  may be configured to perform various calendar activities such as entering, storing, retrieving, modifying, and deleting a conference, a meeting, an appointment, and/or other calendar association on a calendar  214 . A calendar association may include information that is associated with a specified calendar date and/or time. In various embodiments, the calendar module  214  may communicate with a conference management server to make calendar associations. The calendar  214  may be associated with one or more user accounts associated with a user. For example, the calendar  214  may be associated with a personal email account of a user. In another example, the calendar  214  may be associated with a work email account of a user. In yet another example, the calendar  214  (e.g., an organizational calendar) may be associated with user accounts associated with multiple users. 
     The calendar module  214  may be configured to synchronize one or more calendars associated with a user to provide all calendar associations on a single calendar in a consolidated manner. In this way, one calendar may show calendar associations from multiple calendars associated with a user, wherein the calendars may be associated with the user&#39;s personal email account, work email account, and/or other user accounts. In some aspects, the calendar module  214  may mute or hide one or more calendar associations based at least on user settings. Additionally, or alternatively, the calendar module  214  may mute or hide one or more calendars based at least on user settings. 
     The address book  216  may be configured to add, store, modify, and delete contact information. The contact information may include a contact&#39;s name, phone number, email address, mailing address, and/or so forth. The address book  216  may import contact information from one or more address books associated with a user. For example, the address book  216  may import contact information from an address book that is locally stored in the user device  200 . In another example, the address book  216  may import contact information from an address book that is stored in a remote database or a cloud. Contact information for one or more participants of a conference may be retrieved from the address book  216  in order to provide conference notifications to the one or more participants. In some aspects, the conference management application  212  may include a data management layer that includes software utilities for facilitating the acquisition, processing, storing, reporting, and analysis of calendar associations and/or contact information from multiple data sources such as calendars, address books, and/or so forth. 
       FIG. 3  is a block diagram showing various components of an illustrative computing device, wherein the computing device can comprise a conference kiosk  300 . The conference kiosk  300  corresponds to the kiosk  114  of  FIG. 1 . It is noted that the conference kiosk  300  as described herein can operate with more or fewer of the components shown herein. Additionally, the conference kiosk  300  as shown herein or portions thereof can serve as a representation of one or more of the computing devices of the present system. 
     The conference kiosk  300  may include a communication interface  302 , one or more processors  304 , hardware  306 , and memory  308 . The communication interface  302  may include wireless and/or wired communication components that enable the conference management server to transmit data to and receive data from other networked devices. In at least one example, the one or more processor(s)  304  may be a central processing unit(s) (CPU), graphics processing unit(s) (GPU), both a CPU and GPU or any other sort of processing unit(s). Each of the one or more processor(s)  304  may have numerous arithmetic logic units (ALUs) that perform arithmetic and logical operations as well as one or more control units (CUs) that extract instructions and stored content from processor cache memory, and then executes these instructions by calling on the ALUs, as necessary during program execution. 
     The one or more processor(s)  304  may also be responsible for executing all computer applications stored in the memory, which can be associated with common types of volatile (RAM) and/or nonvolatile (ROM) memory. The hardware  306  may include additional user interfaces, data communication, or data storage hardware. For example, the user interfaces may include a data output device (e.g., visual display, audio speakers), and one or more data input devices. The data input devices may include but are not limited to, combinations of one or more of keypads, keyboards, mouse devices, touch screens that accept gestures, microphones, voice or speech recognition devices, and any other suitable devices. 
     The memory  308  may be implemented using computer-readable media, such as computer storage media. Computer-readable media includes, at least, two types of computer-readable media, namely computer storage media and communications media. Computer storage media includes 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. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD), high-definition multimedia/data storage disks, or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information for access by a computing device. In contrast, 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 mechanisms. The memory  308  may also include a firewall. In some embodiments, the firewall may be implemented as hardware  306  in the conference kiosk  300 . 
     The processors  304  and the memory  308  of the conference kiosk  300  may implement an operating system  310  and a code generator  312 . The operating system  310  may include components that enable the conference kiosk  300  to receive and transmit data via various interfaces (e.g., user controls, communication interface, and/or memory input/output devices), as well as process data using the processors  304  to generate output. The operating system  310  may include a presentation component that presents the output (e.g., display the data on an electronic display, store the data in memory, transmit the data to another electronic device, etc.). Additionally, the operating system  310  may include other components that perform various additional functions generally associated with an operating system. 
     The code generator  312  is configured to generate a unique conference code associated with conference information. For example, the conference code may be associated with the date, time, location of a conference, one or more participants of the conference, one or more organizers of the conference, a subject matter of the conference, and/or so forth. Upon receiving communication from a conference management server indicating that a conference has been scheduled or a calendar association for the conference has been made on a calendar, the code generator  312  generates a conference code that can identify conference details. In some aspects, the conference code may be linked to a website such as an event website. As described above, the conference code may be various types of computer-readable code (e.g., QR code, Aztec code, Maxicode, Data Matrix, and/or various types of barcode such as visual code, spot code, and magneti-code, etc.) that a participant may enter or scan in the conference management application using a user device. 
     A user device may enter or scan the conference code to perform one or more operations. The operations may include retrieving conference information or initiating or joining the conference. The participant may activate a camera on a user device and point it towards the conference code, which may comprise a QR code. The user device may utilize a dedicated QR code scanning application. Additionally, or alternatively, the user device may utilize a conference management application. In response to reading the conference code, the user device may present a push notification requiring the participant to tap it to finish the relevant operation (i.e., open a website on a browser to join a videoconference or call a conference number). 
     In another example, an organizer of the conference may enter or scan the conference code to reschedule or modify conference information. In response to reading the conference code, the user device may open the conference management application to receive user input comprising an update request. Upon updating the conference information based at least on the update request, the conference code may be associated with the updated conference information. 
       FIG. 4  is a block diagram showing various components of an illustrative computing device, wherein the computing device can comprise a conference management server  400 . The conference management server  400  corresponds to the conference management server  118  of  FIG. 1 . It is noted that the conference management server as described herein can operate with more or fewer of the components shown herein. Additionally, the conference management server as shown herein or portions thereof can serve as a representation of one or more of the computing devices of the present system. 
     The conference management server  400  may include a communication interface  402 , one or more processors  404 , hardware  406 , and memory  408 . The communication interface  402  may include wireless and/or wired communication components that enable the conference management server to transmit data to and receive data from other networked devices. In at least one example, the one or more processor(s)  404  may be a central processing unit(s) (CPU), graphics processing unit(s) (GPU), both a CPU and GPU, or any other sort of processing unit(s). Each of the one or more processor(s)  404  may have numerous arithmetic logic units (ALUs) that perform arithmetic and logical operations as well as one or more control units (CUs) that extract instructions and stored content from processor cache memory, and then executes these instructions by calling on the ALUs, as necessary during program execution. 
     The one or more processor(s)  404  may also be responsible for executing all computer applications stored in the memory, which can be associated with common types of volatile (RAM) and/or nonvolatile (ROM) memory. The hardware  406  may include additional user interface, data communication, or data storage hardware. For example, the user interfaces may include a data output device (e.g., visual display, audio speakers), and one or more data input devices. The data input devices may include but are not limited to, combinations of one or more of keypads, keyboards, mouse devices, touch screens that accept gestures, microphones, voice or speech recognition devices, and any other suitable devices. 
     The memory  408  may be implemented using computer-readable media, such as computer storage media. Computer-readable media includes, at least, two types of computer-readable media, namely computer storage media and communications media. Computer storage media includes 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. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD), high-definition multimedia/data storage disks, or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information for access by a computing device. In contrast, 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 mechanisms. The memory  408  may also include a firewall. In some embodiments, the firewall may be implemented as hardware  406  in the conference management server  400 . 
     The processors  404  and the memory  408  of the conference management server  400  may implement an operating system  410 , a scheduling module  412 , a notification module  414 , and a chatbot application  416 . The operating system  410  may include components that enable the conference management server  400  to receive and transmit data via various interfaces (e.g., user controls, communication interface, and/or memory input/output devices), as well as process data using the processors  404  to generate output. The operating system  410  may include a presentation component that presents the output (e.g., display the data on an electronic display, store the data in memory, transmit the data to another electronic device, etc.). Additionally, the operating system  410  may include other components that perform various additional functions generally associated with an operating system. 
     The scheduling module  412  may schedule a new conference and/or update a scheduled conference in response to receiving requests from one or more user devices or the kiosk. In one example, the scheduling module  412  may schedule a conference based at least on the request from a user device, which may include date, time, location, subject of the conference, and participants. Additionally, the scheduling module  412  may add a calendar association comprising conference information on a calendar. Additionally, or alternatively, the scheduling module  412  may communicate the conference information to the calendar module of the conference management application to add calendar associations to a user&#39;s calendar. Upon adding a calendar association, the scheduling module  412  may instruct the notification module  414  of the conference management server  400  to provide conference notifications to one or more participants. The notification module  414  may forward replies (e.g., RSVP) from the participants back to the scheduling module  412 . If the scheduling module  412  determines that there is a scheduling conflict, the scheduling module  412  may recommend alternate date, time, and/or location. Upon scheduling a conference, the conference management server  400  may provide conference information to the kiosk, which in turn may generate a conference code that is associated with the conference information. 
     In some aspects, the conference management server  400  may provide a chatbot application  416  for interacting with the user devices to enhance the user experience, which is described with respect to  FIG. 5  below. 
       FIG. 5  illustrates example architecture for implementing a chatbot to manage conferences. The user device  502  may be able to communicate with a conference management server via a communication channel, wherein the communication includes a chatbot that is supported by a chatbot application  416 . The chatbot application  416  may enable the user device  502  to engage in a chat session with the chatbot. Particularly, a user may type in text and the chatbot may respond back with an appropriate message in the form of text such that the chatbot may maintain the state of the conversation and respond to the user request in the current context. The dialogue in the chat session may be provided in a chat user interface  514 . 
     The chat application  416  includes a natural language understanding (NLU) component  506 , a dialogue management  508 , and a message generator  510 . The NLU component  506  is configured to process incoming messages from the user to extract the user&#39;s intent and entities in the incoming messages. For example, the user&#39;s intent may include “request conference,” “request update,” “request information,” “request invitation,” and/or so forth. The entities can include specific intent in the request. For example, the intent can be a date, time, location, and contact information of participants. In some aspects, the NLU component may include a supervised intent classification model that is trained on varieties of sentences as input and intents as a target. The NLU component may also include an entity extraction model (e.g., a pre-trained model such as conditional random fields [CRF]). 
     The dialogue management  508  is configured to keep track of the conversations between a user and the chatbot to determine an appropriate response. The dialogue management  508  may utilize a dictionary object that can be persisted with information about the current intent, current entities, persisted information that the user would have provided to the chatbot&#39;s previous questions, the chatbot&#39;s previous actions, results of API call, and/or so forth. In this way, the dialogue management  508  is context-aware and can look back into the conversational history to predict the next action. In some aspects, the dialogue management  508  may implement machine learning models (e.g., LSTM) to predict the next action. The next action can include responding to the user with an appropriate message, retrieving data from a database, making an API call and retrieving information matching the intent, and/or so forth. 
     If the next action is an API call or data retrieval, the dialogue management  508  makes a database request  512 . In one example, the database request  512  can include requesting contact information associated with one or more participants from an address book. In another example, the database request  512  can include requesting calendar information associated with one or more user accounts associated with the user. In yet another example, the database request  512  can include requesting conference-related services (e.g., reserving a conference room). 
     The message generator  510  component includes one or more templates that map to action names. Based at least on the action predicted by the dialogue manager, the respective template message is invoked. If the template requires some placeholder values to be filled up, those values are also passed by the dialogue manager to the generator. Thereafter, the appropriate message is displayed to the user and the chatbot returns to a wait mode to listen for subsequent user input. 
     Example Processes 
       FIGS. 6 and 7  present illustrative processes  600 - 700  for organizing conferences. The processes  600 - 700  are illustrated as a collection of blocks in a logical flow chart, which represents a sequence of operations that can be implemented in hardware, software, or a combination thereof. In the context of software, the blocks represent computer-executable instructions that, when executed by one or more processors, perform the recited operations. Generally, computer-executable instructions may include routines, programs, objects, components, data structures, and the like that perform particular functions or implement particular 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 blocks can be combined in any order and/or in parallel to implement the process. 
     For discussion purposes, the processes  600 - 700  are described with reference to  FIGS. 1-5 . For example, processes  600  and  700  are exemplary processes performed by a conference management server, such as the conference management server of  FIG. 1 . In some aspects, processes  600  and  700  represent at least a portion of the scheduling function, notification function, and chatbot function implemented by scheduling module, notification module, and chatbot application of  FIG. 4 , respectively. 
       FIG. 6  is a flow diagram of an example process for starting, scheduling, and managing conferences. At block  602 , the conference management server receives a request to perform conference operations from a user device that is operated by an organizer of a conference. In the illustrated embodiment, the conference management server receives a scheduling request to schedule a conference from a user device via a communication channel. In one example, the communication channel can include a chatbot. The chatbot is configured to access a calendar and an address book that are associated with a user of the user device to fulfill the scheduling request. At block  604 , the server adds a calendar association comprising conference information on the calendar. The calendar association includes conference information associated with a calendar date and time. In various embodiments, the server may instruct a calendar module of a conference management application residing at the user device to add a calendar association on a calendar. 
     At block  606 , the server retrieves contact information associated with one or more participants of the conference from the address book. The address book may be locally stored in the user device. At block  608 , the server sends a conference notification to the one or more participants, the conference notification comprising the conference information. In some examples, the server sends the conference notification to a kiosk. At block  610 , the server associates the conference information with a conference code, which may be generated via the kiosk using the code generator. The code may be a computer-readable code. At block  612 , the server provides the conference code for display at the user device. In some aspects, the user device can scan the conference code at the kiosk. Subsequently, the server may receive additional requests to perform conference operations from the user device, wherein the additional requests comprise the conference code. 
       FIG. 7  is a flow diagram of an example process for updating conference information and initiating a conference. At block  702 , the conference management server receives a scheduling request to schedule a conference from a user device operated by an organizer of a conference via a communication channel. The communication channel can include a chatbot. The chatbot is configured to access a calendar and an address book that are associated with a user of the user device to fulfill the scheduling request. In some aspects, the chatbot may make an API call to retrieve information from a calendar and an address book. At block  704 , the server adds a calendar association comprising conference information on the calendar. In various embodiments, the server may instruct a calendar module of a conference management application residing at the user device to add a calendar association on a calendar. At block  706 , the server receives an additional request to perform additional conference operations from the user device. For example, the server may receive an update request from the user device at the communication channel. The update request may include a conference code. Additionally, the update request may include proposed updated information, such as changes in conference date, time, location, participants, and/or so forth. The conference code may be entered or scanned using the user device. In the latter case, the user device may scan the conference code at the kiosk. At block  708 , the server retrieves the existing conference information associated with the conference code, for example, from a distributed storage system or other databases. 
     At block  710 , the server may send the existing conference information to the user device for the organizer&#39;s review. The conference information may include the date, time, and location of the conference before the update is made. The conference information may also include a list of participants or attendees, the subject of the conference, and/or so forth. At block  712 , the server determines a scheduling conflict based at least on an existing calendar association on the calendar and the update request, which includes proposed updated information. The server can determine that there is a scheduling conflict for the organizer and/or one or more participants. For instance, the server can identify one or more individuals that have a scheduling conflict. If there is a scheduling conflict, the server may present one or more alternatives to the user device and receive a selection for an alternative. In one example, the server may present one or more alternatives based at least on one or more rules. For instance, the server may automatically present the next available time and date for the organizer as an alternative. In another example, the server may provide an alternative based at least on the location of the conference. The server may provide one or more alternatives simultaneously or provide the alternatives on a trial and error basis until the organizer selects an alternative. At block  714 , the server adds an alternate calendar association comprising the calendar information to the calendar to resolve the scheduling conflict. At block  716 , the server updates the conference information based at least on the update request. At block  718 , the server associates the conference code with updated conference information. At block  720 , the server may receive an additional request to join the conference from the user device operated by the organizer or at least one additional user device operated by a participant, the additional request comprising the conference code. At block  722 , the server initiates the conference associated with the conference code via an additional communication channel. 
     CONCLUSION 
     Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as exemplary forms of implementing the claims.