(57)【特許請求の範囲】
【請求項１】
所定のデータ伝送路を介して、スケジュールの編集操作及び／又は該スケジュールの閲覧を行う情報端末と接続される情報処理装置であって、
イベントの開催予定及び／又は該イベントへの参加予定の変更を受け付ける編集手段と、
前記開催予定及び／又は前記参加予定の変更を検知すると、変更されたイベントのイベント情報と該イベントに参加する利用者のスケジュールのスケジュール情報を保持する所定の記憶領域にアクセスし、所定の条件に従って、前記イベント情報とイベントに参加する全ての利用者の前記スケジュール情報を相互に調整する調整手段と、
前記調整手段により調整されたスケジュール情報を前記情報端末に送信する情報提供手段と、を有することを特徴とする情報処理装置。
【請求項２】
前記調整手段は、
前記開催予定及び／又は前記参加予定の登録／更新を検知すると、登録／更新されたイベントに対応するスケジュールの生成に対して、前記利用者のスケジュールを調整する必要があるか否かを判定し、調整する必要があると判定した場合、前記利用者のスケジュールを調整することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記調整手段は、
登録／更新されたイベント情報の開始・終了日時と、前記利用者のスケジュール情報の行動日時とに基づき、前記開始・終了日時の間に前記行動日時が含まれるか否かを判定し、前記開始・終了日時の間に前記行動日時が含まれており、予定されている行動が重複すると判定した場合、前記利用者のスケジュール情報から、重複行動と判定されたスケジュール情報のいずれかを削除することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記調整手段は、
前記イベントへの参加要求の度合いを示す参加優先度が設定された参加情報を保持する所定の記憶領域にアクセスし、前記イベントごとに設定された前記参加優先度の比較結果に基づき、前記スケジュール情報を削除することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記調整手段は、
前記重複行動と判定されたスケジュール情報が対応する前記イベントの前記参加優先度を比較し、前記参加優先度の低いイベントに対応するスケジュール情報を削除することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記調整手段は、
前記開催予定及び／又は前記参加予定の削除を検知すると、削除されたイベントに対応するスケジュールの削除に対して、前記利用者のスケジュールを調整する必要があるか否かを判定し、調整する必要があると判定した場合、前記利用者のスケジュールを調整することを特徴とする請求項１ないし５のいずれか一項に記載の情報処理装置。
【請求項７】
前記調整手段は、
前記利用者に対して参加が要求されているイベントのイベント情報の開始・終了日時と、削除されたスケジュール情報の行動日時とに基づき、前記開始・終了日時の間に前記行動日時が含まれるか否かを判定し、前記開始・終了日時の間に前記行動日時が含まれており、スケジュール削除による空き日時に前記利用者が前記イベントに参加可能と判定した場合、前記利用者のスケジュール情報に、前記参加可能と判定されたイベントに対応するスケジュール情報を登録することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記調整手段は、
前記利用者のスケジュール情報に基づき、前記利用者が参加を予定しているイベントを特定し、特定したイベントの開催条件が満たされているか否かを判定し、前記開催条件が満たされていないと判定した場合、前記イベント情報を調整することを特徴とする請求項１ないし７のいずれか一項に記載の情報処理装置。
【請求項９】
前記調整手段は、
前記イベントへの参加要求の度合いを示す参加優先度が設定された参加情報を保持する所定の記憶領域にアクセスし、前記利用者が参加を予定しているイベントに設定された前記参加優先度が所定値未満か否かを前記開催条件として判定し、判定結果に基づき、前記イベント情報を更新することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記調整手段は、
前記参加優先度が所定値未満であり、前記開催条件が満たされていないと判定したイベントのイベント情報に対して、予め設定しておいた候補日時に基づき、前記開催予定の更新内容を決定し、決定した更新内容で前記イベント情報を更新することを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
所定のデータ伝送路を介して、スケジュールの編集操作及び／又は該スケジュールの閲覧を行う情報端末と接続される情報処理装置で実行されるスケジュール管理プログラムであって、
前記情報処理装置を、
イベントの開催予定及び／又は該イベントへの参加予定の変更を受け付ける編集手段と、
前記開催予定及び／又は前記参加予定の変更を検知すると、変更されたイベントのイベント情報と該イベントに参加する利用者のスケジュールのスケジュール情報を保持する所定の記憶領域にアクセスし、所定の条件に従って、前記イベント情報とイベントに参加する全ての利用者の前記スケジュール情報を相互に調整する調整手段と、
前記調整手段により調整されたスケジュール情報を前記情報端末に送信する情報提供手段として機能させるスケジュール管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スケジュール管理を制御する技術に関するものである。
【背景技術】
【０００２】
近年、スマートフォン（smart phone）などの情報端末が普及している。この情報端末は、携帯性に優れ、かつ、データ通信を介した高度な情報処理機能を提供できる。そのため、利用者は、例えば情報端末を携帯して移動し、移動中や移動先などの通信可能な環境であれば、所望する各種情報を送受信することができる。このように処理される情報には、スケジュール情報などがあり、情報端末から利用可能なスケジュール管理システムが知られている。
【０００３】
そこで、このようなスケジュール管理システムに対して、次のような技術が提案されている。例えば特許文献１には、移動時間を考慮してスケジュールを調整する技術が開示されている。また、特許文献２には、個人ごとのスケジュールを集積してイベントへの参加者を最大化するために開催日程を決定する技術が開示されている。また、特許文献３には、イベントの重要度、参加者それぞれの参加必要度、参加可否情報からイベントの開催日程を調整する技術が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のスケジュール管理では、利用者に対して最適なスケジュールを提案するものではない。
【０００５】
上記特許文献１に開示される技術は、個人のスケジュールを最適化するものであって、例えば同一スケジュールの参加者同士である他者が登録スケジュールを変更した場合を考慮し、調整を行うものではない。一方、上記特許文献２，３に開示される技術は、イベントの開催日程／参加数などを最適化するものであって、個人のスケジュールを最適化するものではない。つまり、従来のスケジュール管理では、イベントの開催予定や該イベントへの参加予定の変更に柔軟に対応し、イベントの最適化やスケジュールの最適化を相互に行うものではない。また、利用者は、自身が関わるイベントの開催予定や該イベントへの参加予定（利用者が主催者／参加者のイベント登録）の変更が反映された具体的なスケジュールに関心がある。
【０００６】
そのため、スケジュール管理では、イベントの開催予定や該イベントへの参加予定の変更に応じて、関係者のスケジュールが最適化されることが望ましい。
【０００７】
本発明は上記従来技術の問題点を鑑み提案されたものであり、利用者に対して最適なスケジュールを提案できる情報処理装置及びスケジュール管理プログラムを提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明に係る情報処理装置は、所定のデータ伝送路を介して、スケジュールの編集操作及び／又は該スケジュールの閲覧を行う情報端末と接続される情報処理装置であって、イベントの開催予定及び／又は該イベントへの参加予定の変更を受け付ける編集手段と、前記開催予定及び／又は前記参加予定の変更を検知すると、変更されたイベントのイベント情報と該イベントに参加する利用者のスケジュールのスケジュール情報を保持する所定の記憶領域にアクセスし、所定の条件に従って、前記イベント情報とイベントに参加する全ての利用者の前記スケジュール情報を相互に調整する調整手段と、前記調整手段により調整されたスケジュール情報を前記情報端末に送信する情報提供手段と、を有する。
【発明の効果】
【０００９】
本発明によれば、利用者に対して最適なスケジュールを提案する情報処理装置及びスケジュール管理プログラムを提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１の実施形態に係るスケジュール管理システムの構成例を示す図である。
【図２】本発明の第１の実施形態に係る情報処理装置のハードウェア構成例を示す図である。
【図３】本発明の第１の実施形態に係るスケジュール管理の機能構成例を示す図である。
【図４】本発明の第１の実施形態に係るイベント情報のデータ例を示す図である。
【図５】本発明の第１の実施形態に係る参加情報のデータ例を示す図である。
【図６】本発明の第１の実施形態に係るスケジュール情報のデータ例を示す図である。
【図７】本発明の第１の実施形態に係るスケジュールの表示例を示す図である。
【図８】本発明の第１の実施形態に係るスケジュールの調整処理手順例（その１）を示すフローチャートである。
【図９】本発明の第１の実施形態に係るスケジュールの調整処理手順例（その２）を示すフローチャートである。
【図１０】本発明の第１の実施形態に係るスケジュールの調整処理手順例（その３）を示すフローチャートである。
【図１１】本発明の第１の実施形態に係るイベント参加の調整処理手順例を示すフローチャートである。
【図１２】本発明の第１の実施形態に係るスケジュールの調整動作例（その１）を示す図である。
【図１３】本発明の第１の実施形態に係るスケジュールの調整動作例（その２）を示す図である。
【図１４】本発明の変形例に係るスケジュール管理の機能構成例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の好適な実施の形態（以下「実施形態」という）について、図面を用いて詳細に説明する。
【００１２】
［第１の実施形態］
＜システム構成＞
図１は、本実施形態に係るスケジュール管理システム１の構成例を示す図である。
図１には、情報処理装置１００と複数の情報端末２００１〜２００ｎ（以降総称する場合「情報端末２００」という）とが、インターネットなどのデータ伝送路Ｉ（外部ネットワーク）で接続されるシステム構成例が示されている。
【００１３】
情報端末２００は、データ通信を含む情報処理機能を有する機器である。情報端末２００は、タブレット端末などであり、Ｗｅｂブラウザなどのアプリケーションを介して、情報処理装置１００にアクセスし、各種情報の閲覧や操作を行う。
【００１４】
情報処理装置１００は、スケジュール管理機能を有する機器であり、スケジュール管理サーバにあたる。情報処理装置１００は、ＰＣ（Personal Computer）などであり、所定の記憶領域に、利用者のスケジュール（行動計画）に関する情報（以下「スケジュール情報」という）、イベントに関する情報（以下「イベント情報」という）、及びイベントへの参加に関する情報（以下「参加情報」という）を保持する。情報処理装置１００は、これらの情報に基づき、開催予定のイベントで紐付く関係者全てのスケジュールを調整し、最適化する。また、情報処理装置１００は、情報端末２００から、イベントや該イベントへの参加予定の編集操作要求を受け付けたり、スケジュールの調整結果などを、情報端末２００に応答したりする。
【００１５】
また、図１には、外部サービス提供サーバ３００（情報処理装置）が、データ伝送路Ｉに接続されている例が示されている。外部サービス提供サーバ３００は、情報処理装置１００が有するスケジュール管理機能と連携する各種外部サービスを提供する機器の総称である。外部サービスには、イベントの開催予定や該イベントの参加予定を登録可能なカレンダーサービスなどがある。このように、スケジュール管理システム１では、他の外部サービスと連携したスケジュール管理サービスを提供するように、システムを構成してもよい。
【００１６】
なお、以降の説明では、便宜上、上記２つのサーバを識別するため、スケジュール管理サーバを「情報処理装置１００」とし、外部サービス提供サーバは、単に「外部サービス提供サーバ３００」とする。
【００１７】
システム管理システム１は、上記システム構成により、次のようなサービスを提供する。利用者は、情報端末２００から、Ｗｅｂブラウザを介して、イベントの開催予定及び／又は開催イベントへの参加予定などの設定データを情報処理装置１００に送信し、イベント及び／又は参加予定の新規登録を要求する。これを受けて情報処理装置１００では、受信データに基づき、当該装置で保持するイベント情報及び／又は参加情報を更新する。また、情報処理装置１００では、予定変更に応じて、当該装置で保持するスケジュール情報、イベント情報、及び参加情報に基づき、該当イベントに参加予定の関係者全てのスケジュールを調整し、最適化する。
【００１８】
その結果、利用者は、例えば移動中や移動先から、情報端末２００のＷｅｂブラウザを介して、自身のスケジュール情報の取得を情報処理装置１００に要求すると、最適化されたスケジュール（調整結果）が、情報処理装置１００から情報端末２００に応答され、その内容を確認できる。
【００１９】
以上のように、本実施形態に係るスケジュール管理システム１では、上記システム構成により、利用者に対して最適なスケジュールを提案する環境を提供することができる。
【００２０】
＜ハードウェア構成＞
図２は、本実施形態に係る情報処理装置１００（スケジュール管理サーバ）のハードウェア構成例を示す図である。なお、上記スケジュール管理システム１に含まれる外部サービス提供サーバ３００は、以下に示す情報処理装置１００と略同一の装置である。よって、情報処理装置１００のハードウェア構成を説明することで、上記外部サービス提供サーバ３００のハードウェア構成の説明を省略する。
【００２１】
図２に示すように、情報処理装置１００は、入力装置１０１、表示装置１０２、外部Ｉ／Ｆ１０３、ＲＡＭ（Random Access Memory）１０４、ＲＯＭ（Read Only Memory）１０５、ＣＰＵ（Central Processing Unit）１０６、通信Ｉ／Ｆ１０７、及びＨＤＤ（Hard Disk Drive）１０８などを備え、それぞれがバスＢで相互に接続されている。
【００２２】
入力装置１０１は、キーボードやマウスなどを含み、情報処理装置１００に各操作信号を入力するのに用いられる。表示装置１０２は、ディスプレイなどを含み、情報処理装置１００による処理結果を表示する。
【００２３】
通信Ｉ／Ｆ１０７は、情報処理装置１００をネットワークに接続するインタフェースである。これにより、情報処理装置１００は、通信Ｉ／Ｆ１０７を介して、他の機器（「情報端末」や「外部サービス提供サーバ」）とデータ通信を行うことができる。
【００２４】
ＨＤＤ１０８は、プログラムやデータを格納している不揮発性の記憶装置である。格納されるプログラムやデータには、装置全体を制御する基本ソフトウェアであるＯＳ（Operating System）、及びＯＳ上において各種機能を提供するアプリケーションソフトウェアなどがある。また、ＨＤＤ１０８は、格納しているプログラムやデータを、所定のファイルシステム及び／又はＤＢ（Data Base）により管理している。
【００２５】
外部Ｉ／Ｆ１０３は、外部装置とのインタフェースである。外部装置には、記録媒体１０３ａなどがある。これにより、情報処理装置１００は、外部Ｉ／Ｆ１０３を介して、記録媒体１０３ａの読み取り及び／又は書き込みを行うことができる。記録媒体１０３ａには、フロッピー（商標又は登録商標）ディスク、ＣＤ（Compact Disk）、及びＤＶＤ（Digital Versatile Disk）、ならびに、ＳＤメモリカード（SD Memory card）やＵＳＢメモリ（Universal Serial Bus memory）などがある。
【００２６】
ＲＯＭ１０５は、電源を切っても内部データを保持することができる不揮発性の半導体メモリ（記憶装置）である。ＲＯＭ１０５には、情報処理装置１００の起動時に実行されるＢＩＯＳ（Basic Input/Output System）、ＯＳ設定、及びネットワーク設定などのプログラムやデータが格納されている。ＲＡＭ１０４は、プログラムやデータを一時保持する揮発性の半導体メモリ（記憶装置）である。ＣＰＵ１０６は、上記記憶装置（例えば「ＨＤＤ」や「ＲＯＭ」など）から、プログラムやデータをＲＡＭ上に読み出し、処理を実行することで、装置全体の制御や搭載機能を実現する演算装置である。
【００２７】
以上のように、本実施形態に係る情報処理装置１００は、上記ハードウェア構成により、各種情報処理サービスを提供することができる。
【００２８】
＜スケジュール管理機能＞
本実施形態に係るスケジュール管理機能について説明する。
本実施形態に係る情報処理装置１００では、イベントの開催予定や該イベントへの参加予定の変更を検知すると、所定の条件に従って、開催予定のイベントと該イベントに参加する利用者のスケジュールを相互に調整し、関係者全てのスケジュールを最適化する。本実施形態に係る情報処理装置１００は、このようなスケジュール管理機能を有している。
【００２９】
従来のスケジュール管理では、イベントの開催予定や該イベントへの参加予定の変更に応じて、関係者のスケジュールを最適化するものでないため、利用者に対して最適なスケジュールを提案するものではなかった。
【００３０】
そこで、本実施形態に係る情報処理装置１００では、利用者個人やイベント単位でスケジュール調整を行うのではなく、イベントの開催予定や該イベントへの参加予定の変更に応じて、開催予定のイベントと該イベントに参加する利用者のスケジュールを相互に調整する仕組みとした。
【００３１】
これにより、本実施形態に係る情報処理装置１００は、予定に変更が生じたイベントに参加予定の関係者全てのスケジュールが最適化される環境を提供する。その結果、本実施形態に係る情報処理装置１００では、利用者に対して最適なスケジュールを提案できる。
【００３２】
以下に、本実施形態に係るスケジュール管理機能の構成とその動作について説明する。
図３は、本実施形態に係るスケジュール管理の機能構成例を示す図である。
図３に示すように、本実施形態に係るスケジュール管理機能は、編集部１１、調整部１２、情報提供部１３、及び外部連携部２１などを有している。
【００３３】
なお、以下の説明では、便宜上、スケジュール管理機能を利用する利用者を「主催者」と「参加者」とに分けて説明する。主催者とはイベントを主催する利用者にあたり、参加者とはイベントに参加予定の利用者（イベントへの参加が要求された利用者）にあたる。よって、情報処理装置１００にアクセスする情報端末２００についても、「主催者の情報端末２００ａ」と「参加者の情報端末２００ｂ」とに分けて説明する。
【００３４】
《本機能で用いる情報》
スケジュール管理機能では、イベント情報、参加情報、及びスケジュール情報を用いる。
【００３５】
図４は、本実施形態に係るイベント情報８０Ｄのデータ例を示す図である。
図４に示すように、イベント情報８０Ｄは、イベント識別、イベント関連、及び主催者識別などの情報項目が対応付けられた１又は複数の情報セットを含み、これらの情報セットをイベント単位で管理している。イベント情報８０Ｄは、イベント情報保持部８０に記録・格納され保持される。
【００３６】
［イベント識別］項目は、イベントを識別する情報（以下「イベント識別情報」という）を保持する項目であり、項目値には、新規登録時にユニークに割り当てられた識別子（例えば「イベントＩＤ」）などがある。なお、識別子の値は、通し番号である必要はなく、イベントが一意に特定可能な値であればよい。
【００３７】
［イベント関連］項目は、イベントに関連する各種情報（以下「イベント関連情報」という）を保持する項目であり、開始日時、終了日時、開催場所、及び開催内容など詳細項目を含む。よって、項目値には、イベントの開始・終了日時（開催予定期間）を示す値（例えば「年月日と時刻の組み合わせ値」）、開催場所を示す値（例えば「事業所や会議室などを表す文字列（場所名）」）、開催内容を示す値（例えば「会議、打ち合わせ、セミナーなどを表す文字列（内容名）」）などがある。なお、終了日時は、開催時間（終了日時から開始日時の減算値）であってもよい。
【００３８】
［主催者識別］項目は、主催者を識別する利用者識別情報（以下「主催者識別情報」という）を保持する項目であり、項目値には、イベントを主催する利用者にユニークに割り当てられた識別子（例えば「利用者ＩＤ」）などがある。
【００３９】
図５は、本実施形態に係る参加情報７０Ｄのデータ例を示す図である。
図５に示すように、参加情報７０Ｄは、イベント識別、参加者識別、及び参加優先度などの情報項目が対応付けられた１又は複数の情報セットを含み、これらの情報セットをイベント単位で管理している。参加情報７０Ｄは、参加情報保持部７０に記録・格納され保持される。
【００４０】
［イベント識別］項目は、イベント識別情報を保持する項目である。よって、参加情報７０Ｄとイベント情報８０Ｄとは、イベント識別情報で紐付けられる。
【００４１】
［参加者識別］項目は、参加者を識別する利用者識別情報（以下「参加者識別情報」という）を保持する項目であり、項目値には、イベントに参加予定の利用者にユニークに割り当てられた識別子などがある。
【００４２】
［参加優先度］項目は、イベントへの参加要求の強さ（参加への要求度合い）／イベントの開催予定の重要度を示す情報（以下「参加優先度情報」という）を保持する項目であり、項目値には、優先度を比較可能な値（例えば「Ｎ段階の数値」）などがある。
【００４３】
参加優先度情報は、主催者と参加者といった立場の違いによって設定値が異なる。なぜなら、主催者は参加者に対して優先度を高めに設定するからである。参加優先度情報は、このような設定傾向を考慮すると、次のように設定できることが望ましい。例えば１０段階の優先度値が設定可能な場合（数値の高さで優先度を設定可能な場合）、参加者は、自身に対して１０段階の優先度設定を適用できる。これに対し、主催者は、「参加必須」（優先度"１０"）・「参加希望」（優先度"５"）・「参加可能」（優先度"２"）などの３つの選択肢を選択することで優先度を設定できる。なお、「参加必須」・「参加希望」・「参加可能」などの選択肢の種類や各選択肢に割り当てる優先度については、設定環境の利便性を考慮して予め決定しておけばよい。これにより、優先度を他の利用者より自身の方が細かく設定することができる。
【００４４】
図６は、本実施形態に係るスケジュール情報９０Ｄのデータ例を示す図である。
図６に示すように、スケジュール情報９０Ｄは、参加者識別及びスケジュール関連などの情報項目が対応付けられた１又は複数の情報セットを含み、これらの情報セットを参加者単位で管理している。スケジュール情報９０Ｄは、スケジュール情報保持部９０に記録・格納され保持される。
【００４５】
［参加者識別］項目は、参加者識別情報を保持する項目である。よって、スケジュール情報９０Ｄと参加情報７０Ｄとは、利用者識別情報で紐付けられる。
【００４６】
［スケジュール関連］項目は、スケジュールに関連する情報（以下「スケジュール関連情報」という）を保持する項目であり、行動日時、行動種別、イベント識別、及び移動先など詳細項目を含む。項目値には、予定される行動日時を示す値（例えば「年月日と時刻の組み合わせ値」）、行動種別を示す値（例えば「イベント参加／離脱、移動開始／完了などを表す文字列（種別名）」）、行動に対応するイベントの識別子（イベント識別情報）、行動による移動先を示す値（例えば「開催場所を表す文字列（場所名）」）などがある。よって、スケジュール情報９０Ｄとイベント情報８０Ｄとは、スケジュール関連情報のイベント識別情報で紐付けられる。
【００４７】
なお、上記各情報保持部７０，８０，９０は、リレーショナルＤＢ（Relational DB）などであり、情報処理装置１００が備える記憶装置の所定の記憶領域にあたる。
【００４８】
《本機能が有する各機能部》
図３の説明に戻る。編集部１１は、所定のデータ操作により、上記各情報７０Ｄ，８０Ｄ，９０Ｄを編集する機能部である。ここで言う編集には、新規データの登録／既存データの更新／削除などがある。編集部１１は、対話的なインタフェース（例えば「ＧＵＩ：Graphical User Interface」）機能を有し、利用者からの入力／データ操作要求を受け付ける。例えば編集部１１は、インタフェース機能を介して、主催者の情報端末２００ａからの入力／データ操作要求を受け付ける。また、編集部１１は、データ操作要求に従って、情報保持部（上記各情報保持部７０，８０，９０のいずれか）にアクセスし、所定の情報項目値である検索情報（検索キー）に基づき、編集対象情報（上記各情報７０Ｄ，８０Ｄ，９０Ｄのいずれか）を検索する。編集部１１は、検索結果として特定した情報セット（リレーション）に対して編集を行う。
【００４９】
例えば新規データを登録する場合、編集部１１は、インタフェース機能を介して登録情報種別値や登録情報項目値などの入力を受け付ける。編集部１１は、登録情報種別値に基づき、情報登録先の情報保持部にアクセスし、新規情報セットを生成し、生成した情報セットに登録情報項目値を記録・格納する。
【００５０】
また、既存データを更新する場合、編集部１１は、インタフェース機能を介して更新情報種別値、検索キー、及び更新情報項目値などの入力を受け付ける。編集部１１は、更新情報種別値に基づき、情報更新先の情報保持部にアクセスし、検索キーに基づき、更新対象情報を検索する。編集部１１は、検索結果として特定した情報セットの該当情報項目値を更新情報項目値で更新する。
【００５１】
また、既存データを削除する場合、編集部１１は、インタフェース機能を介して削除情報種別値及び検索キーなどの入力を受け付ける。編集部１１は、削除情報種別値に基づき、情報削除先の情報保持部にアクセスし、検索キーに基づき、削除対象情報を検索する。編集部１１は、検索結果として特定した情報セットを削除する。
【００５２】
調整部１２は、所定の条件に従って、開催予定のイベントと該イベントの参加者のスケジュールを相互に調整し、関係者全てのスケジュールを最適化する機能部である。調整部１２は、編集部１１により、イベントの開催予定や該イベントへの参加予定が変更（新規データの登録／既存データの更新／削除）されたことを受けて上記調整を開始する。
【００５３】
（Ａ）スケジュールの調整
調整部１２は、イベントの開催予定や該イベントへの参加予定の変更を検知すると（編集部からの変更通知を受け付けると）、該当イベントの関係者全てのスケジュールを調整する。このとき調整部１２は、スケジュール情報９０Ｄの登録、更新、又は削除などを行う。
【００５４】
調整部１２は、検知した変更がイベントの新規登録・該イベントへの参加登録であった場合（イベント情報と参加情報に新規データが登録された場合）、登録に対するスケジュールの調整を行う。また、調整部１２は、検知した変更がイベントの登録更新・該イベントへの参加登録更新であった場合（イベント情報及び／又は参加情報の既存データが更新された場合）、更新に対するスケジュールの調整を行う。また、調整部１２は、検知した変更がイベントの登録削除・該イベントへの参加登録削除であった場合（イベント情報及び／又は参加情報の既存データが削除された場合）、削除に対するスケジュールの調整を行う。
【００５５】
調整部１２は、登録／更新時の調整を次のように行う。調整部１２は、イベント情報保持部８０と参加情報保持部７０にアクセスし、検知時に受け取ったイベント識別情報に基づき、該当イベント情報８０Ｄと該当参加情報７０Ｄを取得する。調整部１２は、スケジュール情報保持部９０にアクセスし、取得したイベント情報８０Ｄと参加情報７０Ｄに基づき、変更されたイベントの参加者に対応する情報セットを生成し、スケジュール情報９０Ｄを登録／更新する。
【００５６】
調整部１２は、削除時の調整を次のように行う。調整部１２は、スケジュール情報保持部９０にアクセスし、検知時に受け取ったイベント識別情報に基づき、該当スケジュール情報９０Ｄを削除する。
【００５７】
（Ａ−１）調整が必要となったスケジュールの調整
調整部１２は、上記登録／更新／削除に伴い調整が必要となった他のスケジュールがあるか否かを判断し、該当スケジュールがあった場合、所定の条件に従って、該当スケジュールを調整する。
【００５８】
このとき調整部１２は、調整が必要となった他のスケジュールがあるか否かの判断を次のように行う。調整部１２は、登録／更新／削除後のスケジュール情報９０Ｄを参照し、参加者識別情報に基づき、同一参加者のスケジュール関連情報が複数存在するか否かを判断する。調整部１２は、該当スケジュール関連情報が複数存在した場合、スケジュール関連情報に基づき、同時に２つ以上の行動（重複行動）が予定されているか否かを判断する。具体的には、調整部１２は、行動日時、行動種別、及びイベント識別の各情報項目値に基づき、あるイベントへの参入から離脱までの間に、別のイベントの参入又は離脱の行動が予定されているか否かを判断する。また、調整部１２は、行動日時、行動種別、及び移動先の各情報項目値に基づき、ある移動開始から移動終了までの間に、別の移動が予定されているか否かを判断する。
【００５９】
調整部１２は、同時に２つ以上の行動（重複行動）が予定されていた場合、該当スケジュールを調整が必要なスケジュールと判断し、調整が必要な状態を解消するために、該当スケジュール情報９０Ｄを更新又は削除する。このとき調整部１２は、調整が必要な状態の解消を次のように行う。調整部１２は、参加情報７０Ｄを参照し、該当スケジュール情報９０Ｄの参加者識別情報とスケジュール関連情報に含まれるイベント識別情報に基づき、イベントの参加者に対して設定されている参加優先度情報を特定する。調整部１２は、特定した参加優先度情報に基づく優先度の比較結果から、優先度の低いイベントを特定する。調整部１２は、特定したイベントのイベント識別情報を含むスケジュール情報９０Ｄを削除する。また、調整部１２は、特定したイベントの参加者に関する設定値（参加者識別子及び参加優先度値）を含む参加情報７０Ｄを削除する。つまり、調整部１２は、重複状態にあるスケジュールのうち、優先度の低いイベントに関するスケジュールを削除し、優先度の高いイベントに関連するスケジュールを残す。
【００６０】
（Ａ−２）空き日時に対するスケジュールの調整
調整部１２は、上記状態の解消を解消すると（該当スケジュールを削除すると）、スケジュールの削除により発生した空き日時に参加可能な（参加要求されている）イベントがあるか否かを判断し、該当イベントがあった場合、該当イベントに対するスケジュールの調整を行う（上記登録時の調整を行う）。
【００６１】
このとき調整部１２は、空き日時に参加可能な（参加要求されている）イベントがあるか否かの判断を次のように行う。調整部１２は、削除後の参加情報７０Ｄを参照し、参加者識別情報とイベント識別情報との対応関係から、削除したスケジュールの参加者が参加予定のイベントを特定する。調整部１２は、イベント情報８０Ｄを参照し、特定したイベントのイベント識別情報に基づき、該当イベント関連情報の開始・終了日時を特定する。調整部１２は、特定した開始・終了日時の間（開催予定）に、削除したスケジュール情報９０Ｄの行動日時が含まれるか否かを判断する。
【００６２】
調整部１２は、開始・終了日時の間に行動日時が含まれる場合、該当イベントが空き日時に参加可能なイベントと判断し、スケジュール情報保持部９０にアクセスし、イベント情報８０Ｄと参加情報７０Ｄに基づき、該当イベントに対応するスケジュール情報９０Ｄを登録する。つまり、調整部１２は、スケジュールの削除により発生した空き日時に、参加可能なイベントのスケジュールを新たに登録する。
【００６３】
なお、調整部１２は、対話的なインタフェース機能を有し、利用者からの入力／データ操作要求を受け付けるようにしてもよい。これにより、調整部１２では、利用者操作に応じた上記調整処理を実行できる。また、以下に説明する「イベント参加の調整」についても同様である。
【００６４】
（Ｂ）イベント参加の調整
調整部１２は、上述したようなスケジュールの変更を検知すると、変更されたスケジュールに関連するイベントと参加予定の全てを調整する。このとき調整部１２は、イベント情報８０Ｄと参加情報７０Ｄの更新又は削除などを行う。
【００６５】
調整部１２は、更新時の調整を次のように行う。調整部１２は、イベント情報保持部８０にアクセスし、変更されたスケジュール情報９０Ｄに基づき、行動種別"イベント参入"の該当イベント情報８０Ｄを取得する。調整部１２は、取得したイベント情報８０Ｄを更新するとともに、参加情報保持部７０にアクセスし、更新したイベント情報８０Ｄのイベント識別情報と同一の参加情報７０Ｄを更新する。
【００６６】
調整部１２は、削除時の調整を次のように行う。変更されたスケジュール情報９０Ｄに基づき、行動種別"イベント参入"の該当イベント情報８０Ｄを取得する。調整部１２は、上記更新結果に基づき、取得したイベント情報８０Ｄのうち、更新できなかったイベント情報８０Ｄを削除する。
【００６７】
（Ｂ−１）開催条件に基づくイベント参加の調整
調整部１２は、登録／更新／削除されたスケジュールに関連するイベントが、所定の開催条件を満たしているか否かを判断し、開催条件を満たしていない場合、決定した更新内容に従って、該当イベントと該当参加予定を調整する。
【００６８】
このとき調整部１２は、イベントが開催条件を満たしているか否かの判断や更新内容の決定を次のように行う。調整部１２は、参加情報保持部７０にアクセスし、取得したイベント情報８０Ｄのイベント識別情報に基づき、該当参加情報７０Ｄを特定する。調整部１２は、特定した参加情報７０Ｄの参加優先度情報に基づき、優先度に「参加しない」を表す所定値が設定されているか否かを開催条件として判断する。調整部１２は、優先度が「参加しない」と設定されている場合（「参加必須」／「参加可能」から「参加しない」に設定された場合）、該当イベントが開催条件を満たさないイベントと判断する。調整部１２は、判断されたイベントのイベント関連情報に含まれる開始・終了日時に、別の日時を設定する内容を更新内容として決定する。また、調整部１２は、判断されたイベントに対応する参加情報７０Ｄの参加者識別に、更新イベントへの参加を要求する利用者（参加希望者）の利用者識別情報を設定する内容を更新内容として決定する。
【００６９】
なお、上記イベント情報８０Ｄの更新内容の決定では、別の日時の候補として、例えばイベント情報８０Ｄの登録時にイベント識別情報に対応付けて設定しておいた複数の日時情報を用いればよい。
【００７０】
また、次のような方法であってもよい。調整部１２は、スケジュール情報保持部９０にアクセスし、開催条件の判断時に用いた参加優先度情報に対応付けられた参加者識別情報に基づき、更新イベントの参加者のスケジュール情報９０Ｄを特定する。調整部１２は、特定したスケジュール情報９０Ｄのスケジュール関連情報に含まれる行動日時に基づき、参加者の空き日時を特定し、特定した日時情報を用いる。
【００７１】
また、調整部１２は、インタフェース機能を介して、参加者から開催予定（開始・終了日時）や開催場所などを受け付けて、受け付けた開催予定・開催場所の情報に基づき、更新イベントの開催可能性が最も高い日時を割り出し、割り出した日時情報を用いる。
【００７２】
また、上記開催条件の判断では、優先度設定の代わりに、イベントへの参加人数が所定数以上か否か開催条件として判断してもよい。この場合、開催条件の判断では、例えばイベント情報８０Ｄの登録時にイベント識別情報に対応付けて設定しておいた開催人数情報を、開催条件の判断基準値（閾値）として用いればよい。
【００７３】
調整部１２は、参加情報保持部７０にアクセスし、取得したイベント情報８０Ｄのイベント識別情報に基づき、該当参加情報７０Ｄを特定する。調整部１２は、特定した参加情報７０Ｄの参加者識別情報に基づき、各イベントへの参加人数を特定する。調整部１２は、特定した参加人数の値が、取得したイベント情報８０Ｄの開催人数情報の値以上か否かを開催条件として判断する。調整部１２は、参加人数が開催人数より少ない場合、開催条件を満たさなかったイベントのイベント情報８０Ｄとイベント識別情報で紐付く参加情報７０Ｄの更新内容を決定する。なお、参加人数に基づく開催条件の判断では、開催条件が満たされない場合、イベント開催の必要性が低いことから、該当イベント情報８０Ｄを削除するとともに、削除イベントのイベント識別情報で紐付く該当参加情報７０Ｄを削除するようにしてもよい。
【００７４】
また、上記参加情報７０Ｄの更新内容の決定では、参加者が更新イベントに参加可能か否かを判断し、参加不可能な場合、参加情報７０Ｄに代理参加する利用者（代理参加者）の利用者識別情報を設定する内容を更新内容として決定するようにしてもよい。
【００７５】
このとき調整部１２は、参加者が更新イベントに参加可能か否かの判断を次のように行う。調整部１２は、スケジュール情報保持部９０にアクセスし、参加者識別情報に基づき、該当スケジュール関連情報を特定する。調整部１２は、特定したスケジュール関連情報の行動日時と更新イベントのイベント関連情報に含まれる開始・終了日時とに基づき、スケジュールとイベントの重複を検証し、検証結果から、参加者の参加可否を判断する。
【００７６】
（Ｃ）スケジュールの調整とイベント参加の調整との相互処理
調整部１２は、上述したようなイベント参加の変更を検知すると、編集部１１からの変更通知を受け付けたときと同じように、該当イベントの関係者全てのスケジュールを調整する。
【００７７】
このように、調整部１２では、各情報７０Ｄ，８０Ｄ，９０Ｄの変更を検知することで、調整の必要性を判断し、判断結果に基づき、開催予定のイベントと該イベントに参加する利用者のスケジュールを相互に調整し、調整の必要性がなくなるまで（利用者がイベントに参加可能か、又は、イベントが削除されるか、のどちらかに該当するまで）調整処理を繰り返す。その結果、本実施形態に係るスケジュール管理機能では、イベント関係者全てのスケジュールが最適化される。
【００７８】
情報提供部１３は、各情報７０Ｄ，８０Ｄ，９０Ｄを利用者に提供する機能部である。情報提供部１３は、例えば参加者の情報端末２００ｂからの情報提供要求を受け付けると、要求時に受け付けた提供情報指定に基づき、情報保持部（上記各情報保持部７０，８０，９０のいずれか）にアクセスする。情報提供部１３は、要求時に受け付けた提供情報識別指定に基づき、指定された提供情報（上記各情報７０Ｄ，８０Ｄ，９０Ｄのいずれか）を取得し、要求先に応答する。このとき情報提供部１３は、取得した提供情報を、要求元の情報端末２００ｂが表示可能なデータに変換し、応答するようにしてもよい。
【００７９】
図７は、本実施形態に係るスケジュールの表示例を示す図である。
図７には、情報提供部１３から応答されたスケジュール情報９０Ｄが情報端末２００に表示された場合の例が示されている。
【００８０】
図７に示す表示例では、情報提供部１３が、要求時に受け付けた提供情報指定"スケジュール情報"に基づき、スケジュール情報保持部９０にアクセスする。情報提供部１３が、要求時に受け付けた提供情報識別指定"Ｕｓｅｒ０１２"（参加者識別情報）に基づき、参加者"Ｕｓｅｒ０１２"のスケジュール情報９０Ｄを取得し、要求先に応答する。その結果、参加者"Ｕｓｅｒ０１２"の情報端末２００ｂには、自身のスケジュールが表示される。これにより、利用者には、自身が関わるイベントの開催予定や該イベントへの参加予定の変更が反映された具体的なスケジュール（最適化されたスケジュール）が表示される。
【００８１】
なお、上記情報提供は、情報端末２００からの要求に対して情報処理装置１００が応答するプル方式を用いた例であるが、これに限らない。例えば情報処理装置１００から情報端末２００に対して能動的に情報提供を行うプッシュ方式を用いてもよい。この場合、情報提供は次のように行えばよい。例えば情報提供部１３は、調整部１２による調整処理の終了を検知した（調整部からの終了通知を受け付けた）タイミングで提供情報を送信する。なおこの場合、情報提供部１３は、情報提供対象である情報端末２００のネットワーク識別情報（ＩＰアドレス：Internet Protocol address）と情報端末２００を所有する利用者の利用者情報を管理しているものとする。また、上記プル方式と上記プッシュ方式のどちらの方式を用いるかは、本サービスの運用方針や情報提供時の通信負荷などを考慮して決定すればよい。
【００８２】
図３の説明に戻る。外部連携部２１は、本サービスと外部サービスとを連携する機能部である。外部連携部２１は、情報処理装置１００と外部サービス提供サーバ３００との間の通信（接続）を制御し、両サービス間で情報連携を行う。つまり、外部連携部２１は、外部サービス接続制御部である。外部サービス提供サーバ３００は、外部ネットワークＩを介した通信（データアクセス）をサポートするインタフェース機能を有している。よって、外部連携部２１は、上記インタフェース機能を介して、外部サービス提供サーバ３００にアクセスする。これにより、編集部１１や調整部１２は、外部連携部２１に対して、情報設定や情報取得（情報参照）などを要求することで、外部サービス提供サーバ３００が保持する情報を更新したり、取得（参照）したりすることができる。
【００８３】
以上のように、本実施形態に係るスケジュール管理機能は、上記各機能部が連携動作することにより実現される。なお、上記各機能部は、情報処理装置１００に搭載（インストール）されるプログラム（スケジュール管理機能を実現するソフトウェア）が、演算装置（ＣＰＵ）により、記憶装置（「ＨＤＤ」や「ＲＯＭ」）からメモリ（ＲＡＭ）上に読み出され、以下の処理が実行されることで実現される。
【００８４】
本実施形態に係るスケジュール管理機能の詳細な動作（機能部群の連携動作）について、処理手順を示すフローチャートを用いて説明する。
【００８５】
《スケジュール調整の基本処理》
図８は、本実施形態に係るスケジュールの調整処理手順例（その１）を示すフローチャートである。
図８に示すように、情報処理装置１００では、調整部１２により、イベントの開催予定や該イベントへの参加予定の変更（イベント情報や参加情報の変更）を検知すると、検知した変更種別を判定する（ステップＳ１０１）。
【００８６】
調整部１２は、検知した変更を登録と判定した場合（ステップＳ１０１：［登録］）、イベント情報８０Ｄ・参加情報７０Ｄが新規登録されたとして、登録に対するスケジュールの調整処理を行う（ステップＳ１０２）。登録時の調整処理の詳細については図９を用いて後述する。
【００８７】
次に、調整部１２は、上記調整処理により、イベント情報８０Ｄ・参加情報７０Ｄが削除されたか否かを判定する（ステップＳ１０３）。
【００８８】
調整部１２は、イベント情報８０Ｄ・参加情報７０Ｄが削除されたと判定した場合（ステップＳ１０３：ＹＥＳ）、削除されたイベント情報８０Ｄ・参加情報７０Ｄのイベント識別情報と一致するスケジュール情報９０Ｄが存在するか否かを判定する（ステップＳ１０４）。このとき調整部１２は、スケジュール情報保持部９０にアクセスし、削除されたイベント情報８０Ｄ・参加情報７０Ｄのイベント識別情報に基づき、スケジュール情報９０Ｄのイベント識別情報を参照する。これにより、調整部１２は、一致するイベント識別情報を含むスケジュール情報９０Ｄの特定結果に基づき、該当情報の存在を判定する。
【００８９】
調整部１２は、一致するスケジュール情報９０Ｄが存在すると判定した場合（ステップＳ１０４：ＹＥＳ）、イベント情報８０Ｄ・参加情報７０Ｄの削除により調整が必要なスケジュールが存在するとして、削除に対するスケジュールの調整処理を行う（ステップＳ１０５）。登録時の調整処理の詳細については図１０を用いて後述する。
【００９０】
なお、調整部１２は、イベント情報８０Ｄ・参加情報７０Ｄが削除されていないと判定した場合（ステップＳ１０３：ＮＯ）、上記ステップＳ１０４（削除時の調整要否判定），Ｓ１０５（削除時の調整）の処理をスキップする。
【００９１】
また、調整部１２は、一致するスケジュール情報９０Ｄが存在しないと判定した場合（ステップＳ１０４：ＮＯ）、イベント情報８０Ｄ・参加情報７０Ｄの削除により調整が必要なスケジュールが存在しないとして、上記ステップＳ１０５（削除時の調整）の処理をスキップする。
【００９２】
また、調整部１２は、検知した変更を更新と判定した場合（ステップＳ１０６：［更新］）、上記ステップＳ１０７（更新時の調整要否判定）の処理に移行し、上記ステップＳ１０２（登録時の調整）からＳ１０５（削除時の調整）の処理をスキップする。
【００９３】
次に、調整部１２は、上記調整処理により、イベント情報８０Ｄ・参加情報７０Ｄが更新されたか否かを判定する（ステップＳ１０６）。
【００９４】
調整部１２は、イベント情報８０Ｄ・参加情報７０Ｄが更新されたと判定した場合（ステップＳ１０６：ＹＥＳ）、更新されたイベント情報８０Ｄ・参加情報７０Ｄのイベント識別情報と一致するスケジュール情報９０Ｄが存在するか否かを判定する（ステップＳ１０７）。
【００９５】
調整部１２は、一致するスケジュール情報９０Ｄが存在すると判定した場合（ステップＳ１０７：ＹＥＳ）、イベント情報８０Ｄ・参加情報７０Ｄの更新により調整が必要なスケジュールが存在するとして、更新に対するスケジュールの調整処理を行う（ステップＳ１０８）。更新時の調整処理の詳細については図９を用いて後述する。
【００９６】
なお、調整部１２は、イベント情報８０Ｄ・参加情報７０Ｄが更新されていないと判定した場合（ステップＳ１０６：ＮＯ）、上記ステップＳ１０７（更新時の調整要否判定），Ｓ１０８（更新時の調整）の処理をスキップする。
【００９７】
また、調整部１２は、一致するスケジュール情報９０Ｄが存在しないと判定した場合（ステップＳ１０７：ＮＯ）、イベント情報８０Ｄ・参加情報７０Ｄの更新により調整が必要なスケジュールが存在しないとして、上記ステップＳ１０８（更新時の調整）の処理をスキップする。
【００９８】
最後に、調整部１２は、上記スケジュールの調整に伴うイベント参加（イベント情報及び／又は参加情報）の調整処理を行う（ステップＳ１０９）。イベント参加の調整処理の詳細については図１１を用いて後述する。
【００９９】
《新規登録／更新時のスケジュール調整処理》
図９は、本実施形態に係るスケジュールの調整処理手順例（その２）を示すフローチャートである。図９には、上記登録／更新時の調整処理の詳細について、その処理手順例が示されている。
【０１００】
図９に示すように、情報処理装置１００は、調整部１２により、編集部１１からイベント情報８０Ｄ・参加情報７０Ｄの登録／更新の変更通知を受け付ける。このとき、調整部１２は、変更通知として編集部１１から、変更されたイベントのイベント識別情報を受け付ける。
【０１０１】
調整部１２は、変更通知を受け付けると、イベント情報保持部８０・参加情報保持部７０にアクセスし、受け付けたイベント識別情報に基づき、該当する（登録／更新された）イベント情報８０Ｄ・参加情報７０Ｄを取得する（ステップＳ２０１）。
【０１０２】
次に、調整部１２は、スケジュール情報保持部９０にアクセスし、先に取得したイベント情報８０Ｄ・参加情報７０Ｄに基づき、変更されたイベントに対応するスケジュール情報９０Ｄを生成する（ステップＳ２０２，Ｓ２０３）。このとき調整部１２は、スケジュール情報９０Ｄを参照し、受け取ったイベント識別情報を含む情報セット（既に登録済みの該当スケジュール情報）があるか否かを判定する。調整部１２は、該当情報が存在しない場合、新規情報セットを生成し、情報項目値を記録・格納する。一方、調整部１２は、該当情報が存在する場合、既存情報セットの情報項目値を更新する。
【０１０３】
スケジュール情報９０Ｄの情報項目値は、次のような情報を基に記録・格納又は更新される。スケジュール情報９０Ｄの［行動日時］項目の値は、イベント情報８０Ｄのイベント関連情報に含まれる［開始日時］／［終了日時］項目の値を基に記録・格納又は更新される。スケジュール情報９０Ｄの［行動種別］項目の値は、イベント情報８０Ｄのイベント関連情報に含まれる［開始日時］／［終了日時］項目に対応した"イベント参加"／"イベント離脱"の値を基に記録・格納又は更新される。スケジュール情報９０Ｄの［イベント識別］項目の値は、受け取ったイベント識別情報を基に記録・格納又は更新される。
【０１０４】
次に、調整部１２は、生成したスケジュールに対して、調整が必要な他のスケジュールがあるか否かを判定する（重複行動の調整要否判定：ステップＳ２０４）。つまり、上記登録／更新に伴い調整が必要となった他のスケジュールがあるか否かを判断し、該当スケジュールがあった場合、所定の条件に従って、該当スケジュールを調整する。このとき調整部１２は、登録／更新後のスケジュール情報９０Ｄを参照し、参加者識別情報に基づき、同一参加者のスケジュール関連情報が複数存在するか否かを判断する。調整部１２は、該当スケジュール関連情報が複数存在した場合、スケジュール関連情報に基づき、同時に２つ以上の行動（重複行動）が予定されているか否かを判断する。なお、このときの重複行動の判断は、あるイベントへの参入から離脱までの間に別のイベントの参入又は離脱の行動が予定されているか否か、ある移動開始から移動終了までの間に別の移動が予定されているか否か、で判断する。調整部１２は、同時に２つ以上の行動が予定されていた場合、調整が必要なスケジュールがあると判定する。
【０１０５】
調整部１２は、調整が必要な他のスケジュールがあると判定した場合（ステップＳ２０４：ＹＥＳ）、該当スケジュールの中から、調整が必要な状態を解消するために削除（調整）するスケジュールを選択する（ステップＳ２０５）。このとき調整部１２は、参加情報７０Ｄを参照し、該当スケジュール情報９０Ｄの参加者識別情報とスケジュール関連情報に含まれるイベント識別情報に基づき、イベントの参加者に対して設定されている参加優先度情報を特定する。調整部１２は、特定した参加優先度情報に基づき、スケジュールが重複したイベントの優先度を比較し、優先度の低いイベントを特定する。調整部１２は、特定したイベントのスケジュールを選択する。
【０１０６】
その結果、調整部１２は、選択したスケジュールのスケジュール情報９０Ｄを削除する（ステップＳ２０６）。なおこのとき行う削除処理は、図１０に示す削除時の調整処理である。
【０１０７】
なお、調整部１２は、調整が必要な他のスケジュールがないと判定した場合（ステップＳ２０４：ＮＯ）、上記ステップＳ２０５（調整対象の選択），Ｓ２０６（削除時の調整）の処理をスキップする。
【０１０８】
このように、情報処理装置１００では、スケジュール登録／更新に伴い重複状態にあるスケジュールを、調整が必要となったスケジュールとして特定する。その結果、情報処理装置１００では、該当スケジュールのうち、優先度の低いイベントに関するスケジュールを削除し、優先度の高いイベントに関連するスケジュールを残す。つまり、本実施形態では、相対的に参加要求の弱いイベントに関するスケジュールを削除する調整を行う。
【０１０９】
《削除時のスケジュール調整処理》
図１０は、本実施形態に係るスケジュールの調整処理手順例（その３）を示すフローチャートである。図１０には、上記削除時の調整処理の詳細について、その処理手順例が示されている。
【０１１０】
図１０に示すように、情報処理装置１００は、調整部１２により、スケジュール情報保持部９０にアクセスし、削除対象として特定された該当スケジュール情報９０Ｄを削除する（ステップＳ３０１）。このとき調整部１２は、該当スケジュール情報９０の情報項目値を一時保持する。
【０１１１】
次に、調整部１２は、イベント情報保持部８０・参加情報保持部７０にアクセスし、登録されたイベント情報８０Ｄ・参加情報７０Ｄを取得する（ステップＳ３０２）。このとき調整部１２は、削除したスケジュールのイベント識別情報に基づき、参加情報７０Ｄから、スケジュールが削除された参加者の利用者識別情報を削除する（参加設定を削除する）。
【０１１２】
次に、調整部１２は、スケジュールの削除により発生した空き日時に参加可能な（参加要求されている）イベントがあるか否かを判定する（空き日時の調整要否判定：ステップＳ３０３）。このとき調整部１２は、削除後の参加情報７０Ｄを参照し、参加者識別情報とイベント識別情報との対応関係から、削除したスケジュールの参加者が参加予定のイベントを特定する。調整部１２は、イベント情報８０Ｄを参照し、特定したイベントの開始・終了日時を特定する。調整部１２は、一時保持している削除スケジュール情報９０Ｄの情報項目値に基づき、特定した開始・終了日時の間（開催予定）に削除したスケジュールの行動日時が含まれるか否かを判断する。調整部１２は、開始・終了日時の間に行動日時が含まれる場合、空き日時に参加可能なイベントがあると判定する。
【０１１３】
調整部１２は、空き日時に参加可能なイベントがあると判定した場合（ステップＳ３０３：ＹＥＳ）、判定されたイベントに対応するスケジュール情報９０Ｄを登録又は更新する（ステップＳ３０４）。なおこのとき行う登録又は更新処理は、上述した図９に示す登録／更新時の調整処理である。このとき調整部１２は、スケジュール情報保持部９０にアクセスし、イベント情報８０Ｄと参加情報７０Ｄに基づき、該当イベントに対応するスケジュール情報９０Ｄを登録する。
【０１１４】
なお、調整部１２は、空き日時に参加可能なイベントがないと判定した場合（ステップＳ３０３：ＮＯ）、上記ステップＳ３０４（登録／更新時の調整）の処理をスキップする。
【０１１５】
このように、情報処理装置１００では、スケジュール削除に伴い発生した空き日時に開催予定のイベントを、参加可能なイベントとして特定する。その結果、情報処理装置１００では、該当イベントに関するスケジュールを登録又は更新する。つまり、本実施形態では、空き日時に参加可能なイベントに関するスケジュールを登録又は更新する調整を行う。
【０１１６】
《スケジュール調整後のイベント調整処理（相互処理）》
図１１は、本実施形態に係るイベント参加の調整処理手順例を示すフローチャートである。図１１には、上記イベント参加の調整処理の詳細について、その処理手順例が示されている。
【０１１７】
図１１に示すように、情報処理装置１００は、調整部１２により、登録／更新／削除されたスケジュール情報９０Ｄの情報項目値を取得する（ステップＳ４０１）。
【０１１８】
次に、調整部１２は、取得した行動識別情報に基づき、取得したスケジュールをグルーピングする（ステップＳ４０２）。このとき調整部１２は、［行動識別］項目の値が"イベント参加"であるスケジュール情報９０Ｄのイベント識別情報でグルーピングし、同一識別情報ごとに分類する。
【０１１９】
次に、調整部１２は、イベント情報保持部８０にアクセスし、グルーピング（分類）されたイベント識別情報に基づき、該当イベント（登録／更新／削除されたスケジュールに関連するイベント）のイベント情報８０Ｄを取得する（ステップＳ４０３）。
【０１２０】
次に、調整部１２は、該当イベントが参加可否の開催条件を満たしているか否かを判定する（イベント参加の調整要否判定：ステップＳ４０４）。このとき調整部１２は、参加情報保持部７０にアクセスし、取得したイベント情報８０Ｄのイベント識別情報に基づき、該当参加情報７０Ｄを特定する。調整部１２は、特定した参加情報７０Ｄの参加優先度情報に基づき、優先度に「参加しない」を表す所定値が設定されているか否かを開催条件として判断する。
【０１２１】
調整部１２は、優先度が所定値以上の「参加必須」・「参加可能」設定でない場合（優先度が所定値未満の「参加しない」設定の場合）、該当イベントが開催条件を満たさないイベントと判定する。
【０１２２】
調整部１２は、開催条件を満たさないイベントと判定した場合（ステップＳ４０４：ＮＯ）、該当イベントのイベント情報８０Ｄの更新内容を決定する（ステップＳ４０５）。このとき調整部１２は、開催条件を満たさなかったイベントのイベント関連情報に含まれる開始・終了日時に、別の日時を設定する内容を更新内容として決定する。また、調整部１２は、参加情報７０Ｄの参加者識別に、更新イベントへの参加を要求する利用者（参加希望者）の利用者識別情報を設定する内容を更新内容として決定する。
【０１２３】
次に、調整部１２は、更新内容が決定できたか否かを判定する（ステップＳ４０６）。
【０１２４】
その結果、調整部１２は、更新内容が決定できたと判定した場合（ステップＳ４０６：ＹＥＳ）、決定した更新内容に従って、該当イベントのイベント情報８０Ｄを更新する（ステップＳ４０７）。このとき調整部１２は、イベント情報保持部８０にアクセスし、開催条件判定時に特定したイベントのイベント識別情報に基づき、登録済みの該当イベント情報８０Ｄを参照する。調整部１２は、決定した更新内容（日時情報）に従って、イベント情報８０Ｄの情報項目値（［開始日時］／［終了日時］の項目値）を更新する。
【０１２５】
次に、調整部１２は、決定した更新内容に従って、該当イベントの参加情報７０Ｄを更新する（ステップＳ４０８）。このとき調整部１２は、参加情報保持部７０にアクセスし、開催条件判定時に特定したイベントのイベント識別情報に基づき、登録済みの該当参加情報７０Ｄを参照する。調整部１２は、決定した更新内容（参加要求情報）に従って、参加情報７０Ｄの情報項目値（［参加者識別］の項目値）を更新する。
【０１２６】
一方、調整部１２は、更新内容が決定できなかったと判定した場合（ステップＳ４０６：ＮＯ）、該当イベントのイベント情報８０Ｄを削除する（ステップＳ４０９）。このとき調整部１２は、イベント情報保持部８０にアクセスし、開催条件判定時に特定したイベントのイベント識別情報に基づき、登録済みの該当イベント情報８０Ｄを削除する。
【０１２７】
次に、調整部１２は、該当イベントの参加情報７０Ｄを削除する（ステップＳ４１０）。このとき調整部１２は、参加情報保持部７０にアクセスし、開催条件判定時に特定したイベントのイベント識別情報に基づき、登録済みの該当参加情報７０Ｄを削除する。
【０１２８】
なお、調整部１２は、開催条件を満たすイベントと判定した場合（ステップＳ４０４：ＹＥＳ）、上記ステップＳ４０７，Ｓ４０８（イベント参加の更新）及びＳ４０９，Ｓ４１０（イベント参加の削除）の処理をスキップする。
【０１２９】
最後に、調整部１２は、グルーピングした全てのグループに対して上記処理を実行したか否かを判定し（ステップＳ４１１）、全てのグループに対して処理されるまで繰り返す（ステップＳ４０３の処理に移行する）。
【０１３０】
このように、情報処理装置１００では、所定の開催条件に従って、スケジュール登録／更新／削除に伴い調整が必要となったイベントを特定する。その結果、情報処理装置１００では、該当イベントと該イベントに関する参加予定の更新内容を決定し、決定した更新内容に従って更新又は削除する。つまり、本実施形態では、スケジュール調整に連動して、関連するイベント及び参加予定についても調整を行う。
【０１３１】
以上のように、情報処理装置１００は、各情報７０Ｄ，８０Ｄ，９０Ｄの変更を検知することで、調整の必要性を判断する。情報処理装置１００は、判断結果に基づき、開催予定のイベントと該イベントに参加する利用者のスケジュールを相互に調整し、調整の必要性がなくなるまで（利用者がイベントに参加可能か、又は、イベントが削除されるか、のどちらかに該当するまで）調整処理を繰り返す。その結果、本実施形態能では、イベント関係者全てのスケジュールが最適化される。
【０１３２】
《スケジュール調整の動作例》
図１２，１３は、本実施形態に係るスケジュールの調整動作例（その１，２）を示す図である。図１２には、調整前の動作例、図１３には、調整後の動作例が示されている。
【０１３３】
図１２（Ａ）には、ある利用者のスケジュールが示されている。このとき、同図（Ｂ）に示すように、イベントＦ，Ｇの開催予定が新規登録され、これらのイベントを登録した主催者から当該利用者に対して参加が要求されたとする。
【０１３４】
この場合、図１３（Ａ）に示すように、参加者（当該利用者）のスケジュールには、イベントＦ，Ｇの開催予定と重複するイベントＡ，Ｄが存在することになる。そこで、本実施形態では、イベントＦとイベントＡそれぞれに設定された優先度を比較し、優先度の高いイベントを特定する。また、イベントＧとイベントＤそれぞれに設定された優先度を比較し、優先度の高いイベントを特定する。その結果、イベントＦとイベントＡとの比較では、イベントＡの方がイベントＦより優先度が高い結果、また、イベントＧとイベントＤとの比較では、イベントＧの方がイベントＦより優先度が高い結果が得られたとする。
【０１３５】
この場合、同図（Ｂ）に示すように、参加者のスケジュールには、優先度の高いイベントＡの開催予定が残り、イベントＤの開催予定が削除され、イベントＧの開催予定が反映される。また、参加者のスケジュールから、イベントＤの開催予定が削除されたことを受けて、削除による空き日時に参加可能なイベントＥの開催予定がさらに反映される。
【０１３６】
＜まとめ＞
以上のように、本実施形態に係る情報処理装置１００によれば、編集部１１が、イベントの開催予定や該イベントへの参加予定の変更を受け付ける。情報処理装置１００は、調整部１２が、イベントの開催予定や該イベントへの参加予定の変更を検知すると、所定の条件に従って、開催予定のイベントと該イベントに参加する利用者のスケジュールを相互に調整し、関係者全てのスケジュールを最適化する。その結果、情報処理装置１００は、情報提供部１３が、利用者からの情報提供要求に従って、最適化されたスケジュールを利用者に提供する。
【０１３７】
これによって、本実施形態に係る情報処理装置１００は、予定に変更が生じたイベントに参加予定の関係者全てのスケジュールが最適化される環境を提供できる。その結果、本実施形態に係る情報処理装置１００では、利用者に対して最適なスケジュールを提案できる。
【０１３８】
ここまで、上記実施形態の説明を行ってきたが、上記実施形態に係る「スケジュール管理機能」は、図を用いて説明を行った各処理手順を、動作環境（プラットフォーム）にあったプログラミング言語でコード化したプログラムが、情報処理装置１００が備える演算装置（ＣＰＵ）により実行されることで実現される。
【０１３９】
上記プログラムは、コンピュータが読み取り可能な記録媒体１０３ａに格納することができる。これにより、例えば上記プログラムは、外部Ｉ／Ｆ１０３を介して、情報処理装置１００にインストールすることができる。また、情報処理装置１００は、通信Ｉ／Ｆ１０７を備えていることから、電気通信回線を用いて上記プログラムをダウンロードし、インストールすることもできる。
【０１４０】
［変形例］
また、上記実施形態では、情報処理装置１００が各情報保持部９０，８０，７０を有する構成例について説明を行ったが、この限りでない。
【０１４１】
図１４は、本変形例に係るスケジュール管理の機能構成例を示す図である。
例えば図１４に示すような構成であってもよい。図１４には、外部サービス提供サーバ３００が各情報保持部９０，８０，７０を有する構成例が示されている。この場合、情報処理装置１００は、外部連携部２１を介して、外部サービス提供サーバ３００が有する各情報保持部９０，８０，７０にアクセスし、各情報９０Ｄ，８０Ｄ，７０Ｄの変更状況を確認し、確認結果に基づき、情報変更を検知する仕組みとすることで、上記実施形態で説明を行った調整処理を実現する。このように、本変形例では、例えば利用者が使い慣れた既存サービスとの連携が可能であり、利便性や汎用性の高いスケジュール管理サービスを提供することができる。
【０１４２】
最後に、上記実施形態に挙げた形状や構成に、その他の要素との組み合わせなど、ここで示した要件に、本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【符号の説明】
【０１４３】
１      スケジュール管理システム
１１    編集部
１２    調整部
１３    情報提供部
２１    外部連携部
７０    参加情報保持部（Ｄ：参加情報）
８０    イベント情報保持部（Ｄ：イベント情報）
９０    スケジュール情報保持部（Ｄ：スケジュール情報）
１００  情報処理装置（スケジュール管理サーバ）
２００  情報端末
３００  外部サービス提供サーバ
【先行技術文献】
【特許文献】
【０１４４】
【特許文献１】特開２００８−９０４０９号公報
【特許文献２】特開２００４−２９５７８９号公報
【特許文献３】特開２００７−６５８２７号公報
【図１】
0005811799.tif 000002
【図２】
0005811799.tif 000003
【図３】
0005811799.tif 000004
【図４】
0005811799.tif 000005
【図５】
0005811799.tif 000006
【図６】
0005811799.tif 000007
【図７】
0005811799.tif 000008
【図８】
0005811799.tif 000009
【図９】
0005811799.tif 000010
【図１０】
0005811799.tif 000011
【図１１】
0005811799.tif 000012
【図１２】
0005811799.tif 000013
【図１３】
0005811799.tif 000014
【図１４】
0005811799.tif 000015