始めに、本発明の概念を図1(a)〜(d)を参照して説明する。
図1(a)は、本発明に係るスケジュール調整システムの概略的なプロセスを説明するフローチャートである。まず、参加者を集めたいイベントと、そのイベントに参加するメンバーとをスケジュール調整システムに登録する(S100)。すると、図1(b)に示すように、各メンバー(ここではAさん、Bさん、Cさんの三名について示す)のカレンダーがシステム内に生成される。次に、スケジュール調整システムが、各メンバーのカレンダーを参照し、他の予定が設定されていない日時の中からイベント日時の候補を選定する(S102)。図1(c)に示すように、各メンバーのカレンダーには、既に確定しているいくつかの予定が×印で示されている。システムは、メンバー全員のカレンダーを参照して、全員に共通して予定のない日時をイベントの候補日時として選定する。図1(c)では、各メンバーのカレンダーに、システムによって選定された候補日が○印で示される様子が描かれている。
続いて、スケジュール調整システムは、選定した候補日時にイベントを設定してよいか否かを問い合わせる通知を各メンバーに送信する(S104)。いずれかのメンバーから設定不可の返答が来ると(S104のN)、スケジュール調整システムは新たな候補日時を選定する。設定不可の返答をしたメンバーのカレンダーには、図1(c)のカレンダー内にアンダーバー(_)で示すように、その日時に既に他の何らかの予定があることが登録された様子が描かれている。次回以降の候補日時の選択では、設定不可の返答がなされた日時は対象外となる。このように、何らかの予定があることを随時登録することで、スケジュールの調整のために必要十分な情報がメンバーのカレンダーに蓄積される。全メンバーから設定可の返答が来ると(S106のY)、スケジュール調整システムはイベントの日時を確定して、全メンバーのカレンダーにイベントを登録する(S106)。図1(d)には、図1(c)で提案された候補日時にイベントが登録され、○印で示すようにカレンダーに表示される様子が描かれている。
本発明に係るスケジュール調整システムは、ビジネスの予定のスケジューリングよりも、飲み会やスポーツなどの遊びの予定のスケジューリングをする際に特に有用である。例えば、あるユーザが「近々飲みに行きたいな」と思いつき、何人かの友人に声を掛けるような場合を想定する。このような場合、ユーザは飲み会に誘いたい友人全員に電話やメールで連絡を取り、それぞれの予定を聞き出し、全員の都合がよい日時を調整しなければならない。人数が多かったり忙しい人が含まれたりする場合は、何度も日時設定と確認を繰り返すエンドレスの泥沼作業になってしまい、計画自体が放棄されてしまうようなこともある。
それに対し、詳細は後述するが、本発明では、飲み会を思いついたユーザはそのイベントをスケジュール調整システムに登録するだけでよい。その後は、スケジュール調整システムが友人のスケジュールを確認して全員の都合のよい日時を設定してくれる。したがって、電話やメールで連絡を取る場合に比べ作業量が激減する。
従来のスケジュール管理ソフトやウェブカレンダー等のツールでも、ユーザ間でイベントを共有することは可能であるが、その日時設定は誰かが行わなければならない。それに対し、本発明では、イベントの日時の設定もスケジュール調整システムが行うため、従来のツールに比べても圧倒的な利便性が提供される。
以下の実施の形態1では、メンバーの一人が何らかのイベントを登録し、他のメンバーがそのイベントに参加可能な日時をスケジュール調整システムが選定する、イベント契機の態様について説明する。その後、実施の形態2では、複数のメンバー間で共通の空き時間があるときに、その空き時間に入れることができるイベントをスケジュール調整システムが提案する、空き時間契機の態様について説明する。
実施の形態1.
この実施の形態1は、「行動派」と「受身派」の心理の違いに着目したスケジュール調整技術であると言うことができる。ここで、「行動派」とは、自らイベントを企画しそのイベントに参加する仲間を募る姿勢の人を指し、「受身派」とは、自らイベントを企画することはないが他人から誘われれば参加する意思のある人を指す。
この実施の形態1では、「行動派」が新たなイベントを提案して、スケジュール調整システムに登録し、スケジュール調整システムがメンバーのカレンダーから共通の空き日時を検索して「受身派」にイベントへの参加可否を問い合わせる。「受身派」は自発的にイベントを企画しなくても、システムからなされる問い合わせに対してYes/Noで返答するだけでよい。したがって、受身派であっても心理的な抵抗なく予定を埋めていくことができる。また、各メンバーの回答は、スケジュール調整システムだけが把握するので、他のメンバーに予定を断った理由を詮索されることもなく、また、断ることに対して行き過ぎの気遣いをする必要もない。このため、ストレスを感じることなく、メンバー同士のイベントを決めることができる。
図2は、本発明の実施の形態1に係るスケジュール調整システム10の概略構成図である。
スケジュールサーバ12は、クライアント端末16または外部サーバ18からのイベントの登録を契機に複数のユーザ間でのスケジュール調整を実行する機能をブラウザベースのサービスとして提供するウェブサーバとして構成される。
スケジュールサーバ12とクライアント端末16は、LAN(Local Area Network)、インターネット等のネットワーク14を介して接続される。以下の説明では、サービスの主たる機能がスケジュールサーバ12にあるものとして説明するが、例えばJava(登録商標)アプレットのようにクライアント側に処理の主たる機能が移動するもの、サーバとクライアントの両方に処理の主たる機能であるJava(登録商標)アプリケーションなどを配するものなど、他の態様で実現することも可能である。
クライアント端末16は、例えばネットワーク接続機能を有するパーソナルコンピュータ(PC)であるが、ネットワーク接続機能を有する限り、PDA、携帯電話、スマートフォン、ゲーム機などの任意のハードウェアであってもよい。クライアント端末16とネットワーク14との接続は、ケーブルを使用した有線接続であってもよいし、IEEE802.1a/b/g/nなどの無線LAN、赤外線通信、パケット通信によるデータ通信等を利用した無線接続であってもよい。
クライアント端末16は、CPU(Central Processing Unit)、メインメモリ(RAM:Random Access Memory)、ROM(Read Only Memory)などの他、ポインティングデバイス、各種ボタン、タッチパネルなどのハードウェアに応じた任意の入力装置、ディスプレイなどの表示装置、データ通信を制御する通信制御装置等を備えており、周知のブラウザを介してスケジュールサーバ12の提供するサービスを受けられるように構成されている。
上記のようなサーバ−クライアントシステムの構成自体は周知なので、これ以上の詳細な説明は省略する。
図3は、スケジュールサーバ12のうち、本実施形態に係るスケジュール調整に関与する部分の構成を示す図である。この構成は、ハードウェア的には、任意のコンピュータのCPU、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウェアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。
スケジュール調整部30は、クライアント端末16または外部サーバ18からのイベントの登録を受け付ける。その後、スケジュール調整部30は、イベントの集合対象となるメンバーを特定し、特定したメンバーのカレンダーを参照して当該イベントを設定可能な空き日時を検索し、各メンバーからの承認を待ってイベントの集合日時を決定する。スケジュール調整部30の詳細な構成は図3を参照して説明する。
本実施形態において「イベント」とは、二人以上のユーザが参加する、ある程度以上の時間継続する予定のことを言い、あるイベントの参加対象ユーザを特に「メンバー」と呼ぶ。また、本実施形態では、イベントにメンバーが参加することを特に「集合」と呼ぶ。イベントの「集合」とは、特定の場所に物理的に集まる場合のほか、各メンバーが特定の時刻にネットワークに接続可能な端末を操作できるように準備する場合のように、距離をおいた集まりをも含む。
スケジュール保持部24は、ユーザ毎に電子的なカレンダーを保持する。スケジュール保持部24は、ユーザIDまたはユーザのメールアドレスに関連づけることでカレンダーをユーザ毎に管理する。
インタフェース部22は、スケジュール調整部30によるイベント登録によるのではなく、各ユーザによる自発的なカレンダーへの予定の入力を受け付け、この予定をスケジュール保持部24内の各ユーザのカレンダーに反映させる。以下の説明では、インタフェース部22を介してユーザが自身のカレンダーに入力するものを特に「スケジュール」と呼び、イベントと区別することがある。
インタフェース部22は、スケジュール調整システム10以外のオンラインカレンダーに保持されているカレンダーデータを、スケジュール保持部24内の各ユーザのカレンダーにインポートする機能を備えていてもよい。
問い合わせ部26は、スケジュール調整部30によって空き日時が選択された後に、イベントの集合対象メンバーのメールアドレスに対して、その空き日時へのイベント登録を受け入れるか否かを問い合わせるメールを送信する。回答受付部28は、このメールに対する各メンバーからの回答を受け付け、その結果をスケジュール調整部30に渡す。
店舗紹介部60は、スケジュール調整部30によってイベントの集合日時が確定された後に、イベントを提案したユーザに対してそのイベントの集合場所等を紹介する。店舗情報保持部62は、紹介すべき店舗の情報を保持する。
続いて、本実施形態に係るスケジュールサーバ12の概略的な作用について説明する。スケジュールサーバ12は、ユーザ毎に電子的なカレンダーをスケジュール保持部24内に保持している。任意のユーザがあるイベントをスケジュール調整部30に対して送信するとき、そのイベントのおおよその所要時間と集合すべきメンバーを少なくとも含むイベント情報をスケジュール調整部30に与える。スケジュール調整部30は、集合対象のメンバーのカレンダーをそれぞれ参照して、メンバーで共通してそのイベントの所要時間を確保可能である日時を検索し、問い合わせ部26がこれを候補日時として各メンバーに受け入れの可否を問い合わせる。この候補日時に対する各メンバーの受け入れ可否の応答に基づき、スケジュール調整部30が候補日時の中からいずれかを選びイベントの集合時間として確定させる。
図4は、図3に示したスケジュール調整部30のさらに詳細な機能ブロック図である。
イベント受付部32は、あるユーザからクライアント端末16を介してなされるイベントの提案を受け付ける。受け付けたイベントの情報は、スケジュール保持部24に一時的に格納される。イベント情報には、イベント名、所要時間、集合対象メンバーの情報が少なくとも含まれる。所要時間に関しては、必ずしもユーザが指定する必要はなく、予めシステムに組み込まれた所要時間がデフォルト値として利用されてもよい。イベントの受け付けについては、図5を参照してさらに後述する。
ユーザ情報保持部34は、スケジュール保持部24内にカレンダーが保持されているユーザに関する情報と、複数のメンバーから構成されるグループに関する情報を保持する。メンバーの情報には、少なくともユーザ名とメールアドレスが含まれ、これに加えて年齢、趣味、居住地、出身校などの属性情報が含まれてもよい。
メンバー特定部36は、イベント受付部32によって受け付けられたイベントの集合対象となるメンバーを特定する。また、メンバー特定部36は、特定したメンバーのカレンダーがスケジュール保持部24内に存在するか否かを確認する。スケジュール保持部24内にカレンダーが存在しない新規のメンバーがいる場合、ユーザカレンダー生成部38に指示して新規メンバーのカレンダーを生成させる。生成されたカレンダーはスケジュール保持部24内に格納される。
スケジュール管理部40は、メンバー特定部36によって特定されたメンバーのカレンダーをそれぞれ参照して、メンバー間で共通の空き日時を一つ以上検索する。共通の空き日時を検索する具体的な方法については後述する。検索された一つ以上の空き日時は候補日時として問い合わせ部26に送られ、各メンバーに対して都合が良い候補日時を問い合わせるメールが送信される。
回答管理部52は、問い合わせ部26によって送信されたメールに対して各メンバーから回答受付部28が受け取る回答の有無を管理する。受け取られた回答は、一時的に回答保持部54に保持される。回答管理部52は、メールを送信してから所定の時間が経過したにも関わらず回答を受け取っていないメンバーがいる場合、リマインド部56に対して回答のリマインドをするように指示する。回答管理部52が受け取った回答の結果はスケジュール管理部40に送られ、スケジュール管理部40は、これに基づき候補日時の中から適切なものをイベントの集合日時として確定する。
イベント登録部58は、イベントに集合可能なメンバーのカレンダーに対して、スケジュール管理部40によって確定された集合日時にイベントを書き込む。書き込み後、イベント登録部58は、イベントの日時が最終的に確定したことを知らせるメールを各メンバーに送信するように問い合わせ部26に指示してもよい。このように、確定した日時を各メンバーのカレンダーに反映させることで、別のイベントが重複して登録されないようにすることができる。
図5は、スケジュール管理部40のさらに詳細な機能ブロック図である。
空き日時検索部42は、各メンバーのカレンダーを参照して、イベント受付部32で受け付けられたイベントの所要時間を確保することができるメンバー間で共通の空き日時を検索する。検索された日時は、候補日時として候補日時保持部46に一時的に保持される。
決定部48は、回答管理部52から受け取った回答に基づき、候補日時の中から最も適切な日時をイベントの開催日時として決定する。
空き日時を検索するとき、メンバー毎にイベントの集合場所への移動時間を考慮するようにしてもよい。移動時間計算部44は、提案されたイベントの集合場所と、各メンバーのカレンダーで検索された空き日時の直前に確定済みのイベントの集合場所とを取得し、両地点間の移動に要する時間を計算する。この計算は、例えば内蔵の地図データを参照して両地点間の距離を求め、この距離を所定の計算式に代入して推定するようにしてもよいし、地図サイトや電車乗り換え検索サイトなどを提供する外部サーバ18にアクセスして両地点を入力し、それらサイトによる移動時間の演算結果を受け取るようにしてもよい。当然なことに、この移動時間は各メンバーによって異なる。
この場合、空き日時検索部42は、イベントの所要時間を確保することができるメンバー間で共通の空き日時を検索した後、今回のイベントと直前のイベントとの間にメンバー毎に計算された移動時間を確保することができるか否かを検証する。この検証の結果、移動時間を確保することができないメンバーが存在した場合、空き日時検索部42は、その空き日時を後ろの時間にずらしたり候補日時から外したりするなどの処理を行う。代替的に、問い合わせ部26が該当するメンバーに候補日時を問い合わせるメールの中に、「イベントへの移動時間が確保できないおそれがあります。」などのメッセージを追加するようにしてもよい。
続いて、図6ないし図10を参照して、本実施形態に係るスケジュール調整部30の詳細な動作について説明する。
図6は、新規イベントを提案したいユーザが操作するクライアント端末16に対してイベント受付部32によって提供される画面の遷移を説明する図である。
ユーザがブラウザを用いて所定のウェブサイトにアクセスすると、イベント受付部20によってイベント登録画面102が送信される。画面102には、イベント名の入力欄104、イベントへの集合対象メンバーの入力欄106、イベントの調整目安の入力欄108、開始時間目安の入力欄110、所要時間の入力欄112が含まれる。
イベント名の入力欄104の右上には、イベントの選択肢を表示させるための選択ボタン104aがある。ボタン104aがクリックされると、イベント名選択画面120がユーザの端末に送信される。この画面120には、予め登録されているイベントの種類を選択できるラジオボタン124が含まれており、ユーザはいずれか一つの種類を選択した後に決定ボタン126をクリックして確定する。管理ボタン122をクリックして、ラジオボタン124に表示されるイベントの種類を新たに追加することもできる。
メンバー名の入力欄106の右上には、メンバーの選択肢を表示させるための選択ボタン106aがある。ボタン106aがクリックされると、メンバー選択画面130がユーザの端末に送信される。この画面130には、グループ選択欄134と、メンバー名表示部136が含まれる。グループ選択欄134には予め登録されているグループ名がプルダウンメニュー形式で表示され、ユーザがいずれかのグループを選択すると、その構成メンバーがメンバー名表示部136に表示されるように構成されている。グループおよびグループの構成メンバーの追加、削除、変更は、管理ボタン132をクリックして表示される管理画面(図示せず)で行うことができる。この管理画面では、メンバーに対応して必ず一つのメールアドレスの登録138が必要になっており、問い合わせ部26による各メンバーへの問い合わせの際にはこのメールアドレスが使用される。グループまたはメンバーの追加、削除、変更があった場合、イベント受付部32はその内容をユーザ情報保持部34に反映させる。
なお、メンバーのメールアドレスは、メーラ、スケジューラ等のアプリケーションや、ウェブメール、ソーシャルネットワークサービス等のウェブ上のサービスから、インタフェース部22を介してインポートされてもよい。
メンバー選択画面130には、グループ選択欄134に加えて、イベントの集合対象となるメンバーの属性を選択する属性選択欄(図示せず)が表示されてもよい。上述したように、ユーザ毎の属性は予めユーザ情報保持部34に登録されているものとする。グループ選択欄134と属性選択欄の両方を用いることで、イベントへの集合対象となるメンバーを絞り込むことができる。
メンバー名表示部136において、各メンバー名の左にはメンバー選択チェックボックス140と必須メンバーチェックボックス142とが表示される。ユーザは、今回のイベントへの集合対象となるメンバーに対応するチェックボックス140をチェックする。また、必ず集合して欲しいメンバーについては、必須メンバーチェックボックス142を併せてチェックする。必須メンバーの扱いについては後述する。チェックボックス142、144へのチェック後、決定ボタン144のクリックによりメンバーが確定し、イベント登録画面102に戻る。
調整目安入力欄108では、現時点からどの程度の期間をおいて今回のイベントを設定するかを指定する。例えば、「最短で」「一週間以内」「一ヶ月以内」などの選択肢がプルダウンメニュー形式で表示される。代替的に、曜日または平日/休日を指定できるようにしてもよい。この場合、イベント名選択画面120で選択されたイベントに応じて自動的に曜日または平日/休日が指定されるように構成されてもよい。例えば画面120で「飲み会」が選択された場合は金曜日、「キャンプ」が選択された場合には休日が自動的に指定されるなどが考えられる。代替的に、特定の月や上旬/中旬/下旬の別を指定できたり、期間(例えば、○月○日から×月×日まで)を指定できるようにしてもよい。なお、調整目安は必ずしも指定される必要はない。
開始時間目安入力欄110では、今回のイベントの開始時間の目安を指定する。プルダウンメニュー形式で表示される選択肢は、例えば一時間刻みであってもよいし、午前中、午後、夜間などのようにおおざっぱな区切りであってもよい。開始時間の目安が、イベント名選択画面120で選択されたイベントに応じて自動的に設定されるように構成されてもよい。例えば、画面120で「飲み会」が選択された場合は、開始時間の目安が「夜間」に設定されるなどが考えられる。なお、開始時間の目安は必ずしも指定される必要はない。
所要時間入力欄112では、今回のイベントの所要時間を指定する。プルダウンメニュー形式で表示される選択肢は、例えば一時間刻みである。所要時間の目安も、イベント名選択画面120で選択されたイベントに応じて自動的に設定されるように構成されてもよい。
入力欄108、110、112で指定された調整目安、開始時間の目安、所要時間は、後述するスケジュール調整の際に参照される。
イベント登録画面102に対するイベント情報の入力が終了すると、ユーザは登録ボタン114をクリックする。これに応じて、イベント受付部32は確認画面150をユーザの端末に送信する。修正ボタン154がクリックされた場合は、イベント登録画面102が再送信される。登録ボタン152がクリックされると、イベント受付部32は、入力された内容を仮イベントとしてスケジュール保持部24に格納するとともに、メッセージ画面160をユーザの端末に送信する。メッセージ画面160には、後述する店舗紹介機能の説明文、紹介画面へ移動するためのボタン162、イベント登録を終了させるためのボタン164とが含まれる。
イベント受付部32によりイベントが受け付けられると、メンバー特定部36は、そのイベントの集合対象メンバー名をイベント受付部32から受け取る。メンバー特定部36は、メンバーのメールアドレスをユーザ情報保持部34から取得し、これを問い合わせ部26に送る。また、メンバー特定部36は、特定された全員のメンバーのカレンダーがスケジュール保持部24内に既に存在しているか否かを確認する。カレンダーが存在しない新規メンバーがいる場合、ユーザカレンダー生成部38は、その新規メンバーのカレンダーを生成する。
図7は、ユーザ毎にスケジュール保持部24内に保持されるカレンダーを構成するためのデータテーブル170の一例を示す。データテーブル170は、ユーザ名172と、そのユーザのメールアドレス174とに関連づけられる。データテーブル170には、既にカレンダーに登録されているイベントの名称176、開始日時178、所要時間180、イベントの集合場所182、イベントに集合するグループ名184などの情報が含まれる。ユーザカレンダー生成部38が新規メンバーのカレンダーを生成した場合は、イベントが登録されていない空のデータテーブルが生成される。
図8は、データテーブル170に基づき構成されるカレンダー画面190の一例を示す。カレンダーは、月表示、週表示、日表示などに切替可能に構成されるが、ここでは月表示の画面を示している。データテーブル170に保持されているイベントに対応して、2日と10日にイベントが表示されていることが分かる。上述したように、各ユーザは、インタフェース部22を介して自身のカレンダー画面190を自由に閲覧することができる。インタフェース部22は、各ユーザのカレンダーを閲覧できる他ユーザの範囲を設定できるようにしてもよい。例えば、あらゆるユーザが自分のカレンダーを閲覧可能、特定のグループの構成メンバーのみが閲覧可能、自分のみが閲覧可能などの選択肢の中から選択できるようにしてもよい。
図4に戻り、空き日時検索部42は、イベントの所要時間を確保することができるメンバー間で共通の空き日時を検索するのが通常の動作である。しかし、メンバーの数が多くなるほど、共通の空き日時が存在する可能性は低下する。そこで、空き日時検索部42は、得きるだけ多くのメンバー間で共通して確保可能な空き日時を選び出し、メンバーの数が多い空き日時から順に、第1候補日時、第2候補日時、・・・のように選定するようにしてもよい。こうすることで、全メンバーで共通する空き日時が存在しないためにイベントが破棄される可能性を減らすことができる。また、各メンバーに対して、なるべく多くのメンバーが集合できる候補日時がどれなのかを知らせることができる。
代替的に、空き日時検索部42は、イベント登録画面102で入力されるイベントの種類や開始時間目安に応じて、空き日時の検索方法を変更するようにしてもよい。これについて、図9(a)〜(c)を参照して説明する。図9(a)〜(c)は、メンバーA、B、Cの間でスケジュールを調整する様子を表しており、図中で上下方向に延びる長方形が、メンバーA、B、Cそれぞれのカレンダーにおける空き時間の長さを表している。
図9(a)は、花火大会やコンサートのように、開始時間目安と所要時間が確定しているイベントに対してメンバー間で空き時間を探すときの調整の様子を示す。この場合、空き日時検索部42は、イベント(例えば、図9(a)の左端に示されている「コンサート」)の所要時間の前後に若干の余裕時間(例えば、30分ずつ)を加えた空き時間が各メンバーのカレンダー内に存在するか否かを検索する。これは、イベント会場への入退場などを考慮して、その分の時間も確保しておく必要があるためである。このように、第三者によって開始時間が決められているイベントに対して調整する場合は、その開始時間より前に余裕を持たせるような時間設定をする。
図9(b)は、会議や接待などのように、開始時間の若干の前後が許容されるイベントに対してメンバー間で空き時間を探すときの調整の様子を示す。この場合は、メンバーの全員参加を実現するために、空き日時検索部42は、開始時間目安を多少前後させることで各メンバーのカレンダーで共通する空き日時を確保することができないかを試みる。前後させる時間の幅は、デフォルトであってもよいし、イベント登録画面102などで設定できるようにしてもよい。例えば、図9(b)に示すように、「会議」イベントの開始予定時間では、いずれのメンバーも予定が空いていないが、会議の所要時間に相当する空き時間が全メンバーに共通して存在する場合は、空き日時検索部42が「会議」イベントの開始時間を遅らせてイベントを設定するようにしてもよい。このようにすることで、メンバー全員の都合がつく日時を見つけ出しやすくなる。
図9(c)は、飲み会や旅行などのように、一部のメンバーが途中で合流したり抜け出したりできるイベントに対してメンバー間で空き時間を探すときの調整の様子を示す。この場合、空き日時検索部42は、グループのメンバーのうちできるだけ多くのメンバー間で共通する空き日時を検索する。言い換えると、一部のメンバーについてはその時間に他のイベントまたはスケジュールが入っていることを許容する。そして、問い合わせ部26から送信されるメールにおいて、空き時間が共通していないメンバーに対しては、途中参加または途中退出すればそのイベントへの集合が可能であることを知らせるメッセージを含ませる。このメールに対して受け入れ可の回答がきた場合、当該メンバーのカレンダーでは、集合可能な時間帯のみにイベントを書き込むようにする。図9(c)は、メンバーA、Cのカレンダーでは、「飲み会」イベントの所要時間全体にわたり空き時間が存在するが、メンバーBのカレンダーではイベントの途中からしか空き時間が存在していない様子を示している。この場合、メンバーA、Cについては、「飲み会」イベントの全時間がそれぞれのカレンダーに登録されるのに対し、メンバーBについては、集合可能な時間以降のみがカレンダーに登録されることになる。
図10は、スケジュール管理部によってイベントの候補日時が選定された後に、問い合わせ部26から各メンバーに対して送信されるメール画面を説明する図である。
スケジュール管理部40は、候補日時を選定するとその内容を問い合わせ部26に送り、問い合わせ部26は各メンバーに対する問い合わせメール200を作成する。問い合わせメール200には、イベントへの集合を促すメッセージ202と、スケジュール管理部40により選定された候補日時203と、候補日時の受け入れ可否を回答するためのリンク204、206とが含まれる。メッセージ202は定型文であってもよいし、イベントを提案したユーザが事前に作成した文章を入れるようにしてもよい。後者の場合、イベント登録画面102にメッセージ入力欄が含まれるようにするのが好ましい。
このメール200を受け取った各メンバーは、「全てOK」または「都合の悪い日がある」のいずれかのリンクをクリックする。このリンクは所定のウェブページのURLまたはIPアドレスを含んでおり、クリックに応じて各メンバーの端末のブラウザ上で対応するウェブページが表示される。「全てOK」のリンク204がクリックされると、ページ210がブラウザに表示されるとともに、ブラウザから回答受付部28に対して、メンバー名と候補日時の全てでイベントを受け入れ可能である旨の回答が送信される。「都合の悪い日がある」リンク206がクリックされると、ページ212がブラウザに表示される。このページ212には、都合の悪い日時を選択させるためのチェックボックス214が含まれる。メンバーが該当するチェックボックスを選択した後に返答ボタン216をクリックすると、ページ210がブラウザに表示されるとともに、ブラウザから回答受付部28に対して、メンバー名と都合の悪い候補日時とを含む回答が送信される。
図4を再び参照して、回答管理部52は、回答受付部28に送信された各メンバーからの回答を一時的に回答保持部54に格納する。所定の期間内に回答が送信されてこないメンバーが存在する場合、リマインド部56は、問い合わせ部26に対して、回答を促すリマインドメールを送信するように指示する。所定の回数リマインドメールを送信したにも関わらず回答がなされない場合、回答管理部52は、当該メンバーは全ての候補日時を受け入れ不可であると判定してその旨をスケジュール管理部40に伝える。
スケジュール管理部40内の決定部48は、回答管理部52から受け取った各メンバーからの回答結果に基づき、候補日時の中から適切なものを選択する。この処理は、一例として以下のように行われる。
図11は、スケジュール管理部40によるイベントの集合日時の最終決定プロセスを説明するフローチャートである。まず、決定部48は、集合対象となる全てのメンバーが受け入れ可能であると回答した候補日時があるか否かを判定する(S50)。そのような候補日時がある場合(S50のY)、決定部48はその候補日時をイベントの集合日時として確定し、イベント登録部58が全メンバーのカレンダーにそのイベントを登録する(S52)。
全てのメンバーが受け入れ可とした候補日時が存在しない場合(S50のN)、決定部48は、メンバー選択画面130において必須メンバーが指定されたか否かを判定する(S54)。必須メンバーが指定されていない場合(S54のN)、全メンバーのうち予め定められた割合(例えば50%)以上のメンバーが受け入れ可とした候補日時があるか否かを判定する(S56)。そのような候補日時がある場合(S56のY)、決定部48はその候補日時をイベントの集合日時として確定し、イベント登録部58は、その候補日時を受け入れ可と回答したメンバーのカレンダーにイベントを登録する(S58)。さらに、イベント登録部58は、受け入れ不可と回答したメンバーのカレンダーに、集合日時に何らかの予定があることを示すダミーイベントを登録する(S58)。このダミーイベントをカレンダーに登録することで、別のイベントが提案されたときに、空き日時検索部42がこの日時を空き日時と判定することがなくなる。したがって、一度イベントへの集合不可と回答したにもかかわらず、同じ日時へのイベント集合を促すメールを再び受け取るような事態を回避することができる。また、一度候補日時を受け入れ不可と回答したメンバーでも、自身のカレンダーを参照することで、都合がついた場合には集合できるイベントが存在することを知ることができる。ダミーイベントは、通常のイベントとは異なる色でカレンダーに表示されるようにしてもよい。
必須メンバーが指定されている場合(S54のY)、決定部48は、必須メンバーの全員が受け入れ可とした候補日時があるか否かを判定する(S60)。そのような候補日時がある場合(S60のY)、決定部48はその候補日時をイベントの集合日時として確定し、イベント登録部58は、その候補日時を受け入れ可と回答したメンバーのカレンダーにイベントを登録するとともに、受け入れ不可と回答したメンバーのカレンダーにダミーイベントを登録する(S58)。
必須メンバーの全員が受け入れ可とした候補日時が存在しない場合(S60のN)、および全メンバーのうち予め定められた割合以上のメンバーが受け入れ可とした候補日時が存在しない場合(S56のN)、決定部48は、今回提案されたイベントをスケジューリングすることが不可能であるとしてそのイベントを破棄し、イベントを提案したユーザに対して当該イベントは設定できない旨を知らせるメールを送信する(S62)。
図12は、店舗紹介部60によって提供される画面の遷移を説明する図である。上述したように、店舗紹介部60は、スケジュール調整部30によってイベントの集合日時が確定されると、そのイベントを開催するのに適した店舗などを提案する。例えば、飲み会イベントが確定されると、そのイベントを開く居酒屋を紹介したり、夜間のイベントが確定されると、イベント会場近くのホテルを紹介したりすることが考えられる。
店舗紹介部60は、イベントを提案したユーザの端末に対してモード選択画面220を送信する。モード選択画面220には、「おまかせモード」か「マニュアルモード」のいずれかを選択するためのラジオボタン222、登録ボタン226およびキャンセルボタン228が含まれる。ユーザはいずれかのモードを選択した後、登録ボタン226をクリックするか、またはキャンセルボタン228をクリックする。キャンセルボタン228がクリックされた場合、店舗紹介機能は実行されない。
「おまかせモード」が選択された場合、店舗紹介部60は場所指定画面230をユーザの端末に送信する。場所指定画面230には、イベントの集合場所の入力欄234と選択ボタン236が含まれる。ユーザは、入力欄234に場所を入力した後、選択ボタン236をクリックして場所指定を完了する。
メンバーの住所および/または職場をユーザ情報保持部34に登録しておくことで、店舗紹介部60がイベントの集合場所を自動的に決定するように構成してもよい。例えば、店舗紹介部60は、イベントに集合するメンバーの住所および/または職場の中間地点近傍をイベントの集合場所として決定してもよいし、沿線に住所および/または職場のあるメンバーが多い鉄道路線のターミナル駅などをイベントの集合場所として決定してもよい。場所指定画面230内の「メンバー管理」リンク232をクリックすることで、メンバー情報管理画面(図示せず)に移動してメンバーの住所および/または職場を入力することも可能である。
「マニュアルモード」が選択された場合、店舗紹介部60は条件設定画面240をユーザの端末に送信する。条件設定画面240には、場所、店のカテゴリ、店の雰囲気、予算等の入力欄242と、各入力欄に対応する選択ボタン244とが含まれる。ユーザは、入力欄のうち少なくとも一つに条件を入力した後、選択ボタンをクリックして条件設定を完了する。
いずれかのモードで場所指定または条件設定が完了すると、店舗紹介部60は店舗情報保持部62に保持されている各店舗の場所、店のカテゴリ、店の雰囲気、予算などの情報に基づき、指定された場所に存在するか、条件に適合する店舗を選択する。店舗紹介部60は、選択した店舗名とその情報(場所、クチコミ、実施中のプランなど)を含むメール250を作成して、イベントを提案したユーザの端末に送信する。このようにして、ユーザが店舗選択などを事前に考えずに思いつきでイベントを提案したとしても、適切な店舗を容易に見つけ出すことができる。
図13は、本実施形態に係るスケジュール調整プロセスを表すフローチャートである。
まず、イベント受付部32が、クライアント端末から新たなイベントの提案を受け付け、そのイベントをスケジュール保持部24に一時的に格納する(S10)。メンバー特定部36は、イベント受付部32によって受け付けられたイベントの集合対象となるメンバーを特定する。(S12)。
メンバー特定部36は、特定されたメンバーのカレンダーがスケジュール保持部24内に存在するか否かを確認する。全メンバーのカレンダーが存在する場合(S14のY)、S18に進む。カレンダーの存在しないメンバーがいる場合(S14のN)、ユーザカレンダー生成部38がそのメンバーのカレンダーを新規作成してスケジュール保持部24に格納する(S16)。
スケジュール管理部40は、メンバー特定部36によって特定されたメンバーのカレンダーをそれぞれ参照し、イベントの所要時間に相当するメンバー共通の空き日時を検索する(S18)。検索された一つ以上の空き日時は候補日時として問い合わせ部26に送られ、問い合わせ部26は、メンバーのメールアドレスに対して、受け入れ可能な候補日時を問い合わせるメールを送信する(S20)。
スケジュール管理部40は、各メンバーからの回答の結果に基づき、候補日時の中から最適と判断される一つを選択し、イベントの集合日時として確定する(S22)。イベント登録部58は、イベントに集合可能なメンバーのカレンダーに対して、スケジュール管理部40によって確定された集合日時にイベントを書き込む(S24)。店舗紹介部60は、集合日時が確定したイベントの集合場所等の情報を、イベントを提案したユーザに対して紹介する(S26)。
以上説明したように、本実施形態によれば、あるユーザが集合すべきメンバーを指定してイベントを提案するだけで、スケジュール調整部がメンバーのカレンダーを検索してメンバー共通の空き日時を見つけ出し、メンバーからの回答に基づきイベントの集合日時を決定し、各メンバーのカレンダーに反映させることができる。
一般に、イベントへの集合対象メンバーが多くなるほど、スケジュールの調整には時間と手間がかかりがちである。本実施形態ではスケジュールサーバに保持されている各メンバーのカレンダーから自動的にメンバー共通の空き日時が検索されるので、都合が良い日時を探すためにメンバー間で何度も連絡を取り合う必要がなくなり、イベントの企画者のスケジュール調整の負担が軽減される。
特に、本実施形態は、会議などのビジネス向けのイベントよりも、遊びなどの比較的気軽なイベントを設定する際に特に有用である。ビジネス会議のようなイベントは実施の期限が厳密なのが通常であるのに対し、遊びのイベントの場合、そのような期限がなく、仲間の時間が空いたときに実行されればよいことが多い。本実施形態によれば、イベントの登録時には集合対象のメンバーと大まかな所要時間を決めておくだけで、具体的な日時を設定することなく、メンバー間でスケジュールを調整することができるので、遊びのイベントの設定との親和性が高い。
また、本実施形態に係るスケジュール調整システムでは、イベントの集合対象メンバー全員のカレンダーが装置内に存在していない場合でも、新規のメンバーに対して自動的にカレンダーを生成してイベントの登録ができるようにした。今までこのカレンダーサービスを知らなかった新規のメンバーは、スケジュール調整システムからの問い合わせメールを受け取ることで、自身のカレンダーが自動的に生成されていることを知ることになる。こうして、当該カレンダーサービスに興味を持たせて今後カレンダーを使用してもらうきっかけを提供することができる。また、多数の既存ユーザからその新規メンバーを対象とするイベントが提案されていた場合、自分自身では一切予定の設定をしていないにも関わらず、スケジュール調整システムからの問い合わせに対して回答をしていくだけでカレンダーに次々とイベントが設定されていき予定が埋まっていくことになる。このようにして、新規ユーザのカレンダーサービスに対する興味を増進させることができる。
また、候補日時に対する受け入れ可否の回答結果はスケジュール調整システムのみが保持しているので、他メンバーに対する無用の気遣い等をする必要がなくなる。
さらに、本実施形態では、提案されたイベントを受け入れ不可と回答したメンバーのカレンダーに、そのイベントの候補日時に何らかの予定があることを示すダミーイベントを登録するようにした。このダミーイベントは、各メンバーのカレンダー上で、他のイベントまたは予定とは異なる態様で(例えば、日時にアンダーバーが付される(図1(c)参照)、他のイベントとは色が異なるなど)表示されるようにしてもよい。このように、あるメンバーによって受け入れ不可とされたイベントであっても、代わりにダミーイベントをカレンダーに登録しておくことで、後日、別のイベントが提案されたときに、空き日時検索部42がこの日時を空き日時と判定することがなくなる。したがって、あるメンバーがある候補日時に開催されるイベントへの集合不可と回答したことが過去にあるにもかかわらず、同じ候補日時または一部が重複する候補日時へのイベント集合を促すメールを再び受け取るような事態を回避することができる。
また、各メンバーの回答は、スケジュール調整システムだけが把握しているので、他のメンバーに予定を断った理由を詮索されることもなく、また、断ることに対して行き過ぎの気遣いをする必要もない。このため、ストレスを感じることなく、メンバー同士のイベントを決めることができる。
各ユーザによる自分のカレンダーへの予定記入、提案されたイベントを受け入れることによるイベントの登録、および提案されたイベントを拒否することによるダミーイベントの登録によって、各ユーザのカレンダーは次第に様々な予定やイベントによって埋められていくことになる。
以上のように、スケジュール管理技術にも関わらず、最初に具体的な日時を指定することなく、何らかのイベントがユーザや企業等から提案されることを契機として、特定のメンバー間での日時調整とイベントの登録が行われる点が、本実施の形態の特徴の一つである。
上述の実施の形態1では、ユーザがブラウザを用いて所定のウェブサイトにアクセスし、イベント登録画面102上でイベントに関する情報を入力することを述べた。しかしながら、この方法は入力に比較的手間がかかりユーザにとって負担になることもある。そこで、イベントの登録作業を簡素化する仕組みをウェブサイト上で提供するようにしてもよい。
図14は、イベントを簡便に登録できるイベント登録オブジェクトが配置されたウェブサイト300の一例を示す。このウェブサイトは、例えば映画、コンサート、演劇などのイベントの広告サイトであり、広告画面の他にイベント登録オブジェクト302が配置されている。ユーザがこのウェブサイトを見て、他の人と一緒にイベントに参加したいと考えた場合、イベント登録オブジェクト302をクリックする。すると、この情報がスケジュールサーバ12のイベント受付部32に送られ、イベント受付部32がオブジェクトに関連づけられているイベント情報を取得し、スケジュール保持部24に一時的に格納する。また、メンバー特定部36は、オブジェクトをクリックしたユーザの情報をユーザ情報保持部34から取得し、そのユーザが所属しているグループの中から、そのイベントを提案するのにふさわしいグループを選択する。一例として、グループに年代、趣味、出身地、居住地域、勤務先、所属校などの属性情報が付与されている場合、イベントに最も関連性が高い属性を有するグループを選択するようにしてもよい。例えば、ウェブサイトが映画の広告サイトであるときには、趣味に「映画」が指定されているグループを選択するなどが考えられる。
スケジュール管理部40は、メンバー特定部36で選択されたグループ毎に、全構成メンバーのカレンダーを参照して、少なくともある比率(例えば50%)以上のメンバーで共通の空き日時を検索する。続いて、検索した空き日時と、広告しているイベントの開始時間とを比較し、イベントの開始時間が空き日時に含まれているグループを特定する。イベントの開始時間に共通の空き日時が存在しないグループはこの時点で対象外とする。
問い合わせ部26は、スケジュール管理部40によって特定された各グループの構成メンバーに対して、メンバー間で共通の空き日時があること、およびその空き日時でのイベント(この場合「映画」)参加の誘いがあることを知らせるメッセージを含んだメールを送信する。このメールの構成は、図9のメール200と同様であってよい。回答管理部52は各メンバーからの回答を受け取り、スケジュール管理部40は、グループ毎にメンバーからの回答を集計し、上述の実施形態と同様にして最適なイベント集合日時を決定する。
様々なウェブサイト上にイベント登録オブジェクトを簡単に設置できるように、当該オブジェクトのHTMLコードを所定のウェブサイトで配布してもよい。
このように、イベント登録オブジェクトをイベント広告のウェブサイト上に設置することで、ユーザはオブジェクトをワンクリックするだけで、複数のメンバーにそのイベントを紹介できるのみならず、複数のメンバー間でのイベント参加スケジュールを調整することができる。したがって、イベントの登録に際してユーザに負担がかかることがなく、気軽にイベントを設定することができる。また、イベントの広告ウェブサイトを運営する側にとっても、イベントを気に入ったユーザがスケジュール調整システムを介してそのイベントの参加メンバーを集めてくれることになるため、スケジュール調整システムをイベントの販促ツールとして活用することが可能になる。
上述の実施の形態1では、各ユーザが自分の所属するグループに対してイベントを提案することを述べた。この代わりに、またはこれに加えて、イベント企画会社などの業者がイベントを提案し、これを契機としてスケジュール調整システムがメンバー間で共通の空き日時があるグループを検索し、その空き日時へのイベント設定をメンバーに提案するようにしてもよい。
例えば、イベント企画会社が本実施形態に係るスケジュール調整システムを活用してイベントの参加者を集めたいケースを想定する。この場合、イベント受付部32が企画会社からのイベントを受け付けると、メンバー特定部36は、ユーザ情報保持部34を参照して、そのイベントを提案するのにふさわしいグループをいくつか選択する。一例として、グループに年代、趣味、出身地、居住地域、勤務先、所属校などの属性情報が付与されている場合、イベント企画会社が指定した属性を有するグループを選択するようにしてもよい。例えば、「ワインの試飲会」のイベントを提案するときには、趣味に「グルメ」「ワイン」などが指定されているグループを選択するなどが考えられる。
スケジュール管理部40は、メンバー特定部36で選択されたグループ毎に、全構成メンバーのカレンダーを参照して、少なくともある比率(例えば50%)以上のメンバーで共通の空き日時を検索する。続いて、検索した空き日時と、イベント企画会社から提案されたイベントの開始時間とを比較し、イベントの開始時間が空き日時に含まれているグループを特定する。イベントの開始時間に共通の空き日時が存在しないグループはこの時点で対象外とする。
問い合わせ部26は、スケジュール管理部40によって特定された各グループの構成メンバーに対して、メンバー間で共通の空き日時があること、およびその空き日時にイベント(この場合「ワインの試飲会」)があることを知らせるメッセージを含んだメールを送信する。このメールの構成は、図9のメール200と同様であってよい。回答管理部52は各メンバーからの回答を受け取り、スケジュール管理部40は、グループ毎にメンバーからの回答を集計し、上述の実施形態と同様にして最適なイベント集合日時を決定する。
イベント企画会社等によって企画されるイベント毎に、イベント受付部32、メンバー特定部36、スケジュール管理部40等を含むスケジュール調整モジュールが存在し、各スケジュール調整モジュールが他のモジュールとは無関係に動作するようにスケジュールサーバを構成してもよい。この場合、各スケジュール調整モジュールは他のモジュールによる空き時間検索とは独立して動作するため、一部のユーザに対しては、同一の空き日時に二つ以上のモジュールからそれぞれ異なるイベントが提案されることもある。
ユーザによって登録されるイベントを処理するスケジュール調整モジュールと、イベント企画会社等によって登録されるイベントを処理するスケジュール調整モジュールとの間で、優先順序を付けるようにしてもよい。例えば、前者によるスケジュール調整を優先させ、そのイベントが確定した後に、後者によるスケジュール調整を行うようにしてもよい。
上述の実施の形態1では、空き日時検索部42がメンバー共通の空き日時を複数見つけ出した場合、問い合わせ部26がメンバーに対して複数の候補日時を含むメールを送信することを述べた。この代わりに、問い合わせ部26は、候補日時のうちいずれか一つを含むメールを送信するようにしてもよい。スケジュール管理部40が、全てのメンバーまたは所定の割合以上のメンバーからその候補日時について受け入れ可の回答が得られなかったと判定した場合、問い合わせ部26が別の候補日時を含むメールを改めてメンバーに送信するようにしてもよい。全てのメンバーまたは所定の割合以上のメンバーから候補日時について受け入れ可の回答が得られるまで、上記ステップが繰り返される。このような構成にすることで、複数の空き候補日時をメンバーに対して提示したためにかえって票割れが生じ、イベント日時を確定できなくなるような事態を回避することができる。
上述の実施の形態1では、メンバー選択画面130において必須メンバーが指定されている場合、空き日時検索部42は、まず必須メンバーのカレンダーを参照して全員に共通する空き日時を検索し、続いて、必須メンバー以外のメンバーのカレンダーを参照して、必須メンバーについて検索された空き日時の中から、残りのメンバーのうち最も多くのメンバーの予定が空いている日時を候補日時として選択するようにしてもよい。このようにすれば、少なくとも必須メンバーについては確実に集合可能な日時を空き候補日時として選定することができる。
実施の形態2.
上述の実施形態1では、ユーザや企業からのイベントの提案を契機にして、複数のメンバー間でスケジュールを調整することを説明した。実施の形態2では、あるグループのメンバー間で共通の空き日時が存在することをスケジュール調整システムが検出し、その空き日時に設定すべきイベントをメンバーに提案する。
図15は、実施の形態2に係るスケジュールサーバ312の構成を示す機能ブロック図である。以下の説明において、実施の形態1で説明した各ブロックと同じ符号が付されたブロックは、同様の機能を有するものとする。
実施の形態2では、スケジュールサーバ312にリコメンド部316が追加される。このリコメンド部316は、所定のタイミングで各グループに属するメンバー間で共通して存在する空き日時を検索し、その空き日時に入れることができるイベントを提案する機能を有している。
図16は、図15に示したリコメンド部316の詳細な機能ブロック図である。リコメンド部316は、共通空き日時検索部318、イベント検索部320、イベント保持部322を含む。
共通空き日時検索部318は、所定のタイミングで、例えば定期的に、ユーザ情報保持部34(図4参照)から各グループの構成メンバーの情報を取得し、スケジュール保持部24に格納されている各メンバーのカレンダーを参照する。そして、グループ毎に、メンバー間で共通して存在する空き日時を検索する。
図17は、共通空き日時検索部318による検索の様子を示す図である。ここでは、あるグループを構成するメンバーA、B、Cの3人の共通空き時間を検索する例を説明する。図中で上下方向に延びる長方形が、各メンバーのカレンダーにおける空き時間を模式的に表している。図示のように、メンバー毎に空き時間が異なるが、図中にハッチングで示す時間帯が共通している。共通空き日時検索部318は、この時間帯を共通空き日時として検出する。
図16に戻り、イベント保持部322は、空き日時に設定するイベントに関する情報を保持する。イベントに関する情報には、イベント名、イベントの開始時間の目安、イベントの所要時間の目安などが含まれる。イベントには例えば以下のものが含まれる。
1.メンバーの一人が、開催日時の目安を指定することなく、共通の空き時間があるときに開催したいイベントとして登録されたイベント。
例えば、グループ内でスポーツイベント(スキー、ゴルフなど)や飲み会などを開催したいが、メンバーの空き時間が見つかったときに行えばよいイベントなどが考えられる。このようなイベントは、所定の図6に示したイベント登録画面を通じてイベント保持部322に登録できるように構成してもよい。
2.過去にグループで開催されたことのあるイベント。
イベント保持部322は、スケジュール保持部24から過去にグループ内で設定されたイベントを検索し、そのイベントを再び開催するのに適した時期が訪れたときに提案すべきものを保持しておく。一例として、去年の冬にスキーのイベントが設定されたグループにおいて、メンバー間で共通の空き日時が存在することが検出された場合、各メンバーに対して「今年もそろそろスキーの季節です。予定の調整をしますか?」のようなメッセージを送り、メンバー間で共通の空き日時があることを示唆して新規イベントの登録を促すことなどが考えられる。
3.イベント保持部322が、イベント企画会社のサーバ等の外部サーバを検索して収集したイベント。
スポーツ、コンサート、演劇、映画等の、開催日時が予め決まっているイベント、飲食店や宿泊施設などにおける期間が限定されたイベントなどが考えられる。
イベント検索部320は、共通空き日時検索部318によって検索された共通空き日時に設定可能であるイベントを、イベント保持部322から検索する。イベント検索部320は、イベントの種類によっては、共通空き日時とは開始時間または終了時間が若干ずれているものも含めて検索してもよい。
図18は、実施の形態2に係るスケジュール調整プロセスを表すフローチャートである。
まず、共通空き日時検索部318が、ユーザ情報保持部34に記録されているグループ毎に、所属するメンバーのカレンダーをそれぞれ参照し、メンバー間で共通の空き日時がないか検索する(S112)。共通の空き日時が存在する場合(S114のY)、イベント検索部320は、その空き日時に設定可能であるイベントをイベント保持部322から検索する(S116)。適切なイベントが見つからない場合(S118のN)、問い合わせ部26から、各メンバーに対して共通の空き日時が存在することを通知するメールを送信する(S124)。例えば、メールには、「友人達としばらく会っていませんね。来週なら調整できそうです。」のようなメッセージを含めてもよい。このような通知をすることで、メンバーに対して何らかの新規のイベントを企画してスケジュール調整システムに登録させるきっかけを与えることができる。
適切なイベントが見つかった場合(S118のY)、問い合わせ部26から各メンバーのメールアドレスに対して、メンバー間で共通の空き日時が存在しかつその空き日時に参加可能であるイベントがある旨を通知し、そのイベントへの集合可否を問い合わせるメールを送信する(S120)。このメールには、イベントに関連づけて予めイベント保持部322に記憶されているメッセージを含めてもよい。例えば、来週の火曜日に共通する空き時間が検出され、提案するイベントが居酒屋のキャンペーンである場合、「来週の火曜日は居酒屋○○で飲み放題キャンペーンをやっていますが、グループでイベントを企画しますか?」のようなメッセージを追加するなどである。
スケジュール管理部40は、各メンバーからのイベントへの集合可否に関する回答を受け取る。そして、イベント登録部58は、イベントに集合可能と回答したメンバーのカレンダーに対して、そのイベントを書き込むとともに、集合不可と回答したメンバーのカレンダーに、空き日時に何らかの予定があることを示すダミーイベントを登録する(S122)。このダミーイベントをカレンダーに登録することで、別のイベントが提案されたときに、共通空き日時検索部318がこの日時を空き日時と判定することがなくなる。したがって、一度イベントへの集合不可と回答したにもかかわらず、同じ日時へのイベント集合を促すメールを再び受け取るような事態を回避することができる。
以上説明したように、実施の形態2によれば、イベントの具体的な提案がない場合でも、スケジュール調整システムがメンバーの共通の空き時間を検出する。空き時間の検出はグループのメンバーの意思に無関係に行われる。スケジュール調整システムからグループのメンバー間で共通の空き時間が存在することを通知することによって、何らかのイベントを企画しようというきっかけをメンバーに与えることができる。
また、スケジュール調整システムが検出した空き時間に設定可能なイベントを提案してくれるため、メンバーが自発的にイベントを企画しなくても適切なイベントをグループ内で簡便に設定することができる。
また、不定期に特定のメンバーで開催されるイベント、例えば季節毎のイベントなどがある場合でも、システムが共通の空き時間を検出してその空き時間にイベントを設定することを提案してくれるため、イベントの設定忘れや、長期間イベントが開催されなくなるという事態を回避することができる。
以上のように、スケジュール管理技術に関わらず、最初に具体的な日時を指定する必要がなく、特定のメンバー間で共通の空き日時が存在することを契機としてイベントの提案と登録が行われる点が、本実施の形態の特徴の一つである。
イベント保持部322に格納されているイベント毎に、共通空き日時検索部318が存在し、各検索部318が他の検索部とは無関係に動作するようにリコメンド部310を構成してもよい。この場合、各検索部318は他の検索部による共通空き日時検索とは独立して動作するため、一部のユーザに対しては、同一の空き日時に二つ以上のモジュールからそれぞれ異なるイベントが提案されることもある。
上述の実施の形態2では、スケジュール調整システムがあるグループのメンバー間で共通の空き日時があることを検出し、その空き日時に設定すべきイベントをメンバーに提案することを述べた。しかしながら、空き日時の検出は複数人に限られず、ユーザ毎の空き日時をスケジュール調整システムが検出してもよい。この場合、スケジュール調整システムは、検出した空き日時に設定することができるイベントを、イベント情報が登録されている外部サーバ等から検索してユーザ毎に提案してもよい。さらに、スケジュール調整システムは、何らかの規則にしたがう空き日時をユーザ毎に検索してもよい。例えば、あるユーザのカレンダーを定期的に参照して、毎週火曜日には予定が設定されていないことが多いことを検出した場合、スケジュール調整システムは、毎週火曜日に定期的に開催されるイベントを外部サーバ等から検索してそのユーザに提案してもよい。このとき、「毎週火曜日には予定が入っていないようですが、英会話スクールに通ってみてはいかがですか?」などのメッセージをそのユーザに送信してもよい。
以上、本発明をいくつかの実施の形態をもとに説明した。これらの実施の形態はあくまで例示であり、実施の形態同士の任意の組合せ、実施の形態の各構成要素や各処理プロセスの任意の組合せなどの変形例もまた、本発明の範囲にあることは当業者に理解されるところである。
上述したように、本発明に係るスケジュール調整装置は、ビジネス用途よりも遊びの用途に対する親和性が特に高い。そのため、クライアント端末が、ネットワーク接続機能を備えるいわゆるフィーチャーフォンやスマートフォン、タブレット端末などの、ユーザが常時携帯しどこでも気軽に使えるモバイル端末であると、一層便利である。例えば、あるユーザが「近々飲みに行きたいな」と思いつき、何人かの友人に声を掛けるような場合、いちいち全員のスケジュールを確認して日時を調整する作業は極めて煩雑である。本発明に係るスケジュール調整をモバイル端末を通じて利用することで、イベントを思いついた時点でそのイベントを登録するだけで簡便に参加者を集めることができるという、過去のツールでは実現不可能であった極めて有利な効果が発揮される。
本発明は、上述の各実施形態に限定されるものではなく、当業者の知識に基づいて各種の設計変更等の変形を加えることも可能である。各図に示す構成は、一例を説明するためのもので、同様な機能を達成できる構成であれば、適宜変更可能である。
実施の形態では、ユーザがクライアント端末のブラウザを介してスケジュールサーバからのサービスを受けることを述べたが、クライアント端末側に、スケジュールサーバに接続して簡便にサービスを受けられるように構成された専用のアプリケーションがインストールされていてもよい。このアプリケーションには、自身および他人のカレンダーを参照する機能、新規イベントを登録する機能、候補日時の問い合わせメールを送受信する機能のうち一つまたは複数が備えられていてもよい。
実施の形態では、新規イベントを提案したいユーザが、自身のクライアント端末を操作してサーバの提供する所定のサイトにアクセスし、イベント受付部を通じてイベントを登録することを述べた。これに加えて、またはこの代わりに、ユーザが自身のクライアント端末から所定のメールアドレスに対して、予め定められた形式にしたがって作成された電子メールを送信することで、イベント受付部を通じてイベントを登録できるようにスケジュール調整システムを構成してもよい。
実施の形態では、各機能ブロックが単一のスケジュールサーバに配置され、そのサーバからクライアント端末に対してサービスが提供されることを述べた。しかしながら、各機能ブロックに対応する機能が、ネットワークで接続可能である複数の機器に分散していてもよい。また、一部または全ての機能ブロックに対応する機能がクライアント端末側に存在していてもよい。これらの場合、本発明をスケジュール調整システムとして実装することができる。例えば、スケジュール保持部がクライアント端末に存在しその端末のユーザの電子的なカレンダーのみを保持しており、スケジュール管理部が各クライアント端末内のスケジュール保持部を参照するようにシステムを構成してもよい。
あるいは、統合的なスケジュールサーバが存在せず、全ての機能ブロックに対応する機能が各メンバーのクライアント端末に存在するシステムとして本発明を実装してもよい。この場合、いずれかのクライアント端末が一時的にマスタとなりサーバとして動作するように構成してもよいし、全ての端末が対等な関係で動作する、いわゆるピアツーピアシステムとして構成してもよい。
ユーザの属性情報として、そのユーザがイベントの集合に対してどのような性向を持つかを表すラベルを付与するようにしてもよい。例えば、多人数のイベントに余り参加しないユーザには「一匹狼」、インドアイベントであれば参加するユーザであれば「こたつの猫」のようなラベルを付与してもよい。このラベルは、ユーザが自分で設定できるように構成してもよいし、過去の複数のイベントへの集合の傾向に基づきスケジュール保持部が設定するように構成してもよい。
各ユーザが、空き日時として検索されたくない時間帯を自身のカレンダー上で指定できるように構成してもよい。例えば、特定の時間帯、曜日、日付にはイベントを入れたくない場合、予めこの指定をしておくことで、スケジュール管理部は指定された時間帯をそのユーザの空き日時として検索しなくなる。
イベントの種類に対して、そのイベントが仕事であるか遊びであるかを示す属性が予め付与されており、ユーザは、時間帯毎に設定可能なイベントの属性をカレンダー上で指定できるように構成されていてもよい。例えば、9時から18時までは仕事のイベントの設定のみを受け付け、18時から24時までは遊びのイベントの設定のみを受け付けるなどである。この代わりに、またはこれに加えて、スケジュール調整部が、イベントの種類に応じて候補日時を検索する時間帯を調整するようにしてもよい。例えば、仕事のイベントの候補日時を検索する場合は、平日の9時から18時まで、遊びのイベントの候補日時を検索する場合は、平日の18時以降と休日のみを対象にするなどが考えられる。このような設定をしておくことで、例えば会議が23時から設定されたり、飲み会が朝9時から設定されたりするなどの不都合を回避することができる。
あるユーザに対して、異なるグループから同時に複数のイベントが提案されることも考えられる。この場合、空き日時検索部42は、ユーザ毎に予め設定された基準にしたがっていずれかのイベントの候補日時を優先的に確保するようにしてもよい。例えば、あるユーザが「仕事優先」という基準を設定しており、会議のイベントと遊びのイベントが提案された場合、空き日時検索部42は、会議のイベントに対する候補日時を先に確保し、その後遊びのイベントの候補日時を確保するようにしてもよい。
スケジュール管理部40は、イベントの特性に応じて適切な人数のメンバーが集まるようにスケジュールを調整してもよい。例えば、イベントが「麻雀」である場合には、メンバーの数が4の倍数になるような候補日時を選定するなどが考えられる。また、スケジュール管理部40は、所定の条件を満足したときにのみイベントの集合日時を確定するようにしてもよい。例えば、5人以上集まった場合にはイベントを開催したいような場合に、スケジュール管理部40は、複数の候補日時を含む問い合わせに対して5人以上から受け入れ可の回答があったものを集合日時として確定してもよい。5人未満からしか受け入れ可の回答がなかった場合には、そのイベントを取り消し、問い合わせ部26から回答をしたメンバーに対してその旨を通知するようにしてもよい。5人以上から受け入れ可の回答があった候補日時が複数ある場合には、最も人数の多いものをイベントの集合日時として確定してもよいし、全ての候補日時をイベントの集合日時として確定してもよい。この実施例は、例えば何らかのインストラクター(例えばヨガなど)が自分の都合の良い日時にスクールを開催したいときなどに特に有効である。インストラクターは、自分の都合の良い日時を指定した多数のイベントを登録しておけば、スケジュール調整システムによって、採算の合う人数(例えば5人)が集合可能な日時だけに自動的にスクールイベントが設定されるので、生徒との連絡等の煩わしさが排除される。
スケジュールサーバ12は、登録されたイベント毎に、イベントの集合メンバーのみが書き込みできるネット掲示板を提供してもよい。この掲示板への書き込みが、集合メンバーのメールアドレスにメール送信されるように構成してもよい。これによって、イベントに遅れる、現地合流するなどのメッセージをメンバーに容易に通知することが可能になる。掲示板の代わりに、イベントの集合メンバーに対して投稿内容が送信されるようなミニブログのアカウントを取得するようにしてもよい。