IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ パラドックス,インコーポレイテッドの特許一覧

特表2024-532718自然言語を使用したカレンダイベントスケジューリング人工知能アシスタント
<>
  • 特表-自然言語を使用したカレンダイベントスケジューリング人工知能アシスタント 図1
  • 特表-自然言語を使用したカレンダイベントスケジューリング人工知能アシスタント 図2
  • 特表-自然言語を使用したカレンダイベントスケジューリング人工知能アシスタント 図3
  • 特表-自然言語を使用したカレンダイベントスケジューリング人工知能アシスタント 図4
  • 特表-自然言語を使用したカレンダイベントスケジューリング人工知能アシスタント 図5
  • 特表-自然言語を使用したカレンダイベントスケジューリング人工知能アシスタント 図6
  • 特表-自然言語を使用したカレンダイベントスケジューリング人工知能アシスタント 図7A
  • 特表-自然言語を使用したカレンダイベントスケジューリング人工知能アシスタント 図7B
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-10
(54)【発明の名称】自然言語を使用したカレンダイベントスケジューリング人工知能アシスタント
(51)【国際特許分類】
   G06Q 10/1093 20230101AFI20240903BHJP
【FI】
G06Q10/1093
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024506985
(86)(22)【出願日】2022-08-03
(85)【翻訳文提出日】2024-02-21
(86)【国際出願番号】 US2022039296
(87)【国際公開番号】W WO2023018588
(87)【国際公開日】2023-02-16
(31)【優先権主張番号】63/260,112
(32)【優先日】2021-08-10
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.FACEBOOK
(71)【出願人】
【識別番号】523377173
【氏名又は名称】パラドックス,インコーポレイテッド
(74)【代理人】
【識別番号】110002321
【氏名又は名称】弁理士法人永井国際特許事務所
(72)【発明者】
【氏名】オスト,ステファン デレク
(72)【発明者】
【氏名】スミス,コリー
(72)【発明者】
【氏名】コープランド,ジェイク
【テーマコード(参考)】
5L010
【Fターム(参考)】
5L010AA13
(57)【要約】
コンピューティングシステムのインテリジェントアシスタントは、第1のクライアントデバイスから第1のメッセージを受信する。コンピューティングシステムは、参加可能な出席者に関連付けられた電子カレンダに関連付けられたカレンダサーバとインターフェースして、各参加可能な出席者のカレンダ情報を取得する。コンピューティングシステムは、カレンダ情報を分析して、カレンダイベントのために複数の可能な時間枠を特定する。コンピューティングシステムは、複数の可能な時間枠を備えるメッセージを対象ユーザに送ることによって、対象ユーザに対して、時間枠を選択するように促す。コンピューティングシステムは、応答メッセージを介して、対象ユーザから、複数の可能な時間枠からの時間枠の選択を受信する。コンピューティングシステムは、時間枠に関連付けられた参加可能な出席者のサブセットを特定する。コンピューティングシステムは、対象ユーザと参加可能な出席者のサブセットとを含むカレンダイベントを、リアルタイムでスケジュールする。

【特許請求の範囲】
【請求項1】
コンピューティングシステムのインテリジェントアシスタントによって、第1のクライアントデバイスから第1のメッセージを受信することであって、前記第1のメッセージは、対象ユーザとカレンダイベントをスケジュールする要求を備える、受信することと、
前記コンピューティングシステムによって、前記要求に基づいて前記カレンダイベントの参加可能な出席者を特定することと、
前記コンピューティングシステムによって、前記参加可能な出席者に関連付けられた電子カレンダに関連付けられたカレンダサーバとインターフェースして、各参加可能な出席者のカレンダ情報を取得することと、
前記コンピューティングシステムによって、各参加可能な出席者の前記カレンダ情報を分析して、前記カレンダイベントのための複数の可能な時間枠を特定することと、
前記コンピューティングシステムによって、前記複数の可能な時間枠を備えるメッセージを前記対象ユーザに送ることによって、前記対象ユーザに対して、前記複数の可能な時間枠から時間枠を選択するように促すことと、
前記コンピューティングシステムによって、前記対象ユーザから、前記コンピューティングシステムの前記インテリジェントアシスタントに送られる応答メッセージを介して、前記対象ユーザから、前記複数の可能な時間枠からの前記時間枠の選択を受信することと、
前記コンピューティングシステムによって、前記時間枠に関連付けられた参加可能な出席者のサブセットを特定することと、
前記受信すること、および前記特定することに基づいて、前記コンピューティングシステムによって、前記対象ユーザと、前記参加可能な出席者のサブセットとを含む前記カレンダイベントをリアルタイムでスケジュールすることとを含む、方法。
【請求項2】
前記コンピューティングシステムによって、各参加可能な出席者の前記カレンダ情報を分析して、前記カレンダイベントのための前記複数の可能な時間枠を特定することは、
単一のカレンダに各参加可能な出席者のカレンダ情報を集約することによって、集約カレンダを生成することを含む、請求項1に記載の方法。
【請求項3】
前記コンピューティングシステムによって、各参加可能な出席者の前記カレンダ情報を分析して、前記カレンダイベントのための前記複数の可能な時間枠を特定することは、
前記カレンダイベントのために、しきい数の可能な時間枠がないことを判定することと、
前記判定することに基づいて、各参加可能な出席者に、関連付けられた電子カレンダにさらにスペースを作成するように促すこととを含む、請求項1に記載の方法。
【請求項4】
前記要求は、前記カレンダイベントが、参加可能な出席者の第1のグループからの第1の出席者と、参加可能な出席者の第2のグループからの第2の出席者とを含むという仕様を備える、請求項1に記載の方法。
【請求項5】
前記コンピューティングシステムによって、各参加可能な出席者の前記カレンダ情報を分析して、前記カレンダイベントのための前記複数の可能な時間枠を特定することは、
重複する時間枠を特定することであって、各重複する時間枠は、参加可能な出席者の前記第1のグループからの第1の空きのある出席者と、参加可能な出席者の前記第2のグループからの第2の空きのある出席者とを含む、請求項4に記載の方法。
【請求項6】
前記コンピューティングシステムによって、前記インテリジェントアシスタントを介して、前記対象ユーザから、自然言語で再スケジュール要求メッセージを受信することと、
前記再スケジュール要求メッセージに基づいて、前記コンピューティングシステムによって、各参加可能な出席者の前記カレンダ情報を再分析して、前記カレンダイベントのための新たな複数の可能な時間枠を特定することとをさらに含む、請求項1に記載の方法。
【請求項7】
前記コンピューティングシステムによって、前記インテリジェントアシスタントを介して、リマインダを定期的に前記対象ユーザにプッシュすることをさらに含む、請求項1に記載の方法。
【請求項8】
コンピューティングシステムのインテリジェントアシスタントによって、第1のクライアントデバイスから第1のメッセージを受信することであって、前記第1のメッセージは、候補者とカレンダイベントをスケジュールする要求を備える、受信することと、
前記コンピューティングシステムによって、前記要求に基づいて前記カレンダイベントの複数の出席者を特定することと、
前記コンピューティングシステムによって、前記複数の出席者に関連付けられた電子カレンダに関連付けられたカレンダサーバとインターフェースして、各出席者のカレンダ情報を取得することと、
前記コンピューティングシステムによって、前記カレンダ情報に基づいて、前記複数の出席者間で共通の空き時間がないと判定することと、
前記コンピューティングシステムによって、1人の出席者が、前記複数の出席者の残りの出席者と共通の空き時間を有していないと判定することと、
前記コンピューティングシステムによって、前記残りの出席者間で共有される空き時間をリストにまとめることと、
前記コンピューティングシステムによって、前記共有される空き時間を含むメッセージを、前記1人の出席者に送ることによって、前記1人の出席者に対して、前記リストから時間を選択するように促すことと、
前記コンピューティングシステムによって、前記1人の出席者から、前記コンピューティングシステムの前記インテリジェントアシスタントに送られた応答メッセージの、リストからの前記カレンダイベントのための時間の選択を受信することと、
前記選択に基づいて、前記コンピューティングシステムによって、前記選択された時間の前記カレンダイベントをリアルタイムでスケジュールすることであって、前記カレンダイベントは、前記複数の出席者および前記候補者を含む、スケジュールすることとを含む、方法。
【請求項9】
前記コンピューティングシステムによって、前記カレンダ情報に基づいて、前記複数の出席者間で共通の空き時間がないと判定することは、
単一のカレンダに、前記複数の出席者の各出席者の前記カレンダ情報を集約することによって、集約カレンダを生成することを含む、請求項8に記載の方法。
【請求項10】
前記コンピューティングシステムによって、前記インテリジェントアシスタントを介して、前記複数の出席者のうちの出席者から、自然言語で再スケジュール要求メッセージを受信することと、
前記再スケジュール要求メッセージに基づいて、前記コンピューティングシステムによって、各参加可能な出席者の前記カレンダ情報を再分析して、前記カレンダイベントのための新たな時間を特定することとをさらに含む、請求項8に記載の方法。
【請求項11】
前記コンピューティングシステムによって、前記インテリジェントアシスタントを介して、前記候補者へリマインダを定期的にプッシュすることをさらに含む、請求項8に記載の方法。
【請求項12】
前記コンピューティングシステムによって、ビデオ会議アプリケーションとインターフェースして、前記カレンダイベントのためのビデオ会議リンクを生成することをさらに含む、請求項8に記載の方法。
【請求項13】
前記時間の選択に応じて、前記コンピューティングシステムによって、前記カレンダイベントの前記時間を、前記候補者に提供することをさらに含む、請求項8に記載の方法。
【請求項14】
前記コンピューティングシステムによって、前記候補者から、前記カレンダイベントの前記時間が承認されたことを示すインジケーションを受信することをさらに含む、請求項13に記載の方法。
【請求項15】
コンピューティングシステムのインテリジェントアシスタントによって、第1のクライアントデバイスから第1のメッセージを受信することであって、前記第1のメッセージは、候補者とカレンダイベントをスケジュールする要求を備える、受信することと、
前記コンピューティングシステムによって、前記要求に基づいて、前記カレンダイベントの複数の出席者を特定することと、
前記コンピューティングシステムによって、前記複数の出席者に関連付けられた電子カレンダに関連付けられたカレンダサーバとインターフェースして、各出席者のカレンダ情報を取得することと、
前記コンピューティングシステムによって、前記カレンダ情報に基づいて、前記複数の出席者間に共通の空き時間がないと判定することと、
前記判定することに基づいて、前記コンピューティングシステムによって、前記複数の出席者に関連付けられた過去のカレンダ情報を検討して、前記複数の出席者がグループとして以前にいつ参加可能であったかを学習することと、
前記コンピューティングシステムによって、前記過去のカレンダ情報を用いて、前記複数の出席者の参加可能な時間をまとめることと、
前記コンピューティングシステムによって、前記複数の出席者に対して、前記複数の出席者の前記参加可能な時間から、時間のセットを選択するように促すことと、
前記コンピューティングシステムによって、前記複数の出席者から複数の応答を受信することと、
前記コンピューティングシステムによって、前記複数の応答を分析して、前記複数の出席者間で共通の参加可能な時間を特定することと、
前記分析することに基づいて、前記コンピューティングシステムによって、前記参加可能な時間に合わせて、前記複数の出席者および前記候補者を含む前記カレンダイベントを、リアルタイムでスケジュールすることとを含む、方法。
【請求項16】
前記コンピューティングシステムによって、前記カレンダ情報に基づいて、前記複数の出席者間に共通の空き時間がないと判定することは、
前記複数の出席者の各出席者の前記カレンダ情報を、単一のカレンダに集約することによって、集約カレンダを生成することを含む、請求項15に記載の方法。
【請求項17】
前記コンピューティングシステムによって、前記インテリジェントアシスタントを介して、前記複数の出席者のうちの出席者から、自然言語で、再スケジュール要求メッセージを受信することと、
前記再スケジュール要求メッセージに基づいて、前記コンピューティングシステムによって、各参加可能な出席者の前記カレンダ情報を再分析して、前記カレンダイベントのための新しい時間を特定することとをさらに含む、請求項15に記載の方法。
【請求項18】
前記コンピューティングシステムによって、前記インテリジェントアシスタントを介して、前記候補者にリマインダを定期的にプッシュすることをさらに含む、請求項15に記載の方法。
【請求項19】
前記コンピューティングシステムによって、ビデオ会議アプリケーションとインターフェースして、前記カレンダイベントのためのビデオ会議リンクを生成することをさらに含む、請求項15に記載の方法。
【請求項20】
前記コンピューティングシステムによって、前記カレンダイベントの前記複数の出席者の各出席者に、参加可能な時間を通知することをさらに含む、請求項15に記載の方法。

【発明の詳細な説明】
【技術分野】
【0001】
本願は、2021年8月10日に出願された米国仮特許出願第63/260,112号に対する優先権を主張し、その全体が参照により本明細書に組み込まれる。
【0002】
本明細書で開示される実施形態は、一般に、カレンダイベントスケジューリングシステムに関し、より詳細には、人工知能アシスタントを利用するカレンダイベントスケジューリングシステムに関する。
【背景技術】
【0003】
出席予定者との会議や面接を含むカレンダイベントスケジューリングは、時間のかかるプロセスである。ユーザまたはシステムが複数の出席予定者と連携する必要がある場合は常に、ユーザまたはシステムは、複数の対話のラインを確立して、スケジュールを調整し、カレンダイベントのための最適または好適な日時を決定する必要がある。カレンダイベントが複合的で、複数の会議または出席者を含む場合、この問題はさらに複雑になる。
【発明の概要】
【課題を解決するための手段】
【0004】
いくつかの実施形態では、本明細書において方法が開示される。コンピューティングシステムのインテリジェントアシスタントは、第1のクライアントデバイスから第1のメッセージを受信する。第1のメッセージは、対象ユーザとカレンダイベントをスケジュールする要求を含む。コンピューティングシステムは、この要求に基づいてカレンダイベントの参加可能な出席者を特定する。コンピューティングシステムは、参加可能な出席者に関連付けられた電子カレンダに関連付けられたカレンダサーバとインターフェースして、各参加可能な出席者のカレンダ情報を取得する。コンピューティングシステムは、各参加可能な出席者のカレンダ情報を分析して、カレンダイベントのための複数の可能な時間枠を特定する。コンピューティングシステムは、複数の可能な時間枠を含むメッセージを対象ユーザに送ることによって、対象ユーザに対して、複数の可能な時間枠から時間枠を選択するように促す。コンピューティングシステムは、対象ユーザから、コンピューティングシステムのインテリジェントアシスタントに送られる応答メッセージを介して、対象ユーザから、複数の可能な時間枠からの時間枠の選択を受信する。コンピューティングシステムは、時間枠に関連付けられた参加可能な出席者のサブセットを特定する。受信することおよび特定することに基づいて、コンピューティングシステムは、対象ユーザと、参加可能な出席者のサブセットとを含むカレンダイベントをリアルタイムでスケジュールする。
【0005】
いくつかの実施形態では、本明細書において方法が開示される。コンピューティングシステムのインテリジェントアシスタントは、第1のクライアントデバイスから第1のメッセージを受信する。第1のメッセージは、候補者と、カレンダイベントをスケジュールする要求を含む。コンピューティングシステムは、この要求に基づいて、カレンダイベントの複数の出席者を特定する。コンピューティングシステムは、複数の出席者に関連付けられた電子カレンダに関連付けられたカレンダサーバとインターフェースして、各出席者のカレンダ情報を取得する。コンピューティングシステムは、カレンダ情報に基づいて、複数の出席者間で共通の空き時間がないと判定する。コンピューティングシステムは、1人の出席者が、複数の出席者の残りの出席者と共通の空き時間を有していないと判定する。コンピューティングシステムは、残りの出席者間で共有される空き時間をリストにまとめる。コンピューティングシステムは、共有される空き時間を含むメッセージを、1人の出席者に送ることによって、1人の出席者に対して、リストから時間を選択するように促す。コンピューティングシステムは、1人の出席者から、コンピューティングシステムのインテリジェントアシスタントに送られた応答メッセージの、リストからのカレンダイベントのための時間の選択を受信する。この選択に基づいて、コンピューティングシステムは、複数の出席者および候補者を含む、選択された時間のカレンダイベントを、リアルタイムでスケジュールする。
【0006】
いくつかの実施形態では、本明細書において方法が開示される。コンピューティングシステムのインテリジェントアシスタントは、第1のクライアントデバイスから第1のメッセージを受信する。第1のメッセージは、候補者とカレンダイベントをスケジュールする要求を含む。コンピューティングシステムは、この要求に基づいて、カレンダイベントの複数の出席者を特定する。コンピューティングシステムは、複数の出席者に関連付けられた電子カレンダに関連付けられたカレンダサーバとインターフェースして、各出席者のカレンダ情報を取得する。コンピューティングシステムは、カレンダ情報に基づいて、複数の出席者間に共通の空き時間がないと判定する。この判定することに基づいて、コンピューティングシステムは、複数の出席者に関連付けられた過去のカレンダ情報を検討して、複数の出席者がグループとして以前にいつ参加可能であったかを学習する。コンピューティングシステムは、過去のカレンダ情報を用いて、複数の出席者の参加可能な時間をまとめる。コンピューティングシステムは、複数の出席者に対して、複数の出席者の参加可能な時間から、時間のセットを選択するように促す。コンピューティングシステムは、複数の出席者から複数の応答を受信する。コンピューティングシステムは、複数の応答を分析して、複数の出席者間で共通の参加可能な時間を特定する。分析に基づいて、コンピューティングシステムは、参加可能な時間に合わせて、複数の出席者および候補者を含むカレンダイベントを、リアルタイムでスケジュールする。
【0007】
本開示の上記の特徴を詳細に理解できるように、上記で簡単に要約した本開示のより具体的な説明は、実施形態を参照することによって得ることができ、そのうちのいくつかは、添付された図面に例示される。しかしながら、添付された図面は、本開示の典型的な実施形態のみを例示しており、したがって、本開示は、他の同様に効果的な実施形態を許容し得るため、本開示の範囲を限定するとみなされるものではないことに留意されたい。
【図面の簡単な説明】
【0008】
図1図1は、例示的な実施形態による、コンピューティング環境を例示するブロック図である。
【0009】
図2図2は、例示的な実施形態による、図1のコンピューティング環境の構成要素間の通信を例示するブロック図である。
【0010】
図3図3は、例示的な実施形態による、カレンダイベントスケジューリングプロセスを容易にする方法を例示するフロー図である。
【0011】
図4図4は、例示的な実施形態による、カレンダ交渉プロセスを実行する方法を例示するフロー図である。
【0012】
図5図5は、例示的な実施形態による、カレンダ交渉プロセスを実行する方法を例示するフロー図である。
【0013】
図6図6は、例示的な実施形態による、複数のカレンダイベントをスケジュールする方法を例示するフロー図である。
【0014】
図7A図7Aは、例示的な実施形態による、システムバスコンピューティングシステムアーキテクチャを例示する図である。
【0015】
図7B図7Bは、例示的な実施形態による、チップセットアーキテクチャを有するコンピュータシステムを例示する図である。
【発明を実施するための形態】
【0016】
理解を容易にするために、可能な場合、各図に共通する同一の要素を示すために、同一の参照番号が使用される。1つの実施形態で開示された要素は、特に言及することなく他の実施形態でも有益に利用され得ることが考えられる。
【0017】
今日のほとんどのカレンダイベントは、人間がプロセスを調整してスケジュールされる。時間とともに、従来のソフトウェアは、カレンダイベントスケジューリングプロセスにおける何らかの形式の自動化を容易にするために開発されてきた。しかしながら、そのような従来のソフトウェアは、カレンダイベントの適時性を確保するために、プロセス全体を通じて、ユーザが、出席者や内部レビュー担当者と直接やり取りする必要があるという大きな課題に直面している。そのため、自動化技術の1つの形式として、それ自体をマーケティングしているにも関わらず、これらの従来のシステムは、依然として、プロセス全体を通じて頻繁に人間の介入を必要とする。
【0018】
本明細書で説明される1つまたは複数の技法は、カレンダイベントスケジューリングプロセスにおいて直面するスケーラビリティおよびユーザビリティの課題に対処することによって、ソフトウェアをスケジューリングする従来のアプローチに対する改良を提供する。たとえば、本明細書で提供される1つまたは複数の実施形態は、自然言語プロセスおよび自然言語理解技法を利用して、カレンダイベント(たとえば、面接、会議、昼食など)のスケジューリングを容易にし得る。そのようなアプローチでは、追加のユーザトレーニングは必要なく、代わりに、ユーザは、人工知能アシスタントと自然言語で会話して、カレンダイベントスケジューリングプロセスをリアルタイムで行うことができる。たとえば、現在スケジュールされているカレンダイベントのスケジュールを変更する必要があり得ることを表現するために、ユーザは「本当に申し訳ありませんが、火曜日のカレンダイベントに日程が合わなくなってしまいました。」のような自然言語のフレーズをメッセージに返信するだけで済む。
【0019】
いくつかの実施形態では、1つまたは複数の技法は、複雑なカレンダイベントシーケンスをスケジュールする問題にも対処し得る。たとえば、多数の出席者とともに、候補者のために、1日分のカレンダイベントをスケジュールすることは、ユーザにとってスケジュールすることが非常に複雑になる可能性がある。ユーザは、各出席者のスケジュールを個別に比較して、関係者全員にとって都合の良い重複する時間を見つける必要がある。スケジュールを設定した後、ユーザが、出席者にスケジュールを変更してもらう必要がある場合、ユーザは、この変更に対応するために各出席者に個別に連絡を取る必要がある。現在のアプローチは、各出席者のカレンダ情報を比較し、自然言語を使用して出席者とのコミュニケーションを自動化してスケジュールを移動させ、最終的にこれらの非常に複雑なカレンダイベントスケジュールに最適な機会を特定することで、この時間のかかるプロセスを排除し、カレンダイベントスケジュールは、その後、出席者の参加を最小限に抑えながら、自然言語で通知され、リアルタイムに再スケジュールされる。
【0020】
以下の議論では、コンピューティングデバイス間で受け渡される、または送られる、1つまたは複数のメッセージについて言及するが、当業者であれば、メッセージとは、様々な通信チャネルを介するメッセージを称し得る。たとえば、メッセージは、電子メール、テキストメッセージ(たとえば、SMS、iMessage、WhatsApp、Facebook Messengerなど)、音声メッセージなどを称し得る。
【0021】
本明細書で使用される「ユーザ」という用語は、たとえば、コンピューティングデバイスまたはワイヤレスデバイスを所有する個人またはエンティティ、コンピューティングデバイスまたはワイヤレスデバイスを操作または利用する個人またはエンティティ、または、コンピューティングデバイスまたはワイヤレスデバイスに関連付けられた個人またはエンティティを含む。「ユーザ」という用語は、限定するように意図されておらず、説明されたものを超える様々な例を含み得ることが考えられる。
【0022】
図1は、例示的な実施形態による、コンピューティング環境100を例示するブロック図である。コンピューティング環境100は、ネットワーク105を介して通信する、少なくとも1つまたは複数のクライアントデバイス102、バックエンドコンピューティングシステム104、1つまたは複数の候補者デバイス106、および1つまたは複数のカレンダサーバ108を含み得る。
【0023】
ネットワーク105は、セルラネットワークまたはWi-Fiネットワークなどのインターネットを介した個別の接続を含む、任意の適切なタイプであり得る。いくつかの実施形態では、ネットワーク105は、無線周波数識別(RFID)、近距離無線通信(NFC)、Bluetooth(登録商標)、低エネルギBluetooth(登録商標)(BLE)、Wi-Fi(登録商標)、ZigBee(登録商標)、周囲後方散乱通信(ABC)プロトコル、USB、WAN、またはLANなどの直接接続を使用して、端末、サービス、およびモバイルデバイスを接続し得る。送信される情報は、個人情報または機密情報であり得るので、セキュリティ上の懸念により、これらのタイプの接続の1つまたは複数を暗号化するか、他の方法で保護する必要があり得る。しかしながら、いくつかの実施形態では、送信される情報は個人的なものではないため、セキュリティよりも利便性を優先してネットワーク接続が選択され得る。
【0024】
ネットワーク105は、データを交換するために使用される任意のタイプのコンピュータネットワーク構成を含み得る。たとえば、ネットワーク105は、インターネットや、プライベートデータネットワークや、パブリックネットワークを使用した仮想プライベートネットワークや、および/または、コンピューティング環境100内の構成要素が、コンピューティング環境100の構成要素間で情報を送受信できるようにする他の適切な接続であり得る。
【0025】
クライアントデバイス102は、ユーザによって操作され得る。たとえば、クライアントデバイス102は、モバイルデバイス、タブレット、デスクトップコンピュータ、または本明細書で説明される機能を有する任意のコンピューティングシステムであり得る。クライアントデバイス102は、バックエンドコンピューティングシステム104の機能にアクセスする組織のメンバに属し得るか、または組織のメンバに提供され得る。たとえば、クライアントデバイス102は、候補者のカレンダイベントをスケジュールするために、バックエンドコンピューティングシステム104の機能を利用し得る組織または会社に属していてもよい。いくつかの実施形態では、クライアントデバイス102のユーザは、「出席者」または「従業員」と称され得る。
【0026】
クライアントデバイス102は、少なくともアプリケーション110およびカレンダアプリケーション112を含み得る。いくつかの実施形態では、アプリケーション110は、バックエンドコンピューティングシステム104に関連付けられたスタンドアロンアプリケーションであり得る。いくつかの実施形態では、アプリケーション110は、バックエンドコンピューティングシステム104に関連付けられたウェブサイトへのアクセスを可能にするウェブブラウザを表し得る。クライアントデバイス102は、アプリケーション110にアクセスして、バックエンドコンピューティングシステム104に関連付けられたスケジューリング機能にアクセスし得る。いくつかの実施形態では、クライアントデバイス102は、ネットワーク105を介して通信して、たとえば、ウェブクライアントアプリケーションサーバ114からウェブページを要求し得る。たとえば、クライアントデバイス102は、アプリケーション110を実行して、ウェブクライアントアプリケーションサーバ114によって管理されるコンテンツにアクセスするように構成され得る。クライアントデバイス102に表示されるコンテンツは、ウェブクライアントアプリケーションサーバ114からクライアントデバイス102に送信され、その後、クライアントデバイス102のグラフィックユーザインターフェース(GUI)を介して表示するためにアプリケーション110によって処理され得る。
【0027】
カレンダアプリケーション112は、ユーザの予定および/または会議を管理するアプリケーションを表し得る。いくつかの実施形態では、カレンダアプリケーション112は、限定されないが、Microsoft Outlook、Google Gmailなどのカレンダ機能を含む、より広範な電子メールクライアントを表し得る。一般に、カレンダアプリケーション112は、ユーザのカレンダを格納または管理し得る。したがって、カレンダアプリケーション112は、参加可能な時間枠および対応できない時間枠を含むがこれらに限定されない、ユーザの様々な時間枠を管理し得る。
【0028】
候補者デバイス106は、ユーザによって操作され得る。たとえば、候補者デバイス106は、モバイルデバイス、タブレット、デスクトップコンピュータ、または本明細書で説明される機能を有する任意のコンピューティングシステムであり得る。候補者デバイス106は、バックエンドコンピューティングシステム104に関連付けられた組織での仕事または身分を求めているユーザまたは候補者に属するか、またはそれらに提供され得る。たとえば、候補者デバイス106は、募集中の求人に応募し、その求人に対するカレンダイベントをスケジュールするためにバックエンドコンピューティングシステム104と対話している候補者に属し得る。いくつかの実施形態では、クライアントデバイス102のユーザは「候補者」と称され得る。
【0029】
候補者デバイス106は、少なくともアプリケーション124およびカレンダアプリケーション126を含み得る。いくつかの実施形態では、アプリケーション124は、バックエンドコンピューティングシステム104に関連付けられたスタンドアロンアプリケーションであり得る。いくつかの実施形態では、アプリケーション124は、バックエンドコンピューティングシステム104に関連付けられたウェブサイトへのアクセスを可能にするウェブブラウザを表し得る。候補者デバイス106は、アプリケーション124にアクセスして、バックエンドコンピューティングシステム104に関連付けられたスケジューリング機能にアクセスし得る。いくつかの実施形態では、候補者デバイス106は、ネットワーク105を介して通信して、たとえばウェブクライアントアプリケーションサーバ114からウェブページを要求し得る。たとえば、候補者デバイス106は、アプリケーション124を実行して、ウェブクライアントアプリケーションサーバ114によって管理されるコンテンツにアクセスするように構成され得る。候補者デバイス106に表示されるコンテンツは、ウェブクライアントアプリケーションサーバ114から候補者デバイス106に送信され得、その後、候補者デバイス106のグラフィックユーザインターフェース(GUI)を介して表示するために、アプリケーション124によって処理され得る。
【0030】
カレンダアプリケーション126は、候補者の予定および/または会議を管理するアプリケーションを表し得る。いくつかの実施形態では、カレンダアプリケーション126は、限定されないが、Microsoft Outlook、Google Gmailなどのカレンダ機能を含む、より広範な電子メールクライアントを表し得る。一般に、カレンダアプリケーション126は、候補者のカレンダを格納または管理し得る。このように、カレンダアプリケーション126は、参加可能な時間枠および参加できない時間枠を含むがこれらに限定されない、候補者のための様々な時間枠を管理し得る。
【0031】
バックエンドコンピューティングシステム104は、ウェブクライアントアプリケーションサーバ114、インテリジェントアシスタント116、自然言語処理(NLP)モジュール118、およびスケジューリングコーディネータ120を含み得る。インテリジェントアシスタント116、NLPモジュール118、およびスケジューリングコーディネータ120のおのおのは、1つまたは複数のソフトウェアモジュールから構成され得る。1つまたは複数のソフトウェアモジュールは、1つまたは複数のアルゴリズムステップを実施する一連の機械命令(たとえば、プログラムコード)を表す、媒体(たとえば、バックエンドコンピューティングシステム104のメモリ)上に格納されたコードまたは命令の集合であり得る。そのような機械命令は、バックエンドコンピューティングシステム104のプロセッサが、命令を実施するために解釈する実際のコンピュータコードであり得るか、あるいは、実際のコンピュータコードを取得するために解釈される命令の、より高いレベルのコーディングであり得る。1つまたは複数のソフトウェアモジュールは、1つまたは複数のハードウェア構成要素をも含み得る。例示的なアルゴリズムの1つまたは複数の態様は、命令の結果としてではなく、ハードウェア構成要素(たとえば、回路構成)自体によって実行され得る。
【0032】
スケジューリングコーディネータ120は、求人の候補者との会議をスケジュールするように構成され得る。たとえば、スケジューリングコーディネータ120は、クライアントデバイス102のユーザが、候補者のために1つまたは複数のカレンダイベントをスケジュールすることを容易にする、または容易にすることを助けることができる。いくつかの実施形態では、スケジューリングコーディネータ120は、クライアントデバイス102を介してユーザにアクセス可能なインターフェースを提供し得、そこで、ユーザは、カレンダイベントのパラメータを設定できる。たとえば、スケジューリングコーディネータ120は、求人のリストおよび各仕事の候補者のリストをユーザに提供し得る。ユーザは、求人のいずれかについて、候補者のいずれかとのカレンダイベントを要求し得る。特定の例を使用すると、ユーザは、企業アソシエイトの求人のために、John Doeの面接のためのカレンダイベントを要求し得る。いくつかの実施形態では、カレンダイベントが面接または会議のためのものである場合など、カレンダイベント要求は、カレンダイベントタイプ(たとえば、対面、電話、バーチャルなど)、カレンダイベント期間、出席者(たとえば、面接官)、準備書類、およびメモのうちの1つまたは複数を含み得る。
【0033】
上記のように、ユーザは、スケジューリングコーディネータ120を介して、カレンダイベントに出席すべき組織のメンバを選択し得る。たとえば、ユーザは、カレンダイベントに参加するために、ユーザ1、ユーザ2、およびユーザ3を選択し得る。1つまたは複数のカレンダイベントをスケジュールするために、いくつかの実施形態では、スケジューリングコーディネータ120は、1つまたは複数のカレンダサーバ108とインターフェースし得る。1つまたは複数のカレンダサーバ108とインターフェースすることによって、スケジューリングコーディネータ120は、各ユーザのカレンダデータを、それぞれのカレンダから取得、すなわちプルして、結合された、すなわち集約されたカレンダを生成し得る。このようにして、スケジューリングコーディネータ120は、出席予定者のための参加可能な時間枠を自動的に特定し、カレンダイベントの予定表をリアルタイムでインテリジェントにスケジュールし得る。
【0034】
いくつかの実施形態では、ユーザが、カレンダイベントをスケジュールするための特定のユーザをスケジューリングコーディネータ120に提供するのではなく、ユーザは、1つまたは複数のカレンダイベントをインテリジェントにスケジュールするために、スケジューリングコーディネータ120の候補のグループをスケジューリングコーディネータ120に提供し得る。これは、カレンダイベントの「ラウンドロビン」と称され得る。たとえば、カレンダイベントをスケジュールするユーザは、カレンダイベント要求で、カレンダイベントに第1のグループ(たとえば、営業)から1人、第2のグループ(たとえば、マーケティング)から1人が参加することを指定し得る。スケジューリングコーディネータ120は、複数の個人を含み得る第1のグループ(たとえば、営業)のためのラウンドロビングループを生成し得る。スケジューリングコーディネータ120は、複数の個人を含み得る第2のグループ(たとえば、マーケティング)のための第2のラウンドロビングループを生成し得る。スケジューリングコーディネータ120は、すべてのユーザカレンダを分析し、それらを1つのテンポラリカレンダに結合して、参加可能な時間枠を特定し得る。スケジューリングコーディネータ120は、候補者に参加可能な時間枠を提供し得る。候補者が自然言語の使用を含めて時間を選択すると、スケジューリングコーディネータ120は、今度はこの時間に参加可能な出席者を特定し得る。その後、スケジューリングコーディネータ120は、様々な要因(たとえば、現在スケジュールされているカレンダイベントの数が最も少ない出席者)に基づいて、参加する1人または複数の出席者をリアルタイムに選択し得る。このようにして、スケジューリングコーディネータ120は、最も早く参加可能なロジックと、負荷分散機能とを結合し得る。従来のシステムでは、スケジューリングユーザは、カレンダイベントを、最も早く参加可能にするか、または均等に分散するかを選択する必要がある。従来のシステムは、上記の機能を再現できない。
【0035】
別個の構成要素として示されているが、スケジューリングコーディネータ120は、インテリジェントアシスタント116によって利用され得るか、またはインテリジェントアシスタント116と統合され得る。インテリジェントアシスタント116は、ユーザが、自然言語を使用して求人のカレンダイベントを設定および整理できるようにし得る。たとえば、クライアントデバイス102のユーザは、ネイティブアプリケーションまたはウェブブラウザを介してバックエンドコンピューティングシステム104とインターフェースするのではなく、メッセージングアプリケーションを使用して、インテリジェントアシスタント116にメッセージを送り得る。特定の例を使用すると、クライアントデバイス102のユーザは、ショートメッセージサービス(SMS)テキスト化、リッチコミュニケーションサービス(RCS)テキスト化、マルチメディアサービス(MMS)メッセージング、インスタントメッセージング、iMessageテキスト化、Facebook Messenger、Googleメッセージ、拡張可能メッセージングおよびプレゼントプロトコル(XMPP)メッセージング(たとえば、WhatsApp)、インテリジェントアシスタント116と通信するためのものなどを使用し得る。このようにして、ユーザは、インテリジェントアシスタント116に、「企業アソシエイト身分について、John Doeとのカレンダイベントを設定して下さい。」とメッセージを送ることができる。このメッセージの受信に応じて、インテリジェントアシスタント116は、スケジューリングコーディネータ120と連携して、John Doeとのカレンダイベントをスケジュールし得る。別の例では、「企業アソシエイト身分について、John Doeと3つのカレンダイベントを設定して下さい。各カレンダイベントに、アソシエイトおよびパートナが含まれていることを確認して下さい。」である。このメッセージの受信に応じて、インテリジェントアシスタント116は、スケジューリングコーディネータ120と連携して、たとえば、ラウンドロビン技法を使用して、リアルタイムでJohn Doeと3つのカレンダイベントをスケジュールし得る。
【0036】
カレンダイベントの開始または設定に加えて、インテリジェントアシスタント116は、クライアントデバイス102の様々なユーザ、および候補者デバイス106の候補者からの通信を、さらにサポートし得る。たとえば、インテリジェントアシスタント116が、会議のために参加可能な時間を特定すると、インテリジェントアシスタント116は、様々な通信チャネルを介して、日付/時間の範囲から選択された時間を、候補者に提示し得る。いくつかの実施形態では、インテリジェントアシスタント116は、候補者が、提案時間のいずれも履行できないことを示すインジケーションを受信し得る。たとえば、候補者デバイス106は、最初に提示された時間が、スケジュールに適合しない場合、インテリジェントアシスタント116に対して、追加の日時を提供するように促し得る。いくつかの実施形態では、このプロセスは、自然言語メッセージングを通じて実行され得る。たとえば、候補者デバイス106は、「その時間は、どれも私にとって都合が悪いです。他に参加可能な時間はありますか?」を含むメッセージを、インテリジェントアシスタント116に送り得る。候補者は、自然言語によって時間を選択することもできる。たとえば、候補者デバイス106は、「火曜日の午後1時30分にしましょう。」を含むメッセージを、インテリジェントアシスタント116に送り得る。このようにして、インテリジェントアシスタント116は、スケジューリングコーディネータ120と連携して、自然言語メッセージングを使用して、候補者とカレンダイベントをスケジュールし得る。
【0037】
いくつかの実施形態では、インテリジェントアシスタント116が、出席者の時間枠を特定することが困難な場合がある。たとえば、出席予定者と候補者との間に共通の空き時間がない場合、インテリジェントアシスタント116は、出席者に連絡して、カレンダに空き時間をさらに追加するように要求し得る。いくつかの実施形態では、インテリジェントアシスタント116は、各出席者のカレンダを分析して、競合が最も少ない時間を特定することによって、より積極的なアプローチを採用し得る。インテリジェントアシスタント116は、競合する可能性のある各出席者と直接チャットして、その時間が都合が良いか否かを確認し得る。そのようなアプローチは、インテリジェントアシスタント116が、ユーザと行う可能性のあるやり取りの量を減少させ得、したがって、カレンダイベントをスケジュールするための全体の時間を減少させる。
【0038】
いくつかの実施形態では、スケジューリングコーディネータ120は、カレンダ交渉プロセスを実行するように構成され得る。たとえば、スケジューリングコーディネータ120は、すべてのカレンダイベント出席者のスケジュールを調整するために、過去のユーザデータに基づいてトレーニングされ得る。そのような機能により、たとえば、採用担当者やコーディネータは、スケジューリングプロセスから自分自身を外すことができるため、空き時間を見つけるためにすべての関係者に連絡する必要はなくなる。
【0039】
いくつかの実施形態では、スケジューリングコーディネータ120は、他の面接の空き時間に対応できない場合がある、可能性のあるカレンダイベントに対して、単一の個人または単一の関係者を含み得るカレンダ交渉プロセスを実行し得る。いくつかの実施形態では、ユーザは、面接官であり得る。いくつかの実施形態では、ユーザは、候補者であり得る。そのような実施形態では、インテリジェントアシスタント116は、可能性のあるカレンダイベントに対して、他の関係者が参加可能な場合、そのユーザが参加可能か否かを確認するように、そのユーザを関与させるように構成され得る。スケジューリングコーディネータ120は、可能性のあるカレンダイベントの他の関係者全員が参加可能で開催できる時間のリストを生成するように構成され得る。インテリジェントアシスタント116は、ユーザに対して、自分たちにとって最適な時間を選択するよう促し得る。ユーザが応答すると、インテリジェントアシスタント116は、自然言語処理を利用してユーザの選択を理解し、この特定の、可能性のあるカレンダイベントに参加可能な時間を追加し得る。関係者間で共有される空き時間があると、インテリジェントアシスタント116は、時間を提案し、カレンダイベントを確認するために、候補者と通信することを含む、1つまたは複数のプロセスを再開し得る。
【0040】
いくつかの実施形態では、スケジューリングコーディネータ120は、共有する空き時間を有していない可能性のある複数人の面接において、複数のユーザを関与させ得るカレンダ交渉プロセスを実行し得る。そのような状況では、スケジューリングコーディネータ120は、インテリジェントアシスタント116を介して、カレンダイベントに指定されたすべてのユーザに対して、空き時間をさらに追加する必要があることを通知し得る。そのようなプロセス中、インテリジェントアシスタント116は、グループ全体にとっていつが最適であるかを理解するために、すべてのユーザの空き時間の完全な読み出しをユーザに提供し得る。いくつかの実施形態では、スケジューリングコーディネータ120は、それぞれの各ユーザのカレンダから、過去のデータを検討して、ユーザが、所定の期間(たとえば、過去1週間、過去1カ月、過去四半期など)にわたってグループとしていつ参加可能であったのかを確認するようにさらに構成され得る。いくつかの実施形態では、ユーザは、参加可能であり得る追加時間を自ら選択でき得る。共有される空き時間が追加された後、スケジューリングコーディネータ120は、候補者とカレンダイベントをスケジュールするように構成され得る。
【0041】
いくつかの実施形態では、ユーザは、一度に複数の面接(たとえば、連続面接)をスケジュールしようと試み得る。そのような実施形態では、スケジューリングコーディネータ120は、連続した順序、任意の連続した順序、または複数日にわたって、1つまたは複数の技法を使用して、面接をスケジュールするように構成され得る。連続した順序の場合、元の面接の順序に参加可能な十分な時間があれば、スケジューリングコーディネータ120が構成され得る。たとえば、候補者が、人物A、人物B、および人物Cと会うべきであるとユーザが指定した場合、スケジューリングコーディネータ120は、複数の面接を、人物A、人物B、および人物Cの順序でスケジュールするように試み得る。面接の元の順序に十分な時間がない場合、スケジューリングコーディネータ120は、人物A、人物B、および人物Cが関与する任意の連続した順序に、十分な空き時間があるか否かを判定し得る。人物A、人物B、および人物Cが関与する任意の連続した順序に十分な時間がない場合、スケジューリングコーディネータ120は、面接を複数日にわたってスケジュールする必要があると判定し得る。そのような状況では、インテリジェントアシスタント116は、行われ得る変更を、ユーザに通知し得、各関係者が、変更を受け入れるか、または、元に戻すことをできるようにし得る。
【0042】
候補者が、提案時間を選択すると、インテリジェントアシスタント116は、カレンダイベントまで、候補者と対話または関与をし続け得る。いくつかの実施形態では、インテリジェントアシスタント116は、カレンダの招待状、またはカレンダイベントに関する情報を、出席者(たとえば、クライアントデバイス102)および候補者(たとえば、候補者デバイス106)に送出し得る。いくつかの実施形態では、カレンダの招待状は、添付される準備書類を含み得る。さらに、候補者が、カレンダの招待状を受け入れたと仮定すると、インテリジェントアシスタント116は、カレンダイベントに至るまで、リマインダまたは確認要求で、候補者をフォローアップするようにプログラムされ得る。たとえば、インテリジェントアシスタント116は、候補者に今後のカレンダイベントを定期的にリマインドし得る。
【0043】
いくつかの実施形態では、インテリジェントアシスタント116は、実際のカレンダイベント自体をさらに容易にし得る。たとえば、いくつかの実施形態では、インテリジェントアシスタント116は、ビデオ会議アプリケーションとインターフェースして、スケジュールされたビデオ会議用のリンクを生成し得る。いくつかの実施形態では、インテリジェントアシスタント116は、インテリジェント面接官または面接の出席者など、カレンダイベントへの出席者であり得る。たとえば、インテリジェントアシスタント116は、候補者の面接を実行しているエンティティであり得る。
【0044】
当業者が認識するように、いくつかの実施形態では、出席者または候補者は、スケジュールされたカレンダイベントを履行できなくなる可能性がある。いくつかの実施形態では、インテリジェントアシスタント116は、再スケジュール要求またはキャンセル要求を取り扱い得る。たとえば、出席者または候補者は、自然言語を使用して、カレンダイベントの再スケジュールまたはキャンセルを要求するメッセージを、インテリジェントアシスタント116に送り得る。インテリジェントアシスタント116は、スケジューリングコーディネータ120と協働して、候補者を伴う新しいカレンダイベントの日付について、提案された新しい時間および新しい参加可能な出席者を特定し得る。ユーザがカレンダイベントをキャンセルした状況では、インテリジェントアシスタント116は、キャンセルの出席者への通知を容易にし得る。いくつかの実施形態では、インテリジェントアシスタント116は、カレンダイベントがキャンセルされたことを出席者に通知するカレンダ招待状の更新を送り得る。いくつかの実施形態では、インテリジェントアシスタント116は、自然言語を使用して、カレンダイベントがキャンセルされたとのメッセージを、ユーザに送り得る。このようにして、インテリジェントアシスタント116は、候補者および/または出席者と継続的に関わり、カレンダイベントの円滑な管理を保証し得る。
【0045】
さらに、候補者が、カレンダイベントに先立って質問がある場合、候補者は、インテリジェントアシスタント116にメッセージを送り得る。たとえば、候補者は、インテリジェントアシスタント116に「明日のドレスコードは何ですか?」または「敷地内に駐車場がありますか?」を尋ねるメッセージを送り得、これに対して、インテリジェントアシスタントが自然言語で応答し、質問に対する応答を提供して、プレカレンダイベントプロセスを円滑に進めることができる。
【0046】
さらに、カレンダイベント後、インテリジェントアシスタント116は、出席者に対して、候補者を検討または評価するように促し得る。たとえば、インテリジェントアシスタント116は、各出席者に対して、候補者を評価するか、または候補者についてのフィードバックを提供する、自然言語メッセージを送るように促し得る。インテリジェントアシスタント116は、集約された評価および/またはフィードバックを含むレポートを生成し得る。それに加えて、カレンダイベント後、インテリジェントアシスタント116は、自然言語メッセージングを使用して、候補者に対して、カレンダイベントのプロセスを検討または評価するように促し得る。
【0047】
NLPモジュール118は、取り込みプロセス中に、候補者デバイス106によって提供される書類を分析するように構成され得る。たとえば、いくつかのカレンダイベントでは、インテリジェントアシスタント116は、候補者からの特定の文書を要求し得る。例示的な文書は、レジュメ、書き方サンプル、プレゼンテーションなどを含み得るが、これらに限定されない。いくつかの実施形態では、候補者は、実行中のアプリケーション110を介して、そのような書類をアップロードし得る。いくつかの実施形態では、候補者は、テキストメッセージング、電子メール、音声などを含むがこれらに限定されない様々な通信チャネルを介して、書類をインテリジェントアシスタント116に送り得る。たとえば、候補者は、インテリジェントアシスタント116に送られるテキストメッセージに、書類を添付し得る。NLPモジュール118は、エンドユーザによってアップロードされた書類を分析および処理するように構成され得る。NLPモジュール118は、カレンダイベントの出席者に関連し得る情報を抽出するように構成され得る。たとえば、NLPモジュール118は、職歴、学歴、仕事のスキル、キーワードなどを対象とする情報を抽出し得る。インテリジェントアシスタント116は、抽出された情報を、カレンダイベントの準備書類として出席者に提供し得る。
【0048】
図2は、例示的な実施形態による、コンピューティング環境100の構成要素間の通信を例示するブロック図である。
【0049】
図示されるように、ブロック202において、カレンダイベントスケジューリングプロセスは、少なくとも1つのクライアントデバイス102によって開始され得る。たとえば、リードクライアントデバイス102は、求人の候補者とのカレンダイベントをスケジュールすることを要求し得る。いくつかの実施形態では、リードクライアントデバイス102は、実行中のアプリケーション110を介して、カレンダイベントをスケジュールすることを要求し得る。たとえば、リードクライアントデバイス102のユーザは、グラフィックユーザインターフェースと対話して、カレンダイベントがスケジュールされる候補を選択し得る。いくつかの実施形態では、リードクライアントデバイス102は、テキストメッセージを介して、カレンダイベントがスケジュールされることを要求し得る。たとえば、リードクライアントデバイス102は、求人の候補者とのカレンダイベントのスケジュールを要求するメッセージを、インテリジェントアシスタント116に送り得る。
【0050】
ブロック204において、バックエンドコンピューティングシステム104は、1つまたは複数のカレンダサーバ108から、カレンダ情報を要求し得る。たとえば、スケジューリングコーディネータ120は、1つまたは複数のカレンダサーバ108とインターフェースして、候補者を伴う1つまたは複数のカレンダイベントの、複数の参加可能な出席者に関連するカレンダデータをプル、すなわち取得し得る。
【0051】
ブロック206において、カレンダサーバ108は、スケジューリングコーディネータ120から、カレンダ情報を求める要求を受信し得る。それに応じて、カレンダサーバ108は、カレンダデータを送信するか、またはスケジューリングコーディネータ120が、カレンダサーバ108から前記データをプルすることを許可し得る。いくつかの実施形態では、そのような要求は、複数のカレンダサーバによって受信され得る。たとえば、スケジューリングコーディネータ120は、Outlookに対応する第1のカレンダサーバ108と、Google Calenderに対応する第2のカレンダサーバ108とインターフェースまたは通信し得る。
【0052】
ブロック208において、バックエンドコンピューティングシステム104は、カレンダ情報に基づいて、候補者に提供する提案時間のリストを生成し得る。そうするために、スケジューリングコーディネータ120は、カレンダサーバ108からプル、すなわち取得されたカレンダ情報に基づいて、結合された、すなわち集約されたカレンダを生成し得る。集約されたカレンダを使用して、スケジューリングコーディネータ120は、出席予定者のために、参加可能な時間枠を自動的に特定し、候補者と1つまたは複数のカレンダイベントをリアルタイムでインテリジェントにスケジュールし得る。
【0053】
いくつかの実施形態では、候補者とともに複数のカレンダイベントが要求される場合など、スケジューリングコーディネータ120は、候補者および参加可能な出席者に関してカレンダイベントを最適化するように構成され得る。たとえば、カレンダイベントをスケジュールするユーザは、カレンダイベント要求で、カレンダイベントが、第1のグループ(たとえば、営業)から1人が参加し、第2のグループ(たとえば、マーケティング)から1人が参加する必要があることを指定し得る。スケジューリングコーディネータ120は、複数の個人を含み得る第1のグループ(たとえば、営業)のためのラウンドロビングループを生成し得る。スケジューリングコーディネータ120は、複数の個人を含み得る第2のグループ(たとえば、マーケティング)のための第2のラウンドロビングループを生成し得る。スケジューリングコーディネータ120は、すべてのユーザカレンダを分析し、それらを1つのテンポラリカレンダに結合して、参加可能な時間枠を特定し得る。
【0054】
図示されていないが、いくつかの実施形態では、スケジューリングコーディネータ120は、重複する時間枠を特定できない場合がある。プロセスをさらに進めるために、インテリジェントアシスタント116は、クライアントデバイス102を介して、出席予定者と通信し、出席者が自分のカレンダ上で、より多くの時間を参加可能にするように要求し得る。そのような実施形態では、スケジューリングコーディネータ120が、集約されたカレンダを更新し、新たな参加可能な時間枠を特定できるように、スケジューリングコーディネータ120は、カレンダサーバ108から、カレンダ情報の更新を、継続的または定期的に要求し得る。
【0055】
ブロック210において、バックエンドコンピューティングシステム104は、候補者デバイス106に、可能性のあるカレンダイベント時間のリストを提供し得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、候補者デバイス106上で実行されるアプリケーション124を介して、候補者デバイス106に、可能性のあるカレンダイベント時間のリストを提供し得る。たとえば、バックエンドコンピューティングシステム104は、アプリケーション124を介して提示されるインターフェースを介して、候補者がカレンダイベント時間を選択するための通知をプッシュし得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、インテリジェントアシスタント116を介して、候補者デバイス106に、可能性のあるカレンダイベント時間のリストを提供し得る。たとえば、インテリジェントアシスタント116は、候補者が選択するための可能性のあるカレンダイベント時間のリストを含むテキストメッセージを、候補者デバイス106に送り得る。
【0056】
ブロック212において、候補者デバイス106は、バックエンドコンピューティングシステム104に、カレンダイベントのための1つまたは複数の時間枠の選択を提供し得る。いくつかの実施形態では、候補者デバイス106は、実行中のアプリケーション124を介して、候補の応答を提供し得る。いくつかの実施形態では、候補者デバイス106は、インテリジェントアシスタント116にテキストメッセージを送ることによって、候補者の応答を、自然言語で提供し得る。たとえば、メッセージは、「水曜日の仕事の時間枠」または「金曜日の10時にしましょう」を詳述し得る。
【0057】
ブロック214において、バックエンドコンピューティングシステム104は、ユーザからの応答を受信し得る。候補者が時間を選択すると、スケジューリングコーディネータ120は、その時間に参加可能な出席者を特定し得る。その後、スケジューリングコーディネータ120は、現在スケジュールされているカレンダイベントに参加する最小数の出席者を選択し得る。このようにして、スケジューリングコーディネータ120は、最も早く利用可能なロジックと、負荷分散機能とを結合させ得る。
【0058】
ブロック216において、バックエンドコンピューティングシステム104は、候補者の選択された時間に対応する空き時間スロットを有する出席者を特定し得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、各クライアントデバイス102上で実行されるアプリケーション110を介して、それぞれの各クライアントデバイス102に、指示または通知を提供し得る。たとえば、バックエンドコンピューティングシステム104は、出席者のクライアントデバイス102に通知をプッシュして、候補者とともに、カレンダイベントにスケジュールされていることを出席者に通知し得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、インテリジェントアシスタント116によって送られるメッセージを介して、各出席者のクライアントデバイス102に通知を提供し得る。たとえば、インテリジェントアシスタント116は、それぞれの日時に、候補者とともに、カレンダイベントがスケジュールされていることを示すインジケーションを有するテキストメッセージを、それぞれの各クライアントデバイス102に送り得る。
【0059】
また、ブロック218において、バックエンドコンピューティングシステム104は、それぞれのカレンダサーバ108とのインターフェースを要求して、スケジュールされた各出席者のカレンダに、カレンダエントリを追加し得る。このようにして、スケジューリングコーディネータ120は、各出席者のそれぞれのカレンダイベント時間に対するカレンダエントリをリアルタイムで生成し得る。
【0060】
いくつかの実施形態では、バックエンドコンピューティングシステム104は、候補者とカレンダイベントを確認し得る。たとえば、ブロック220において、バックエンドコンピューティングシステム104は、候補者デバイス106とカレンダイベントを確認し得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、候補者デバイス106上で実行されるアプリケーション124を介して、候補者デバイス106とカレンダイベントを確認し得る。たとえば、バックエンドコンピューティングシステム104は、アプリケーション124を介して、候補者デバイス106に確認通知をプッシュし得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、インテリジェントアシスタント116を介して、候補者デバイス106に確認メッセージを提供し得る。たとえば、インテリジェントアシスタント116は、カレンダイベントの日時の確認メッセージを含むテキストメッセージを候補者デバイス106に送り得る。
【0061】
いくつかの実施形態では、バックエンドコンピューティングシステム104は、候補者および出席者に定期的にリマインダを送り得る。たとえば、ブロック222において、バックエンドコンピューティングシステム104は、カレンダイベントリマインダを、候補者デバイス106に送り得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、候補者デバイス106上で実行されるアプリケーション124を介して、候補者デバイス106にカレンダイベントリマインダを送り得る。たとえば、バックエンドコンピューティングシステム104は、アプリケーション124を介して候補者デバイス106にカレンダイベントリマインダをプッシュし得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、インテリジェントアシスタント116を介して、候補者デバイス106にカレンダイベントリマインダを提供し得る。たとえば、インテリジェントアシスタント116は、カレンダイベントの日時を候補者にリマインドするメッセージを含むテキストメッセージを、候補者デバイス106に送り得る。
【0062】
当業者が認識するように、いくつかの実施形態では、候補者または出席者は、それぞれのカレンダイベントをキャンセルまたは再スケジュールする必要がある場合がある。たとえば、ブロック224において、候補者デバイス106は、自然言語を使用して、カレンダイベントを再スケジュール、またはキャンセルする必要があることを、バックエンドコンピューティングシステム104に通知し得る。いくつかの実施形態では、キャンセルまたは再スケジュール要求は、アプリケーション124を介して開始され得る。いくつかの実施形態では、キャンセルまたは再スケジュール要求は、インテリジェントアシスタント116へのテキストメッセージを介して開始され得る。
【0063】
同様に、ブロック226において、クライアントデバイス102は、出席者が、カレンダイベントを再スケジュール、またはキャンセルする必要があることを、バックエンドコンピューティングシステム104に通知し得る。いくつかの実施形態では、キャンセルまたは再スケジュール要求は、アプリケーション110を介して開始され得る。いくつかの実施形態では、キャンセルまたは再スケジュール要求は、自然言語を使用して、インテリジェントアシスタント116へのテキストメッセージを介して開始され得る。
【0064】
いずれの場合も、ブロック228において、バックエンドコンピューティングシステム104は、ブロック204~212における動作を繰り返して、1つまたは複数のカレンダイベントを再スケジュールし得る。
【0065】
図3は、例示的な実施形態による、カレンダイベントスケジューリングプロセスを容易にする方法300を例示するフロー図である。方法300は、ステップ302において開始し得る。
【0066】
ステップ302において、バックエンドコンピューティングシステム104は、クライアントデバイス102(たとえば、リードクライアントデバイス102)から、カレンダイベントスケジューリング要求を受信し得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、クライアントデバイス102上で実行されるアプリケーション110を介して、カレンダイベントスケジューリング要求を受信し得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、インテリジェントアシスタント116に送られたメッセージを介して、カレンダイベントスケジューリング要求を受信し得る。いくつかの実施形態では、カレンダイベントスケジューリング要求は、関連付けられた1つまたは複数のパラメータを含み得る。たとえば、カレンダイベントスケジューリング要求は、求人情報、カレンダイベントの候補者、カレンダイベントの期間、出席者(たとえば、面接官)、準備書類、メモ等のうちの1つまたは複数を含み得る。
【0067】
ステップ304において、バックエンドコンピューティングシステム104は、カレンダイベントスケジューリング要求に基づいて、カレンダイベントの1人または複数人の参加可能な出席者を特定し得る。いくつかの実施形態では、1人または複数人の参加可能な出席者は、カレンダイベント要求において、名前で指定され得る。いくつかの実施形態では、1つまたは複数の参加可能な出席者のグループが、カレンダイベント要求において指定され得る。たとえば、リードクライアントデバイス102は、カレンダイベントの各時間枠に、第1のグループ(たとえば、営業)から少なくとも1人、第2のグループ(たとえば、マーケティング)から少なくとも1人がいるべきであることのみを指定し得る。いくつかの実施形態では、出席者は指定されず、スケジューリングコーディネータ120は、事前定義された出席者のリストをデフォルトで使用し得る。
【0068】
ステップ306において、バックエンドコンピューティングシステム104は、1つまたは複数のカレンダサーバ108から、カレンダ情報を取得し得る。たとえば、スケジューリングコーディネータ120は、1つまたは複数のカレンダサーバ108とインターフェースして、候補者を伴う1つまたは複数のカレンダイベントの、複数の参加可能な出席者に関連するカレンダデータをプル、すなわち取得し得る。
【0069】
ステップ308において、バックエンドコンピューティングシステム104は、カレンダ情報に基づいて、候補者に提供する提案時間のリストを生成し得る。そうするために、スケジューリングコーディネータ120は、カレンダサーバ108からプル、すなわち取得されたカレンダ情報に基づいて、結合された、すなわち集約されたカレンダを生成し得る。集約されたカレンダを使用して、スケジューリングコーディネータ120は、出席予定者のために、参加可能な時間枠を自動的に特定し、候補者と、1つまたは複数のカレンダイベントをリアルタイムでインテリジェントにスケジュールし得る。
【0070】
いくつかの実施形態では、候補者を伴う複数のカレンダイベントが要求される場合など、スケジューリングコーディネータ120は、候補者および参加可能な出席者に関してカレンダイベントのセットを最適化するように構成され得る。たとえば、カレンダイベントを要求するユーザは、カレンダイベント要求で、カレンダイベントが、第1のグループ(たとえば、営業)からの1人と、第2のグループ(たとえば、マーケティング)からの1人との参加を含む必要があることを指定し得る。スケジューリングコーディネータ120は、すべてのユーザカレンダを分析し、それらを1つのテンポラリカレンダに結合して、参加可能な時間枠を特定し得る。
【0071】
ステップ310において、バックエンドコンピューティングシステム104は、候補者デバイス106に、可能性のあるカレンダイベント時間のリストを提供し得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、候補者デバイス106上で実行されるアプリケーション124を介して、候補者デバイス106に、可能性のあるカレンダイベント時間のリストを提供し得る。たとえば、バックエンドコンピューティングシステム104は、アプリケーション124を介して提示されるインターフェースを介して、候補者がカレンダイベント時間を選択するための通知をプッシュし得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、インテリジェントアシスタント116を介して、候補者デバイス106に、可能性のあるカレンダイベント時間のリストを提供し得る。たとえば、インテリジェントアシスタント116は、候補者が選択できる、可能性のあるカレンダイベント時間のリストを含むテキストメッセージを、候補者デバイス106に送り得る。
【0072】
ステップ312において、バックエンドコンピューティングシステム104は、候補者からの応答を受信し得る。たとえば、この応答は、候補者が、カレンダイベントのために、参加可能な時間枠のうち、どのスロットを選択したかを示し得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、候補者デバイス106において自然言語で実行されるアプリケーション124を介して、応答を受信し得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、自然言語でインテリジェントアシスタント116に提供されるテキストメッセージを介して、応答を受信し得る。
【0073】
ステップ314において、バックエンドコンピューティングシステム104は、候補者の選択された時間に対応する空き時間枠を有する出席者を特定し、彼らがカレンダイベントのためにスケジュールされていることを通知し得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、各クライアントデバイス102上で実行されるアプリケーション110を介して、それぞれの各クライアントデバイス102に指示または通知をそれぞれ提供し得る。たとえば、バックエンドコンピューティングシステム104は、出席者のクライアントデバイス102に通知をプッシュして、出席者に対して、候補者とともにカレンダイベントのためにスケジュールされていることを通知し得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、インテリジェントアシスタント116によって送られるメッセージを介して、各出席者のクライアントデバイス102に通知を提供し得る。たとえば、インテリジェントアシスタント116は、それぞれの日時に、候補者とともにカレンダイベントがスケジュールされていることを示すテキストメッセージを、それぞれの各クライアントデバイス102に送り得る。
【0074】
ステップ316において、バックエンドコンピューティングシステム104は、特定された出席者および候補者とカレンダイベントをリアルタイムでスケジュールし得る。いくつかの実施形態では、カレンダイベントをスケジュールすることは、各出席者のクライアントデバイス102および候補者デバイス106に、カレンダ招待をプッシュすることを含み得る。
【0075】
図4は、例示的な実施形態による、カレンダ交渉プロセスを実行する方法400を例示するフロー図である。方法400は、ステップ402において開始し得る。
【0076】
ステップ402において、バックエンドコンピューティングシステム104は、クライアントデバイス102(たとえば、リードクライアントデバイス102)からスケジューリング要求を受信し得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、クライアントデバイス102上で実行されるアプリケーション110を介して、カレンダイベントスケジューリング要求を受信し得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、インテリジェントアシスタント116に送られたメッセージを介して、カレンダイベントスケジューリング要求を受信し得る。いくつかの実施形態では、カレンダイベントスケジューリング要求は、関連付けられた1つまたは複数のパラメータを含み得る。たとえば、カレンダイベントスケジューリング要求は、求人情報、カレンダイベントの候補者、カレンダイベントの期間、出席者(たとえば、面接官)、準備書類、メモ等のうちの1つまたは複数を含み得る。
【0077】
ステップ404において、バックエンドコンピューティングシステム104は、カレンダイベントの複数の出席者を特定し得る。いくつかの実施形態では、1人または複数人の参加可能な出席者は、カレンダイベント要求において、名前で指定され得る。いくつかの実施形態では、1つまたは複数の参加可能な出席者のグループが、カレンダイベント要求で指定され得る。たとえば、リードクライアントデバイス102は、カレンダイベントの各時間枠に、第1のグループ(たとえば、営業)から少なくとも1人、第2のグループ(たとえば、マーケティング)から少なくとも1人がいるべきであることのみを指定し得る。いくつかの実施形態では、出席者は指定されず、スケジューリングコーディネータ120は、事前定義された出席者のリストをデフォルトで使用し得る。
【0078】
ステップ406において、バックエンドコンピューティングシステム104は、1つまたは複数のカレンダサーバ108から、カレンダ情報を取得し得る。たとえば、スケジューリングコーディネータ120は、1つまたは複数のカレンダサーバ108とインターフェースして、候補者とともに、1つまたは複数のカレンダイベントの複数の出席者に関連するカレンダデータをプル、すなわち取得し得る。
【0079】
ステップ408において、バックエンドコンピューティングシステム104は、複数の出席者にわたる共通の空き時間がないと判定し得る。たとえば、スケジューリングコーディネータ120は、複数の出席者全員のカレンダ情報をまとめ、まとめられたカレンダ情報を分析して、すべての出席者にとって都合の良い共通の時間があるか否かを判定し得る。すべての関係者にとって都合の良い時間がある場合、スケジューリングコーディネータ120は、その特定された時間に、カレンダイベントをスケジュールし得る。しかしながら、すべての関係者にとって都合の良い時間がない場合、スケジューリングコーディネータ120は、都合の良い共通の時間を見つけるために、交渉プロセスを開始し得る。
【0080】
ステップ410において、バックエンドコンピューティングシステム104は、1人の出席者だけが、残りの出席者と共通の空き時間を共有していないと判定し得る。言い換えれば、スケジューリングコーディネータ120は、1人の出席者を除くすべての出席者にとって都合の良い共通の時間があると判定し得る。
【0081】
ステップ412において、バックエンドコンピューティングシステム104は、他の出席者からの共有の空き時間をまとめ得る。たとえば、スケジューリングコーディネータ120は、残りの出席者全員が参加可能な日時を含むリストを生成し得る。このようにして、スケジューリングコーディネータ120は、面接対象者に、グループの残りの人にとって都合の良い日時のリストを提供し得る。
【0082】
ステップ414において、バックエンドコンピューティングシステム104は、特定された出席者に対して促し得る。いくつかの実施形態では、この促しは、他の出席者から共有された空き時間のまとめられたリストを含み得る。いくつかの実施形態では、インテリジェントアシスタント116は、特定された出席者に対して促し得る。たとえば、インテリジェントアシスタント116は、特定された出席者にとって都合の良い時間があれば、それを確認するために共有された空き時間のリストを閲覧するように、出席者に依頼し得る。
【0083】
ステップ416において、バックエンドコンピューティングシステム104は、特定された出席者から、参加可能な時間に関する応答を受信し得る。たとえば、特定された出席者は、クライアントデバイス102を介して、共有された参加可能な、まとめられたリストから、特定された出席者のためにどの時間が都合が良いかを示し得る。いくつかの実施形態では、特定された出席者は、自然言語形式で、インテリジェントアシスタント116に応答を提供し得る。インテリジェントアシスタント116は、1つまたは複数の自然言語プロセスを利用して、特定された出席者の応答を解釈し得る。
【0084】
ステップ418において、バックエンドコンピューティングシステム104は、出席者間で共有される空き時間がある、提案時間のリストを生成し得る。たとえば、スケジューリングコーディネータ120は、カレンダイベントの候補者に送られる、参加可能なカレンダイベント時間のリストを生成し得る。
【0085】
ステップ420において、バックエンドコンピューティングシステム104は、提案時間のリストを、候補者デバイス106に提供し得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、候補者デバイス106上で実行されるアプリケーション124を介して、提案時間のリストを、候補者デバイス106に提供し得る。たとえば、バックエンドコンピューティングシステム104は、アプリケーション124を介して提示されるインターフェースを介して、候補者がカレンダイベント時間を選択するための通知をプッシュし得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、インテリジェントアシスタント116を介して、候補者デバイス106に、提案時間のリストを提供し得る。たとえば、インテリジェントアシスタント116は、候補者が選択する提案時間のリストを含むテキストメッセージを、候補者デバイス106に送り得る。
【0086】
ステップ422において、バックエンドコンピューティングシステム104は、候補者からの応答を受信し得る。たとえば、この応答は、候補者が、カレンダイベントのために、参加可能な時間のうち、どの時間を選択したのかを示し得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、候補者デバイス106において自然言語で実行するアプリケーション124を介して、応答を受信し得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、自然言語でインテリジェントアシスタント116に提供されるテキストメッセージを介して応答を受信し得る。いくつかの実施形態では、たとえば、候補者のために複数の都合の良い時間がある場合、スケジューリングコーディネータ120は、負荷分散アルゴリズムを使用して、どの面接官と面接をスケジュールするかを判定し得る。いくつかの実施形態では、たとえば、候補者が、提案時間のいずれかを履行できない場合、スケジューリングコーディネータ120は、参加可能な時間の完全なカレンダへのリンクを介して、入力を満たす追加の時間を提案し得る。
【0087】
ステップ424において、バックエンドコンピューティングシステム104は、特定された出席者および候補者と、カレンダイベントをリアルタイムでスケジュールし得る。いくつかの実施形態では、カレンダイベントをスケジュールすることは、各出席者のクライアントデバイス102および候補者デバイス106にカレンダ招待をプッシュすることを含み得る。
【0088】
図5は、例示的な実施形態による、カレンダ交渉プロセスを実行する方法500を例示するフロー図である。方法500は、ステップ502において開始し得る。
【0089】
ステップ502において、バックエンドコンピューティングシステム104は、クライアントデバイス102(たとえば、リードクライアントデバイス102)から、スケジューリング要求を受信し得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、クライアントデバイス102上で実行されるアプリケーション110を介して、カレンダイベントスケジューリング要求を受信し得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、インテリジェントアシスタント116に送られたメッセージを介して、カレンダイベントスケジューリング要求を受信し得る。いくつかの実施形態では、カレンダイベントスケジューリング要求は、関連付けられた1つまたは複数のパラメータを含み得る。たとえば、カレンダイベントスケジューリング要求には、求人情報、カレンダイベントの候補者、カレンダイベント期間、出席者(たとえば、面接官)、準備書類、メモ等のうちの1または複数を含み得る。
【0090】
ステップ504において、バックエンドコンピューティングシステム104は、カレンダイベントの複数の出席者を特定し得る。いくつかの実施形態では、1人または複数人の参加可能な出席者は、カレンダイベント要求において、名前で指定され得る。いくつかの実施形態では、1つまたは複数の参加可能な出席者のグループが、カレンダイベント要求で指定され得る。たとえば、リードクライアントデバイス102は、カレンダイベントの各時間枠に、第1のグループ(たとえば、営業)から少なくとも1人、第2のグループ(たとえば、マーケティング)から少なくとも1人がいるべきであることのみを指定し得る。いくつかの実施形態では、出席者は指定されず、スケジューリングコーディネータ120は、事前定義された出席者のリストをデフォルトで使用し得る。
【0091】
ステップ506において、バックエンドコンピューティングシステム104は、1つまたは複数のカレンダサーバ108から、カレンダ情報を取得し得る。たとえば、スケジューリングコーディネータ120は、1つまたは複数のカレンダサーバ108とインターフェースして、候補者とともに、1つまたは複数のカレンダイベントの複数の出席者に関連するカレンダデータをプル、すなわち取得し得る。
【0092】
ステップ508において、バックエンドコンピューティングシステム104は、複数の出席者にわたる共通の空き時間がないと判定し得る。たとえば、スケジューリングコーディネータ120は、複数の出席者全員のカレンダ情報をまとめ、まとめられたカレンダ情報を分析して、すべての出席者にとって都合の良い共通の時間があるか否かを判定し得る。すべての関係者にとって都合の良い時間がある場合、スケジューリングコーディネータ120は、その特定された時間にカレンダイベントをスケジュールし得る。しかしながら、すべての関係者にとって都合の良い時間がない場合、スケジューリングコーディネータ120は、都合の良い共通の時間を見つけるために交渉プロセスを開始し得る。そのような実施形態では、スケジューリングコーディネータ120は、2人以上の出席者にとって都合の良い共通の時間がないと判定し得る。
【0093】
ステップ510において、バックエンドコンピューティングシステム104は、過去のカレンダデータを検討して、複数の出席者に共通して参加可能な時間を見つけ得る。たとえば、スケジューリングコーディネータ120は、取得されたカレンダ情報を分析して、出席者が以前にいつグループとして参加可能であったかを学習し得る。いくつかの実施形態では、スケジューリングコーディネータ120は、1つまたは複数の機械学習技法を利用して、出席者が以前にいつグループとして参加可能であったかを特定し得る。このようにして、スケジューリングコーディネータ120は、グループ全体にとってどの時間が最も都合が良いのかを学習および理解し得る。
【0094】
ステップ512において、バックエンドコンピューティングシステム104は、すべての出席者の空き時間を、出席者の過去のカレンダ情報とともにまとめ得る。たとえば、スケジューリングコーディネータ120は、出席者が参加可能な日時を含むリストを生成し得る。スケジューリングコーディネータ120は、このリストに出席者の過去のカレンダ情報を補足し得る。このようにして、スケジューリングコーディネータ120は、出席者のグループが同時に参加可能であると予想される日時を予測し得る。
【0095】
ステップ514において、バックエンドコンピューティングシステム104は、出席者に対して、カレンダの空き時間を交渉するように促し得る。いくつかの実施形態では、この促しは、予想される空き時間と共有される空き時間の、まとめられたリストを含み得る。いくつかの実施形態では、インテリジェントアシスタント116は、各出席者にとって都合の良い時間があれば、それを確認するために、共有される空き時間のリストを閲覧するように出席者に依頼し得る。
【0096】
ステップ516において、バックエンドコンピューティングシステム104は、特定された出席者から、参加可能な時間の応答を受信し得る。たとえば、各出席者は、クライアントデバイス102を介して、共有された参加可能なまとめられたリストから、どの時間が出席者にとって都合が良いかを示し得る。いくつかの実施形態では、出席者は、自然言語形式で応答をインテリジェントアシスタント116に提供し得る。インテリジェントアシスタント116は、1つまたは複数の自然言語プロセスを利用して、出席者の応答を解釈し得る。
【0097】
ステップ518において、バックエンドコンピューティングシステム104は、出席者間で共有される空き時間がある、提案時間のリストを生成し得る。たとえば、スケジューリングコーディネータ120は、カレンダイベントの候補者に送られる、参加可能なカレンダイベント時間のリストを生成し得る。
【0098】
ステップ520において、バックエンドコンピューティングシステム104は、提案時間のリストを、候補者デバイス106に提供し得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、候補者デバイス106上で実行されるアプリケーション124を介して、候補者デバイス106に提案時間のリストを提供し得る。たとえば、バックエンドコンピューティングシステム104は、アプリケーション124を介して提示されるインターフェースを介して、候補者がカレンダイベント時間を選択するための通知をプッシュし得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、インテリジェントアシスタント116を介して、提案時間のリストを、候補者デバイス106に提供し得る。たとえば、インテリジェントアシスタント116は、候補者が選択する提案時間のリストを含むテキストメッセージを、候補者デバイス106に送り得る。
【0099】
ステップ522において、バックエンドコンピューティングシステム104は、候補者からの応答を受信し得る。たとえば、応答は、候補者が、カレンダイベントのために参加可能な時間のうち、どの時間を選択したかを示し得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、候補者デバイス106において自然言語で実行されるアプリケーション124を介して応答を受信し得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、自然言語でインテリジェントアシスタント116に提供されるテキストメッセージを介して応答を受信し得る。
【0100】
ステップ524において、バックエンドコンピューティングシステム104は、特定された出席者および候補者とカレンダイベントをリアルタイムでスケジュールし得る。いくつかの実施形態では、カレンダイベントをスケジュールすることは、各出席者のクライアントデバイス102および候補者デバイス106にカレンダ招待をプッシュすることを含み得る。
【0101】
図6は、例示的な実施形態による、複数のカレンダイベントをスケジュールする方法600を例示するフロー図である。方法600は、ステップ602において開始し得る。
【0102】
ステップ602において、バックエンドコンピューティングシステム104は、クライアントデバイス102(たとえば、リードクライアントデバイス102)からスケジューリング要求を受信し得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、クライアントデバイス102上で実行されるアプリケーション110を介して、カレンダイベントスケジューリング要求を受信し得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、インテリジェントアシスタント116に送られたメッセージを介してカレンダイベントスケジューリング要求を受信し得る。いくつかの実施形態では、カレンダイベントスケジューリング要求は、関連付けられた1つまたは複数のパラメータを含み得る。たとえば、カレンダイベントスケジューリング要求は、求人情報、カレンダイベントの候補者、カレンダイベントの期間、出席者(たとえば、面接官)、準備書類、メモ等のうちの1つまたは複数を含み得る。
【0103】
ステップ604において、バックエンドコンピューティングシステム104は、要求されたすべてのカレンダイベントおよび関連する出席者を特定し得る。たとえば、スケジューリング要求は、複数のカレンダイベントまたはセッションを求める要求を含み得る。より具体的な例を使用すると、スケジュール要求は、面接に関するものであり得、候補者は、3人の異なる面接官と3回の面接セッションを行うことになる。スケジューリングコーディネータ120は、必要なセッションの数と、各セッションにどの出席者が必要とされるのかを判定し得る。いくつかの実施形態では、スケジューリングコーディネータ120は、スケジューリング要求に関連付けられた1つまたは複数の制約を特定し得る。たとえば、この要求は、カレンダイベントが、スケジュールされるべき時間枠(たとえば、次の2週間以内の任意の時間、次の10日以内の午後の任意の時間など)を示し得る。いくつかの実施形態では、この要求は、カレンダイベントの順序を含み得る。たとえば、要求元のユーザは、第1のカレンダイベントは、人物Aとスケジュールする必要があり、第2のカレンダイベントは、人物Bとスケジュールする必要があり、第3のカレンダイベントは、人物Cとスケジュールする必要があることを示し得る。
【0104】
ステップ606において、バックエンドコンピューティングシステム104は、1つまたは複数のカレンダサーバ108からカレンダ情報を取得し得る。たとえば、スケジューリングコーディネータ120は、1つまたは複数のカレンダサーバ108とインターフェースして、示された出席者に関連するカレンダデータをプル、すなわち取得し得る。
【0105】
ステップ608において、バックエンドコンピューティングシステム104は、取得したカレンダ情報を分析して、カレンダイベントをどのようにスケジュールするかを判定し得る。ステップ610において、バックエンドコンピューティングシステム104は、カレンダイベントが、指定された順序でスケジュールできるか否かを判定し得る。たとえば、スケジューリングコーディネータ120は、取得したカレンダ情報を分析して、複数のカレンダイベントが、指定された出席者とともに、示された順序でスケジュールできる日があるか否かを判定し得る。ステップ610において、バックエンドコンピューティングシステム104が、指定された順序でカレンダイベントをスケジュールできると判定した場合、方法600はステップ616に進む。しかしながら、ステップ610において、カレンダイベントが、指定された順序でスケジュールできないと、バックエンドコンピューティングシステム104が判定した場合、方法600はステップ612に進む。
【0106】
ステップ612において、バックエンドコンピューティングシステム104は、カレンダイベントを1日のなかで、混合した順序でスケジュールできるか否かを判定し得る。たとえば、スケジューリングコーディネータ120は、取得したカレンダ情報を分析して、示された出席者とともに複数のカレンダイベントを、任意の順序でスケジュールできる日があるか否かを判定し得る。ステップ612において、バックエンドコンピューティングシステム104が、カレンダイベントを、混合した順序でスケジュールできると判定した場合、方法600はステップ616に進む。しかしながら、ステップ612において、バックエンドコンピューティングシステム104が、カレンダイベントを、混合した順序でスケジュールできないと判定した場合、方法600はステップ614に進む。
【0107】
ステップ614において、バックエンドコンピューティングシステム104は、カレンダイベントを独立してスケジュールできるか否かを判定し得る。たとえば、スケジューリングコーディネータ120は、取得されたカレンダ情報を分析して、複数のカレンダイベントを、いずれかの順序で示された出席者とともにスケジュールできる日が複数あるか否かを判定し得る。ステップ612において、バックエンドコンピューティングシステム104が、複数の日にわたって、いずれかの順序でカレンダイベントをスケジュールできると判定した場合、方法600はステップ616に進む。しかしながら、ステップ612において、バックエンドコンピューティングシステム104が、複数の日にわたって、どの順序でもカレンダイベントをスケジュールできないと判定した場合、方法600はステップ626に進む。ステップ626において、バックエンドコンピューティングシステム104は、カレンダ招待をスケジュールできないことを要求元のユーザに通知し得る。
【0108】
ステップ616において、バックエンドコンピューティングシステム104は、要求元のユーザに、最も適切なスケジューリング順序を通知し得る。たとえば、スケジューリングコーディネータ120は、どのスケジューリング順序がスケジューリング要求に最も都合が良いかを要求元のユーザに通知し得る。
【0109】
ステップ618において、バックエンドコンピューティングシステム104は、出席者間で共有される空き時間がある、提案時間のリストを生成し得る。たとえば、スケジューリングコーディネータ120は、カレンダイベントの候補者に送られる、参加可能なカレンダイベント時間のリストを生成し得る。
【0110】
ステップ620において、バックエンドコンピューティングシステム104は、提案時間のリストを、候補者デバイス106に提供し得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、候補者デバイス106上で実行されるアプリケーション124を介して、候補者デバイス106に、提案時間のリストを提供し得る。たとえば、バックエンドコンピューティングシステム104は、アプリケーション124を介して提示されるインターフェースを介して、候補者がカレンダイベント時間を選択するための通知をプッシュし得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、インテリジェントアシスタント116を介して、候補者デバイス106に、提案時間のリストを提供し得る。たとえば、インテリジェントアシスタント116は、候補者が選択する提案時間のリストを含むテキストメッセージを候補者デバイス106に送り得る。
【0111】
ステップ622において、バックエンドコンピューティングシステム104は、候補者からの応答を受信し得る。たとえば、応答は、候補者が、カレンダイベントに参加可能な時間のうち、どの時間を選択したかを示し得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、候補者デバイス106において自然言語で実行されるアプリケーション124を介して応答を受信し得る。いくつかの実施形態では、バックエンドコンピューティングシステム104は、自然言語でインテリジェントアシスタント116に提供されるテキストメッセージを介して応答を受信し得る。
【0112】
ステップ624において、バックエンドコンピューティングシステム104は、特定された出席者および候補者とカレンダイベントをリアルタイムでスケジュールし得る。いくつかの実施形態では、カレンダイベントをスケジュールすることは、各出席者のクライアントデバイス102および候補者デバイス106に、カレンダ招待をプッシュすることを含み得る。
【0113】
図7Aは、例示的な実施形態による、システムバスコンピューティングシステム700のアーキテクチャを例示する。システム700の1つまたは複数の構成要素は、バス705を使用して互いに電気通信し得る。システム700は、プロセッサ(たとえば、1つまたは複数のCPU、GPU、または他のタイプのプロセッサ)710と、読取専用メモリ(ROM)720およびランダムアクセスメモリ(RAM)725などのシステムメモリ715を含む様々なシステム構成要素をプロセッサ710へ結合するシステムバス705とを含み得る。システム700は、プロセッサ710に直接接続される、プロセッサ710に近接する、またはプロセッサ710の一部として統合される高速メモリのキャッシュを含み得る。システム700は、プロセッサ710による迅速なアクセスのために、メモリ715および/または記憶デバイス730から、キャッシュ712にデータをコピーできる。このようにして、キャッシュ712は、データを待っている間、プロセッサ710の遅延を回避する性能向上を提供し得る。これらおよび他のモジュールは、様々な動作を実行するために、プロセッサ710を制御するか、または制御するように構成できる。同様に、他のシステムメモリ715も、使用のために利用可能であり得る。メモリ715は、異なる性能特性を有する、複数の異なるタイプのメモリを含み得る。プロセッサ710は、単一のプロセッサまたは複数のプロセッサを表し得る。プロセッサ710は、ソフトウェア命令が実際のプロセッサ設計に組み込まれている特殊用途プロセッサと同様に、プロセッサ710を制御するように構成された、記憶デバイス730に格納されたサービス1 732、サービス2 734、サービス7 736などの汎用プロセッサまたはハードウェアモジュールまたはソフトウェアモジュールのうちの1つまたは複数を含むことができる。プロセッサ710は、本質的に、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュなどを含む、完全内蔵型のコンピューティングシステムであり得る。マルチコアプロセッサは、対称または非対称であり得る。
【0114】
システム700とのユーザ対話を可能にするために、入力デバイス745は、音声用のマイクロフォン、ジェスチャまたはグラフィック入力用の接触感知スクリーン、キーボード、マウス、モーション入力、音声などの任意の数の入力機構とすることができる。出力デバイス735(たとえば、ディスプレイ)は、当業者に知られている多くの出力機構のうちの1つまたは複数とすることもできる。いくつかの事例では、マルチモーダルシステムにより、ユーザは、システム700と通信するために複数のタイプの入力を提供できるようになる。通信インターフェース740は、一般に、ユーザ入力およびシステム出力を統制および管理できる。特定のハードウェア構成での動作に制限はないため、ここでの基本機能は、改良されたハードウェアまたはファームウェア構成の開発に応じて簡単に置き換えられ得る。
【0115】
記憶デバイス730は、不揮発性メモリであり得、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ(RAM)725、読取専用メモリ(ROM)720、およびそれらの混成のような、コンピュータによってアクセス可能なデータを格納できるハードディスクまたは他のタイプのコンピュータ可読媒体とすることができる。
【0116】
記憶デバイス730は、プロセッサ710を制御するためのサービス732、734、および736を含むことができる。他のハードウェアモジュールまたはソフトウェアモジュールも考えられる。記憶デバイス730は、システムバス705に接続できる。1つの態様では、特定の機能を実行するハードウェアモジュールは、プロセッサ710、バス705、出力デバイス735(たとえば、ディスプレイ)など、機能を実行するために必要なハードウェア構成要素に接続されたコンピュータ可読媒体に格納されたソフトウェア構成要素を含むことができる。
【0117】
図7Bは、例示的な実施形態による、チップセットアーキテクチャを有するコンピュータシステム750を例示する。コンピュータシステム750は、開示された技術を実施するために使用できるコンピュータハードウェア、ソフトウェア、およびファームウェアの例であり得る。システム750は、特定された計算を実行するように構成されたソフトウェア、ファームウェア、およびハードウェアを実行できる任意の数の物理的および/または論理的に別個のリソースを表す、1つまたは複数のプロセッサ755を含むことができる。1つまたは複数のプロセッサ755は、1つまたは複数のプロセッサ755への入力、および1つまたは複数のプロセッサ755からの出力を制御できるチップセット760と通信できる。この例では、チップセット760は、ディスプレイなどの出力765に情報を出力し、たとえば、磁気媒体およびソリッドステート媒体を含むことができる記憶デバイス770と、情報を読み書きできる。チップセット760は、RAM775と、データを読み書きできる。チップセット760とインターフェースするために、様々なユーザインターフェース構成要素785とインターフェースするためのブリッジ780を設けることができる。そのようなユーザインターフェース構成要素785は、キーボードと、マイクロフォンと、タッチ検出および処理回路構成と、マウスなどのポインティングデバイス等を含むことができる。一般に、システム750への入力は、機械が生成したものおよび/または人間が生成したものなど、様々なソースのいずれかから得ることができる。
【0118】
チップセット760は、異なる物理インターフェースを有することができる1つまたは複数の通信インターフェース790ともインターフェースできる。そのような通信インターフェースには、有線およびワイヤレスのローカルエリアネットワーク、ブロードバンドワイヤレスネットワーク、およびパーソナルエリアネットワーク用のインターフェースを含むことができる。本明細書に開示されるGUIを生成し、表示し、使用するための方法のいくつかの応用は、物理インターフェースを介して順序付けられたデータセットを受信すること、または、記憶デバイス770またはRAM775に格納されたデータを分析する1つまたは複数のプロセッサ755によって、機械自体によって生成されることを含むことができる。さらに、機械は、ユーザインターフェース構成要素785を介してユーザから入力を受信し、1つまたは複数のプロセッサ755を使用してこれらの入力を解釈することによって、ブラウジング機能などの適切な機能を実行できる。
【0119】
例示的なシステム700および750は、複数のプロセッサ710,755を有することができるか、または、より優れた処理能力を提供するために、ともにネットワーク化された、コンピューティングデバイスのグループまたはクラスタの一部とすることができると理解できる。
【0120】
上記は、本明細書で説明される実施形態を対象としているが、その基本的な範囲から逸脱することなく、他のさらなる実施形態も考案され得る。たとえば、本開示の態様は、ハードウェアまたはソフトウェア、またはハードウェアとソフトウェアとの組合せで実施され得る。本明細書で説明される1つの実施形態は、コンピュータシステムで使用するためのプログラム製品として実施され得る。プログラム製品のプログラムは、(本明細書で説明される方法を含む)実施形態の機能を定義し、様々なコンピュータ可読記憶媒体に格納できる。例示的なコンピュータ可読記憶媒体は、(i)情報が永続的に格納される書込不能記憶媒体(たとえば、CD-ROMドライブで読取可能なCD-ROMディスク、フラッシュメモリ、ROMチップ、または任意のタイプのソリッドステート不揮発性メモリのような、コンピュータ内の読取専用メモリ(ROM)デバイス)と、(ii)変更可能な情報が格納される書込可能記憶媒体(たとえば、ディスクドライブ内のフロッピーディスク、または、ハードディスクドライブ、または任意のタイプのソリッドステートランダムアクセスメモリ)を含むが、これらに限定されない。そのようなコンピュータ可読記憶媒体は、開示された実施形態の機能を指示するコンピュータ可読命令を保持する場合、本開示の実施形態である。
【0121】
当業者であれば、前述した例は例示的であり、限定的ではないことが理解されよう。明細書を読み、図面を検討すれば、それらに対するすべての置換、拡張、等価物、および改良は当業者に明らかであり、本開示の真の精神および範囲内に含まれることが意図される。したがって、以下の添付の特許請求の範囲は、これらの教示の真の精神および範囲内に含まれるすべてのそのような修正、置換、および均等物を含むことが意図される。

図1
図2
図3
図4
図5
図6
図7A
図7B
【国際調査報告】