Exchange の予定表と EWS
Exchange の予定表、予定表フォルダーとアイテム、予定、会議について説明します。
Outlook などのメール クライアントの予定表機能の多くを既によくご存じでしょう。これにより、予定の追跡、会議のスケジュール設定、ユーザーの空き時間の確認、出席依頼、会議の変更、キャンセルができます。
Exchange の予定表関連の機能は、Outlook などのクライアントで表示される内容とは少し異なります。 Exchange の EWS は、情報の表示ではなく、情報の作成、保存、送信、変更などを行うことができます。 EWS を使用して予定表を操作するには、情報ストレージ、時間、繰り返し、メッセージ フローなどの概念を理解する必要があります。 具体的には、以下について理解する必要があります。
予定表フォルダー、予定表アイテム、予定表ビュー
会議出席依頼、応答、スケジューリング、参加者、リソース、会議室、空き時間
時間の長さ、タイム ゾーン、会議や予定の開始時刻と終了時刻
定期的なアイテム、定期的なパターン、例外、単一インスタンスの予定と会議
EWS と EWS マネージ API には、さまざまな予定表関連タスクを実行できるようにする、充実した操作とメソッドのセットが用意されています。 たとえば、次の例に示すとおり、EWS マネージ API を使用すれば、わずか数行のコードで会議を作成し、出席者に招待を送信できます。
Appointment meeting = new Appointment(service);
// Set the properties on the meeting object to create the meeting.
meeting.Subject = "Team building exercise";
meeting.Body = "Let's learn to really work as a team and then have lunch!";
meeting.Start = DateTime.Now.AddDays(2);
meeting.End = meeting.Start.AddHours(2);
meeting.Location = "Conference Room 12";
meeting.RequiredAttendees.Add("Mack.Chaves@contoso.com");
meeting.RequiredAttendees.Add("Sadie.Daniels@contoso.com");
meeting.OptionalAttendees.Add("Magdalena.Kemp@contoso.com");
meeting.ReminderMinutesBeforeStart = 60;
// Send the meeting request
meeting.Save(SendInvitationsMode.SendToAllAndSaveCopy);
予定表フォルダーと予定表アイテム
予定表フォルダーには予定表アイテムが含まれています。 予定表フォルダーには、IPF のフォルダー クラスがあります。および には、Appointment Class オブジェクトまたは EWS CalendarItemType 要素に関連付けられている ItemClass EWS マネージ API プロパティによって定義された項目のみを含めることができます。
予定表フォルダー内のアイテムはメールボックス内の他のフォルダーのアイテムと少し異なります。これは、定期的なアイテムや、定期的なアイテムの例外が、メールボックス内の実際のアイテムではなく、定期的なマスターへの添付物として内部に格納されているためです。 したがって、指定した日付範囲内のすべての予定を取得するには、予定表ビューを使用する必要があります。 予定と予定表のビューの取得の詳細については、「Exchange の EWS を使用して予定と会議を取得する」をご覧ください。
会議と予定
会議と予定の根本的な違いは、会議には出席者がいますが、予定にはいません。 内部的には、Exchange は会議と予定の両方に同じオブジェクトを使用します。 EWS マネージ API Appointment クラスか、EWS CalendarItem 要素を使用して、会議や予定を操作します。
予定も会議も単一のインスタンスや定期的なアイテムの一部ですが、予定は出席者、会議室、リソースを含まないため、メッセージの送信を必要としません。
会議には要求や更新プログラムの送信と応答が含まれるため、予定表フォルダー内のアイテムにアクセスするだけではありません。 また、ワークフローも関連付けられています。 会議は、出席者が利用可能な場合にスケジュールする必要があります。また、会議室やプロジェクターなどのリソースや他の機器の予約も必要です。
会議ワークフローには、通常、次の手順が含まれます。
- 会議が作成され、開始時刻と終了時刻、場所、メッセージの本文などの情報が入力されます。
- 予想される出席者、リソース、会議室の一覧が作成されます。
- 出席者の空き時間の状態がチェックされます。
- 会議出席依頼が出席者に送信されます。
- 出席者は、出席するかしないかの意向を会議出席依頼に返信します。 出席者は、会議の新しい時間を提案する場合もあります。
- 会議がキャンセルまたは更新されることもあり、その場合は通常、出席者に新しいメッセージが送信されます。
予定表と時間
時間関連の機能は、予定表に不可欠です。 予定と会議には、開始時刻と終了時刻、期間、およびその他の時間関連のプロパティ (メッセージの作成、送信、受信時刻など) があります。 既存の予定と会議は、開始時刻と終了時刻に基づいて予定表フォルダーから取得できます。 定期的な系列には、開始と終了があります。 そして、会議は、世界経済においてますます重要になっている特定のタイムゾーン内で行われます。
時刻の値は内部的に協定世界時 (UTC) で Exchange サーバーに保存されます。 Exchange は、時刻の値をクライアント設定に基づいてローカル タイム ゾーンに変換します。 DateTime プロパティはコンピューターのローカル タイム ゾーンに範囲指定されます。
定期的なアイテム
予定や会議の定期的なアイテムは、定期的なマスター、発生するアイテムのセット、オプションの例外アイテムのセットで構成されています。 定期的なアイテムの情報は定期的なマスター アイテムに格納されます。RecurringMasterItemId EWS 要素は一連のアイテムと例外に関連しています。 RecurringMasterItemId EWS 要素は、一連の出現と例外に関連付けられます。または、Appointment.BindToRecurringMaster EWS マネージ API メソッドを使用して定期的なマスターを取得できます。 一連のアイテムのインスタンスを使用すると、一連のアイテムに関連するすべての要素と情報を見つけることができます。
定期的なアイテムのプロパティはすべての予定表アイテムに存在しますが、定期的なマスター アイテムにのみ入力されます。 一連のすべてのアイテムのインデックスに加えて、定期的なマスターには、変更されたアイテムや削除されたアイテム、一連のアイテムの定期的なパターン (たとえば、日単位、週単位、月単位、年単位) への参照があります。