GMT+0900こちらの記事は2015年08月29日にQiitaに投稿したものを移植したものとなります。Qiitaからの移植に当たって内容の精査は行っていません。従って、記事は当時の私の知識や当時の技術そのままです。OutlookのAPIを使用して共有の予定表を取得する取得結果の絞り込みの方法とか、他人のスケジュールの取得に言及しているサイトがなかったので書いてみました。前提として、Outlookがインストールされている必要があります。参照に「Microsoft.office.interop.outlook.dll」を追加します。以下が実際のソースコードです。「CreateRecipient」メソッドで予定表を取得したいユーザを指定し、Recipientオブジェクトを生成します。その後、「GetSharedDefaultFolder」メソッドを呼び出して、指定したユーザの共有の予定表フォルダの情報を取得します。この時点で、条件による絞り込みはできません。OlDefaultFolders.olFolderCalendar);「CreateRecipient」メソッドで指定するユーザは前方一致検索のようです。完全一致でなくても取得可能です。taro」さんの共有の予定表情報が取得できます。名前だと一意に識別できない可能性があるので、実際はメールアドレスで指定することになると思います。取得結果の絞り込み取得後に「Find」メソッドか「Restrict」メソッドで取得結果を絞り込むことができます。「Restrict」の場合、結果をコレクションで取得することができます。下記の場合は開始日と終了日の範囲に該当するものに絞り込みます。mapiFolder.Items.Restrict(filter);このとき、文字列で条件を指定する必要があります。文字列以外で絞り込む方法(「Find」「Restrict」メソッドを使用しない方法)は調べた範囲ではわかりませんでした。無いような気がします。日付で絞り込む際の注意点として、「yy/MM/dd」形式を指定しないといけないようです。これ以外の形式ではうまくいきませんでした。上記では開始日・終了日に日付をまたぐ予定が含まれているときに、その予定情報(開始日終了日にまたぐ予定)は取得できません。これは絞り込みを複数回に分ければなんとかなると思います。(試してませんが・・・)それ以外にも、上記の方法で日付範囲指定した際に範囲外の予定が表示されてしまう場合があり、これに関しては原因はわかりませんでした。その他Exchange環境の場合、サービス参照でExchangeサーバのURLを指定し、「Exchangeservicebinding」クラスのメソッドを使用してユーザのフォルダIDを取得することで、共有の予定表を確認することができるようです。http://blog.liris.org/2011/01/ms-exchangeidapi.html私の場合はExchangeサーバを参照しても「Exchangeservicebinding」クラスが見つからずにこの方法は試せませんでした。YoshinoriN)。