Outlook 予定表 REST API のリファレンス (バージョン 2.0)

適用対象: Exchange Online | Office 365 | Hotmail.com | Live.com | MSN.com | Outlook.com | Passport.com

予定表 API は、Office 365 の Azure Active Directory によって保護されているイベント、予定表、および予定表グループ データへのアクセス、および特にこれらのドメイン内の Microsoft アカウントの類似したデータへのアクセスを提供します。Hotmail.com、Live.com、MSN.com、Outlook.com、および Passport.com。

注意

  • 例外は、会議の日時を検索する API です。これは Microsoft アカウントではなく、Office 365 のメールボックス (Azure AD 上) にのみ適用されます。
  • リファレンスをわかりやすくするため、この記事の残りの部分では、これらの Microsoft アカウント ドメインを含めるために Outlook.com を使用します。

API v2.0 が不要ですか? 左の目次で、[Office 365 REST API リファレンス] セクションに移動し、使用したいバージョンを選択します。

すべての予定表 API 操作

イベント操作

イベントはユーザーの予定表にある予定または会議を表します。イベントには、シリーズ マスター (定期的なイベントの場合)、発生、単一インスタンス、または例外を指定できます。

予定表の操作

予定表は、イベントのコンテナーの役割をします。ユーザーは複数の予定表を持つことができます。Office 365 では、各予定表は予定表グループに割り当てることができます。

予定表グループの操作

予定表グループは、複数の予定表を整理する方法です。ユーザーは、複数の予定表を Outlook または Outlook Web App 内の 1 つの予定表グループに追加できます。これにより、ユーザーはグループ内のすべての予定表を素早く簡単に表示できます。

注意

Outlook.com によってサポートされるのは、../me/calendars ショートカットでアクセス可能な既定の予定表グループのみです。 その予定表グループの削除、または別の予定表グループの作成はできません。

関連項目

予定表 REST API の使用

認証

他の Outlook REST API と同様に、予定表 API へのすべての要求に対して、有効なアクセス トークンを含める必要があります。 アクセス トークンを取得するには、アプリを登録して識別し、適切な承認を取得する必要があります。

効率化された登録と承認のオプションに関する詳細情報を参照してください。 予定表 API で特定の操作を続行する際には、この点に留意してください。

共有の予定表にアクセスするための範囲

Office 365 と Outlook.com の予定表は、共有をサポートします。予定表を作成したユーザーは、他のユーザーと予定表を共有できます。そのユーザーと共有されている予定表にアクセスするには次の範囲が必要です:

  • 読 み 取 り ア ク セ ス の 場合: https://outlook.office.com/calendars.read.shared
  • 読 み 取 り / 書 き 込 み ア ク セ ス の 場合: https://outlook.office.com/calendars.readwrite.shared

API のバージョン

予定表 REST API は、すべてのバージョンの Outlook REST API でサポートされています。機能は、特定のバージョンによって異なる場合があります。

ターゲット ユーザー

予定表 API 要求は、常に現在のユーザーのために実行されます。

Outlook REST API のすべてのサブセットに共通な情報について詳しくは、「Outlook REST API の使用」を参照してください。

イベントを取得する

イベント コレクションまたはイベントを取得します。

イベント本文は、テキストまたは HTML のいずれかにできます。

ヘッダーを使用して、GET 要求の Body プロパティで返される目的の形式を指定できます。Prefer: outlook.body-content-type

  • テキスト形式で返されるイベント本文を取得するには、Prefer: outlook.body-content-type="text" を指定します。
  • HTML 形式でイベント本文を返すには、Prefer: outlook.body-content-type="html" を指定するか、単にヘッダーをスキップします。

いずれかのヘッダーを指定すると、応答には対応する Preference-Applied ヘッダーが確認として含まれます。

  • テキスト形式要求の場合: Preference-Applied: outlook.body-content-type="text"
  • HTML 形式要求の場合: Preference-Applied: outlook.body-content-type="html"

予定表イベントを取得するすべての操作では、Prefer: outlook.timezone HTTP ヘッダーを使用して、応答の開始時刻と終了時刻のタイムゾーンを指定できます。たとえば、次の Prefer: outlook.timezone ヘッダーは、応答の開始時刻と終了時刻を東部標準時に設定します。

Prefer: outlook.timezone="Eastern Standard Time"

Prefer: outlook.timezone ヘッダーを指定しない場合は、応答の開始時刻と終了時刻は UTC で返されます。サポートされているタイム ゾーン名については、この一覧をご参照ください。

_イベント_リソース上で OriginalStartTimeZone プロパティと OriginalEndTimeZone プロパティを使用して、イベント作成時に使用されたタイム ゾーンを検索することができます。

予定表ビューを取得する

最低限必要な範囲

以下のいずれか:

ユーザーの標準として設定されている予定表 (../me/calendarview) または別の予定表から、時間範囲で定義した予定表ビューのイベントの発生、例外、および単一インスタンスを取得します。

GET https://outlook.office.com/api/v2.0/me/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}
GET https://outlook.office.com/api/v2.0/me/calendars/{calendar_id}/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}
必須パラメーター 説明
ヘッダー パラメータ
希望する値: outlook.timezone 応答内のイベントに対する既定のタイム ゾーン。
URL パ ラ メ ー タ
calendar_id 文字列 予定表 ID (特定の予定表から予定表ビューを取得している場合)。
start_datetime datetimeoffset イベントが開始する日時。
end_datetime datetimeoffset イベントが終了する日時。

Prefer: outlook.timezone ヘッダーを使用して、応答内イベントの開始時刻と終了時刻に使用するタイム ゾーンを指定します。 イベントが別のタイム ゾーンで作成された場合は、開始時刻と終了時刻は指定したタイム ゾーンに合わせて調整されます。

サポートされているタイム ゾーン名については、この一覧を参照してください。 Prefer: outlook.timezone ヘッダーを指定しない場合は、開始時刻と終了時刻は UTC で返されます。

注意

既定では、応答内の各イベントにそのプロパティがすべて含まれます。 最適なパフォーマンスを得るために必要なプロパティのみを指定する場合は、$selectを使用します。 Id プロパティは常に返されます。 パラメーターのフィルタリング、並べ替え、およびページングについては、「OData クエリ パラメーター」を参照してください。

例として、各イベントの Subject プロパティのみを返す 10 月の月間予定表ビューを取得します。Prefer: outlook.timezone ヘッダーが要求に含まれていないと想定すると、タイム ゾーンは UTC になります。

GET https://outlook.office.com/api/v2.0/me/calendarview?startDateTime=2014-10-01T01:00:00&endDateTime=2014-10-31T23:00:00&$select=Subject

応答の種類

指定した時間範囲で展開されたイベント

シリーズ マスターと単一イベントを取得する

最低限必要な範囲

以下のいずれか:

シリーズ マスターと単一インスタンス イベントのコレクションを、ユーザーの標準として設定されている予定表 (../me/events) または別の予定表から取得します。拡張イベントのインスタンスを取得するには、予定表ビューを取得する、またはイベントのインスタンスを取得することができます。

GET https://outlook.office.com/api/v2.0/me/events
GET https://outlook.office.com/api/v2.0/me/calendars/{calendar_id}/events
必須パラメーター 説明
ヘッダー パラメータ
希望する値: outlook.timezone 応答内のイベントに対する既定のタイム ゾーン。
URL パ ラ メ ー タ
calendar_id 文字列 予定表 ID (特定の予定表からイベントを取得している場合)。

Prefer: outlook.timezone ヘッダーを使用して、応答内イベントの開始時刻と終了時刻に使用するタイム ゾーンを指定します。 イベントが別のタイム ゾーンで作成された場合は、開始時刻と終了時刻は指定したタイム ゾーンに合わせて調整されます。

サポートされているタイム ゾーン名については、この一覧を参照してください。 Prefer: outlook.timezone ヘッダーを指定しない場合は、開始時刻と終了時刻は UTC で返されます。

注意

応答内の各イベントにそのプロパティがすべて含まれます。 最適なパフォーマンスを得るために必要なプロパティのみを指定する場合は、$selectを使用します。 Id プロパティは常に返されます。 次の例を参照してください。 パラメーターのフィルタリング、並べ替え、およびページングについては、「OData クエリ パラメーター」を参照してください。

次の例は、$select を使用して、応答内で各イベントの SubjectOrganizerStart、および End プロパティのみを返すように指定する方法を示します。 $select を使用しない場合にイベントに返されるプロパティの完全な一覧については、「イベントを取得する (REST)」の最初の応答サンプルをご覧ください。

要求のサンプル

GET https://outlook.office.com/api/v2.0/me/events?$select=Subject,Organizer,Start,End

応答のサンプル

{
    "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Events(Subject,Organizer,Start,End)",
    "value": [
        {
            "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI28tEyDAAA=')",
            "@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAA/LpDWw==\"",
            "Id": "AAMkAGI28tEyDAAA=",
            "Subject": "Scrum",
            "Start": {
                "DateTime": "2015-11-02T17:00:00",
                "TimeZone": "Pacific Standard Time"
            },
            "End": {
                "DateTime": "2015-11-02T17:30:00",
                "TimeZone": "Pacific Standard Time"
            },
            "Organizer": {
                "EmailAddress": {
                    "Name": "user0TestUser",
                    "Address": "user0@a830edad9050849NDA1.onmicrosoft.com"
                }
            }
        },
        {
            "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI28tEyCAAA=')",
            "@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAA/LpDWg==\"",
            "Id": "AAMkAGI28tEyCAAA=",
            "Subject": "team lunch",
            "Start": {
                "DateTime": "2015-11-02T00:00:00",
                "TimeZone": "Pacific Standard Time"
            },
            "End": {
                "DateTime": "2015-11-03T00:00:00",
                "TimeZone": "Pacific Standard Time"
            },
            "Organizer": {
                "EmailAddress": {
                    "Name": "user0TestUser",
                    "Address": "user0@a830edad9050849NDA1.onmicrosoft.com"
                }
            }
        },
        {
            "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2ADTG93AAA=')",
            "@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAAA0x49w==\"",
            "Id": "AAMkAGI2G93AAA=",
            "Subject": "Weekly Meeting on Contoso Project",
            "Start": {
                "DateTime": "2014-10-13T21:00:00",
                "TimeZone": "Pacific Standard Time"
            },
            "End": {
                "DateTime": "2014-10-13T22:00:00",
                "TimeZone": "Pacific Standard Time"
            },
            "Organizer": {
                "EmailAddress": {
                    "Name": "Alex D",
                    "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com"
                }
            }
        },
        {
            "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2TG92AAA=')",
            "@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAAA0x49g==\"",
            "Id": "AAMkAGI2TG92AAA=",
            "Subject": "Daily Team Meeting",
            "Start": {
                "DateTime": "2014-10-13T18:00:00",
                "TimeZone": "Pacific Standard Time"
            },
            "End": {
                "DateTime": "2014-10-13T18:30:00",
                "TimeZone": "Pacific Standard Time"
            },
            "Organizer": {
                "EmailAddress": {
                    "Name": "Alex D",
                    "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com"
                }
            }
        },
        {
            "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2TG91AAA=')",
            "@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAAA0x47Q==\"",
            "Id": "AAMkAGI2TG91AAA=",
            "Subject": "Rob:Alex 1:1",
            "Start": {
                "DateTime": "2014-10-15T16:30:00",
                "TimeZone": "Pacific Standard Time"
            },
            "End": "2014-10-15T17:30:00Z",
            "Organizer": {
                "EmailAddress": {
                    "Name": "Alex D",
                    "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com"
                }
            }
        },
        {
            "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2TG90AAA=')",
            "@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAAA0x46g==\"",
            "Id": "AAMkAGI2TG90AAA=",
            "Subject": "Thanksgiving Holiday",
            "Start": {
                "DateTime": "2015-11-26T00:00:00",
                "TimeZone": "Pacific Standard Time"
            },
            "End": {
                "DateTime": "2015-11-27T00:00:00",
                "TimeZone": "Pacific Standard Time"
            },
            "Organizer": {
                "EmailAddress": {
                    "Name": "Alex D",
                    "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com"
                }
            }
        },
        {
            "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2TG9zAAA=')",
            "@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAAA0x46Q==\"",
            "Id": "AAMkAGI2TG9zAAA=",
            "Subject": "Thanksgiving Holiday",
            "Start": {
                "DateTime": "2014-11-27T00:00:00"
                "TimeZone": "Pacific Standard Time"
            },
            "End": {
                "DateTime": "2014-11-28T00:00:00",
                "TimeZone": "Pacific Standard Time"
            },
            "Organizer": {
                "EmailAddress": {
                    "Name": "Alex D",
                    "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com"
                }
            }
        },
        {
            "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2TG9yAAA=')",
            "@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAAA0x49Q==\"",
            "Id": "AAMkAGI2TG9yAAA=",
            "Subject": "New Year's Day Holiday",
            "Start": {
                "DateTime": "2015-01-01T00:00:00",
                "TimeZone": "Pacific Standard Time"
            },
            "End": {
                "DateTime": "2015-01-02T00:00:00",
                "TimeZone": "Pacific Standard Time"
            },
            "Organizer": {
                "EmailAddress": {
                    "Name": "Alex D",
                    "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com"
                }
            }
        },
        {
            "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2TG9xAAA=')",
            "@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAAA0x45w==\"",
            "Id": "AAMkAGI2TG9xAAA=",
            "Subject": "Christmas Holiday",
            "Start": {
                "DateTime": "2014-12-25T00:00:00",
                "TimeZone": "Pacific Standard Time"
            },
            "End": {
                "DateTime": "2014-12-26T00:00:00",
                "TimeZone": "Pacific Standard Time"
            },
            "Organizer": {
                "EmailAddress": {
                    "Name": "Alex D",
                    "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com"
                }
            }
        }
    ]
}

イベント インスタンスを取得する

最低限必要な範囲

以下のいずれか:

指定した時間範囲のイベントのインスタンス (発生) を取得できます。イベントが SeriesMaster タイプである場合、これは指定した時間範囲内のイベントの発生と例外を返します。

GET https://outlook.office.com/api/v2.0/me/events/{event_id}/instances?startDateTime={start_datetime}&endDateTime={end_datetime}
必須パラメーター 説明
ヘッダー パラメータ
希望する値: outlook.timezone 応答内のイベントに対する既定のタイム ゾーン。
URL パ ラ メ ー タ
event_id 文字列 イベント ID。
start_datetime datetimeoffset イベントが開始する UTC 日時。
end_datetime datetimeoffset イベントが終了する UTC 日時。

Prefer: outlook.timezone ヘッダーを使用して、応答内イベントの開始時刻と終了時刻に使用するタイム ゾーンを指定します。 イベントが別のタイム ゾーンで作成された場合は、開始時刻と終了時刻は指定したタイム ゾーンに合わせて調整されます。

サポートされているタイム ゾーン名については、この一覧を参照してください。 Prefer: outlook.timezone ヘッダーを指定しない場合は、開始時刻と終了時刻は UTC で返されます。

応答の種類

要求されたイベント コレクション。

注意

既定では、応答内の各イベントにそのプロパティがすべて含まれます。 最適なパフォーマンスを得るために必要なプロパティのみを指定する場合は、$selectを使用します。 Id プロパティは常に返されます。 パラメーターのフィルタリング、並べ替え、およびページングについては、「OData クエリ パラメーター」を参照してください。

たとえば、10 月の特定のイベントのインスタンスを取得します。これには、各インスタンスの SubjectStart、および End プロパティのみが含まれます。

GET https://outlook.office.com/api/v2.0/me/events/AAMkAGE0MGM1Y2M5LWEAAA=/instances?startDateTime=2014-10-01T01:00:00Z&endDateTime=2014-10-31T23:00:00Z&$select=Subject,Start,End

イベントを取得する

最低限必要な範囲

以下のいずれか:

ID でイベントを取得します。

GET https://outlook.office.com/api/v2.0/me/events/{event_id}
必須パラメーター 説明
ヘッダー パラメータ
希望する値: outlook.timezone 応答内のイベントに対する既定のタイム ゾーン。
URL パ ラ メ ー タ
event_id 文字列 イベント ID。

Prefer: outlook.timezone ヘッダーを使用して、応答内イベントの開始時刻と終了時刻に使用するタイム ゾーンを指定します。 イベントが別のタイム ゾーンで作成された場合は、開始時刻と終了時刻は指定したタイム ゾーンに合わせて調整されます。

サポートされているタイム ゾーン名については、この一覧を参照してください。 Prefer: outlook.timezone ヘッダーを指定しない場合は、開始時刻と終了時刻は UTC で返されます。

要求のサンプル

GET https://outlook.office.com/api/v2.0/me/events/AAMkAGI2TG93AAA=

応答のサンプル

    {
        "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Events/$entity",
        "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2TG93AAA=')",
        "@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAAA0x48w==\"",
        "Id": "AAMkAGI2TG93AAA=",
        "ChangeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x48w==",
        "Categories": [],
        "CreatedDateTime": "2014-10-19T23:13:47.3959685Z",
        "LastModifiedDateTime": "2014-10-19T23:13:47.6772234Z",
        "Subject": "Weekly Meeting on Contoso Project",
        "BodyPreview": "Setting up some time to review the budget and planning on the Contoso Project",
        "Body": {
            "ContentType": "HTML",
            "Content": "<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n</head>\r\n<body>\r\nSetting up some time to review the budget and planning on the Contoso Project\r\n</body>\r\n</html>\r\n"
        },
        "Importance": "Normal",
        "HasAttachments": false,
        "Start": {
            "DateTime": "2014-10-13T21:00:00",
            "TimeZone": "Pacific Standard Time"
        },
        "End": {
            "DateTime": "2014-10-13T22:00:00",
            "TimeZone": ""Pacific Standard Time"
        },        
        "Location": {
            "DisplayName": "Alex's Office",
            "Address": null
        },
        "ShowAs": "Busy",
        "IsAllDay": false,
        "IsCancelled": false,
        "IsOrganizer": true,
        "ResponseRequested": true,
        "Type": "SeriesMaster",
        "SeriesMasterId": null,
        "Attendees": [
            {
                "EmailAddress": {
                    "Address": "janets@a830edad9050849NDA1.onmicrosoft.com",
                    "Name": "Janet Schorr"
                },
                "Status": {
                    "Response": "None",
                    "Time": "0001-01-01T00:00:00Z"
                },
                "Type": "Required"
            },
            {
                "EmailAddress": {
                    "Address": "pavelb@a830edad9050849NDA1.onmicrosoft.com",
                    "Name": "Pavel Bansky"
                },
                "Status": {
                    "Response": "None",
                    "Time": "0001-01-01T00:00:00Z"
                },
                "Type": "Required"
            }
        ],
        "Recurrence": {
            "Pattern": {
                "Type": "Weekly",
                "Interval": 1,
                "Month": 0,
                "Index": "First",
                "FirstDayOfWeek": "Sunday",
                "DayOfMonth": 0,
                "DaysOfWeek": [
                    "Monday"
                ]
            },
            "RecurrenceTimeZone": "Pacific Standard Time",
            "Range": {
                "Type": "NoEnd",
                "StartDate": "2014-10-13",
                "EndDate": "2014-11-13",
                "NumberOfOccurrences": 0
            }
        },
        "OriginalEndTimeZone": "Pacific Standard Time",
        "OriginalStartTimeZone": "Pacific Standard Time",
        "Organizer": {
            "EmailAddress": {
                "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com",
                "Name": "Alex D"
            },
        "OnlineMeetingUrl": null
        }
    }

応答の種類

要求されたイベント

注意

既定では、応答にはイベントのすべてのプロパティが含まれます。 最適なパフォーマンスを得るために必要なプロパティのみを指定する場合は、$selectを使用します。 Id プロパティは常に返されます。 パラメーターのフィルタリング、並べ替え、およびページングについては、「OData クエリ パラメーター」を参照してください。

次の例は、$select を使用して、イベントの SubjectOrganizerStart、および End プロパティのみを返すように指定する方法を示しています。

要求のサンプル

GET https://outlook.office.com/api/v2.0/me/events/AAMkAGI2TG93AAA=?$select=Subject,Organizer,Start,End

応答のサンプル

    {
        "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Events/$entity",
        "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2TG93AAA=')",
        "@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAAA0x48w==\"",
        "Id": "AAMkAGI2TG93AAA=",
        "Subject": "Weekly Meeting on Contoso Project",
        "Start": {
            "DateTime": "2014-10-13T21:00:00",
            "TimeZone": "Pacific Standard Time"
        },
        "End": {
            "DateTime": "2014-10-13T22:00:00",
            "TimeZone": ""Pacific Standard Time"
        }, 
        "Organizer": {
            "EmailAddress": {
                "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com",
                "Name": "Alex D"
            }
        }
    }

同期イベント

最低限必要な範囲

以下のいずれか:

ユーザーの標準として設定されている予定表 (../me/calendarview) または別の予定表から、指定した時間範囲の新規、更新済み、または削除済みのイベントを同期して取得します。このような一連の時間範囲内のイベントは予定表ビューとも呼ばれます。返されるイベントには、定期的なアイテムの発生と例外、および単一のインスタンスが含まれている場合があります。

予定表ビューの同期には、通常、それぞれが GET 呼び出しである 2 つ以上の同期要求のラウンドが必要です。予定表ビューを同期するには、予定表ビューを取得する場合とほぼ同じ方法で GET メソッドを使用します。ただし、特定の要求ヘッダー、および必要に応じて deltaToken または skipToken を含める必要があります。

要求ヘッダー

  • 以前の同期要求から返される skipToken を含む同期要求を除き、すべての同期要求で "Prefer: odata.track-changes" ヘッダーを指定する必要があります。最初の応答で Preference-Applied: odata.track-changes ヘッダーを探して、リソースが同期をサポートすることを確認してから、先に進みます。(skipToken に関する詳細については、以下のサンプルの 2 番目の応答データを参照)。

  • "Prefer: odata.maxpagesize={x}" ヘッダーを指定して、同期要求が返すイベントの最大数を示すことができます。

予定表ビューのイベント同期の一般的なラウンドは次のとおりです。

  1. 必須の Prefer: odata.track-changes ヘッダーを指定して最初の GET 要求を行います。同期要求に対する最初の応答では、常に deltaToken が返されます。(2 番目以降の GET 要求は、前の応答で受信した deltaToken または skipToken のいずれかを含むため、最初の GET 要求とは異なります。)

  2. 最初の応答が Preference-Applied: odata.track-changes ヘッダーを返した場合は、同期を進めることができます。

    • 2 番目 GET 要求を行います。最初の GET 要求から返された Prefer: odata.track-changes ヘッダーと deltaToken を指定して、追加のイベントがあるかどうかを調べます。2 番目の要求では、追加のイベントと、skipToken (さらにイベントがある場合) と deltaToken (最後のイベントが同期された場合。この場合は停止できます) のどちらか一方が返されます。

    • 前の呼び出しから返された skipToken を指定して GET 呼び出しを送信することで、同期を続けます。_@odata.deltaLink_ ヘッダーと再び deltaToken (同期が完了したことを示します) が含まれる最後の応答を受け取ると、停止します。

同期のラウンドにおける最初とそれ以降の呼び出しの構文を見てみましょう。

既定の予定表で同期するには

最初の要求:

GET https://outlook.office.com/api/v2.0/{user_context}/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}

2 番目の要求、またはそれ以降のラウンドの最初の要求:

GET https://outlook.office.com/api/v2.0/{user_context}/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}&$deltatoken={delta_token}

同じラウンドの 3 番目またはそれ以降の要求:

GET https://outlook.office.com/api/v2.0/{user_context}/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}&$skiptoken={skip_token}

特定の予定表で同期するには

最初の要求:

GET https://outlook.office.com/api/v2.0/{user_context}/calendars('{calendar_id}')/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}

2 番目の要求、またはそれ以降のラウンドの最初の要求:

GET https://outlook.office.com/api/v2.0/{user_context}/calendars('{calendar_id}')/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}&$deltatoken={delta_token}

同じラウンドの 3 番目またはそれ以降の要求:

GET https://outlook.office.com/api/v2.0/{user_context}/calendars('{calendar_id}')/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}&$skiptoken={skip_token}

パラメーター

パラメーター 説明
URL パ ラ メ ー タ
user_context 文字列 ユーザー コンテキスト。現在のユーザーのコンテキストを示すには、値 "me" を使用できます。また、users/{upn} の形式も使用できます。upn はユーザー プリンシパル名であり、通常はユーザーの電子メール アドレスです。
calendar_id 文字列 予定表 ID (特定の予定表から予定表ビューを取得している場合)。
start_datetime datetimeoffset イベントが開始する日時。
end_datetime datetimeoffset イベントが終了する日時。
delta_token 文字列 以前の同期の応答で、@odata.deltaLink の値の一部として返される deltaToken 文字列。
skip_token 文字列 以前の同期の応答で、@odata.nextLink の値の一部として返される skipToken 文字列。

注意

  • 最初の要求で "Prefer: odata.track-changes" を指定する際に、応答が同期をサポートしている場合は、応答のヘッダーに "Preference-applied: odata.track-changes" が含まれます。
  • サポートされていないリソースを同期しようとするか、またはこれが最初の同期要求でない場合は、応答のヘッダーに "Preference-applied" は表示されません。
  • クエリ パラメーター startdatetime と enddatetime を変更することで、変更タイム ウィンドウを変更できます。
  • 応答内の各イベントにそのプロパティがすべて含まれます。
  • 定期的なアイテムの場合、同期応答には、定期的なマスターおよび例外イベントのイベント全体が返されます。
  • 定期的なアイテムのインスタンスは省略されて、Start および End のプロパティのみが含まれます。残りの発生イベント情報は定期的なマスター イベントから取得できます。参照情報については、「イベント リソース」をご覧ください。
  • $filter$count$select$skip$top、および $search クエリ パラメーターは使用できません。

応答の種類

指定した時間範囲の展開されたイベントと省略されたイベント。

ユーザーの既定の予定表を同期する最初と 2 番目の同期要求の例を次に示します。各要求では、一度に 1 つの完全なイベントのみを返すように指定されています。

  • 最初の応答は、1 つのイベント、deltaLink および deltaToken を返します。
  • 2 番目の要求では、その deltatoken を使用します。2 番目の応答は、1 つのイベント、nextLink および skipToken を返します。

同期を完了するには、同期応答が deltaLinkdeltaToken を返すまで、以前の同期要求から返された skipToken を使用します。この場合、このラウンドの同期は完了します。次のラウンドの同期のために deltaToken を保存します。

詳細については、「Outlook 予定表ビューでイベントを同期する」を参照してください。

最初の要求のサンプル

    GET https://outlook.office.com/api/v2.0/me/calendarview?startdatetime=2015-01-01T00:00:00Z&enddatetime=2015-04-10T00:00:00Z HTTP/1.1
    Authorization: Bearer <token>
    Prefer: odata.track-changes
    Prefer: odata.maxpagesize=1

最初の応答データのサンプル

Preference-Applied: odata.track-changes

    {
        "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/CalendarView",
        "value": [
            {
                "@odata.id": "https://outlook.office.com/api/v2.0/Users('user0@contoso.com')/Events('asdas==')",
                "@odata.etag": "W/\"L8Z+4Y4u7k+97uRKg==\"",
                "Id": "AQMkANJAAAAA==",
                "ChangeKey": "L8Z+AAAAARKg==",
                "Categories": [
                ],
                "DateTimeCreated": "2015-04-10T17:54:49.2725912Z",
                "DateTimeLastModified": "2015-04-10T17:54:49.3038538Z",
                "Subject": "Discuss the Calendar REST API",
                "BodyPreview": "I think it will meet our requirements!",
                "Body": {
                    "ContentType": "HTML",
                    "Content": "<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n</head>\r\n<body>\r\nI think it will meet our requirements!\r\n</body>\r\n</html>\r\n"
                },
                "Importance": "Normal",
                "HasAttachments": false,
                "Start": {
                    "DateTime": "2015-04-05T18:00:00",
                    "TimeZone": "Pacific Standard Time"
                }
                "End": {
                    "DateTime": "2015-04-05T19:00:00",
                    "TimeZone": "Pacific Standard Time"
                }
                "ReminderMinutesBeforeStart": "15",
                "IsReminderOn": "true",
                "Location": {
                    "DisplayName": "",
                    "Address": null
                },
                "ResponseStatus": {
                    "Response": "Organizer",
                    "Time": "0001-01-01T00:00:00Z"
                },
                "ShowAs": "Busy",
                "IsAllDay": false,
                "IsCancelled": false,
                "IsOrganizer": true,
                "ResponseRequested": true,
                "Type": "SingleInstance",
                "SeriesMasterId": null,
                "Attendees": [
                ],
                "Recurrence": null,
                "OriginalEndTimeZone": "Pacific Standard Time",
                "OriginalStartTimeZone": "Pacific Standard Time",
                "Organizer": {
                    "EmailAddress": {
                        "Address": "user0@contoso.com",
                        "Name": "user0"
                    }
                },
                "iCalUId": "040000008200E9888E07599CCFA23",
                "WebLink": "https://outlook.office.com/owa/?ItemID=AAAINJAAAAA%3D%3D&exvsurl=1&viewmodel=ICalendarItemDetailsViewModelFactory",
                "OnlineMeetingUrl": null
            }
        ],
        "@odata.deltaLink": "https://outlook.office.com/api/v2.0/me/calendarview/?startdatetime=2015-01-01T00%3a00%3a00Z&enddatetime=2015-04-10T00%3a00%3a00Z&%24deltatoken=v2%2cH4roCAAA%3d%2c1.0%2cFalse%2cA00%2c"
    }

2 番目の要求のサンプル

    GET https://outlook.office.com/api/v2.0/me/calendarview?startdatetime=2015-01-01T00:00:00Z&enddatetime=2015-04-10T00:00:00Z&$deltatoken=v2%2cH4roCAAA%3d%2c1.0%2cFalse%2cA00%2c
    Authorization: Bearer <token>
    Prefer: odata.track-changes
    Prefer: odata.maxpagesize=1

2 番目の応答データのサンプル

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/CalendarView/$delta",
    "value": [
        {
            "@odata.id": "https://outlook.office.com/api/v2.0/Users('user0@contoso.com')/Events('AAMkAD0jAAA=')",
            "@odata.etag": "W/\"P2fd7QAAAAAVFA==\"",
            "Id": "AAMkADNkNmVlOTITVAAAAAA0jAAA=",
            "ChangeKey": "P2fdmIU1QAAAAAVFA==",
            "Categories": [
            ],
            "DateTimeCreated": "2015-04-15T18:59:11.0226221Z",
            "DateTimeLastModified": "2015-04-15T18:59:11.0694979Z",
            "Subject": "1 hour",
            "BodyPreview": "\u200b",
            "Body": {
                "ContentType": "HTML",
                "Content": "<html><body>content</body></html>"
            },
            "Importance": "Normal",
            "HasAttachments": false,
            "Start": {
                "DateTime": "2015-04-16T18:00:00",
                "TimeZone": "Pacific Standard Time"
            }
            "End": {
                "DateTime": "2015-04-16T19:00:00",
                "TimeZone": Pacific Standard Time"
            }
            "ReminderMinutesBeforeStart": "15",
            "IsReminderOn": "true",
            "Location": {
                "DisplayName": "",
                "Address": {
                    "Street": "",
                    "City": "",
                    "State": "",
                    "CountryOrRegion": "",
                    "PostalCode": ""
                }
             },
            "ResponseStatus": {
                "Response": "Organizer",
                "Time": "0001-01-01T00:00:00Z"
            },
            "ShowAs": "Busy",
            "IsAllDay": false,
            "IsCancelled": false,
            "IsOrganizer": true,
            "ResponseRequested": true,
            "Type": "SingleInstance",
            "SeriesMasterId": null,
            "Attendees": [
            ],
            "Recurrence": null,
            "OriginalEndTimeZone": "Pacific Standard Time",
            "OriginalStartTimeZone": "Pacific Standard Time",
            "Organizer": {
                "EmailAddress": {
                    "Address": "user0@contoso.com",
                    "Name": "user0"
                }
            },
            "iCalUId": "040000008200E09BB89A316862",
            "WebLink": "https://outlook.office.com/owa/?ItemID=AAMkADNkNmVlOAA%3D&exvsurl=1&viewmodel=ICalendarItemDetailsViewModelFactory",
            "OnlineMeetingUrl": null
        }
    ],
    "@odata.nextLink": "https://outlook.office.com/api/v2.0/me/calendarview/?startdatetime=2015-01-01T00%3a00%3a00Z&enddatetime=2015-08-10T00%3a00%3a00Z&%24skipToken=530c9d02ae1a4d96804538bd4d381546"
}

会議の日時を検索する

最低限必要な範囲

以下のいずれか:

パラメーターとして指定された開催者と出席者の空き時間、および時間または場所の制約に基づいて、会議時間の提案を検索します。

Microsoft アカウントではなく、Office 365 のメールボックス (Azure AD 上) にのみ適用されます。

POST https://outlook.office.com/api/{version}/me/findmeetingtimes

サポートされているすべてのパラメーターは以下のとおりです。シナリオに応じて、FindMeetingTimes アクションの要求本文で必要なパラメーターを指定します。

パラメーター 説明 必須
出席者 コレクション(出席者ベース) 会議の出席者またはリソース。コレクションを空にすると、FindMeetingTimes は開催者のみの空き時間帯を検索します。 省略可能
IsOrganizerOptional Edm.Boolean 開催者が必ずしも出席する必要がない場合は、true を指定します。既定値は false です。 省略可能
LocationConstraint LocationConstraint 会議の場所の提案が必要かどうか、または会議のみが開催できる特定の場所があるか、など、会議の場所に関する開催者の要件。 省略可能
MaxCandidates Edm.Int32 応答で返す会議提案の最大数です。 省略可能
MeetingDuration Edm.Duration ISO 8601 形式 (期間) で表された会議の長さ。たとえば、PT1H は 1 時間を表します。会議の期間を指定しない場合、FindMeetingTimes は既定値の 30 分を使用します。 省略可能
MinimumAttendeePercentage Edm.Double 応答で返される空き時間帯に最低限要求される確度です。割合 ( %) の値 (0 から 100 まで)。 省略可能
ReturnSuggestionReasons Edm.Boolean SuggestionReason プロパティで各会議提案の理由を返すには、true を指定します。既定値は false であり、そのプロパティを返しません。 省略可能
TimeConstraint TimeConstraint 会議に時間の制限を設ける場合は、会議の性質 (ActivityDomain) と可能な会議の期間 (TimeSlots) を含めることができます。ActivityDomain パラメーターを指定しない場合、FindMeetingTimes は、このパラメーターを Work と見なします。 省略可能

FindMeetingTimes は、開催者と出席者の標準として設定されている予定表で空き時間情報を確認します。指定されたパラメーターに基づいて、このアクションは、最も適切な会議の時間を提案します。TimeConstraint パラメーターに指定できる制限について、次の表で説明します。

TimeConstraint の ActivityDomain 値 会議の時間の候補
作業 ユーザーの予定表の構成で定義された稼働時間 (ユーザーまたは管理者がカスタマイズできる) の範囲内で候補が提案されます。既定の稼働時間は、月曜日から金曜日の午前 8 時から午後 5 時 (メールボックスに設定されたタイム ゾーンでの時刻) です。ActivityDomain を指定しない場合、これが既定値です。
Personal ユーザーの稼働時間の範囲内と、土曜日と日曜日の範囲内で候補が提案されます。既定では、月曜日から日曜日の午前 8 時から午後 5 時 (メールボックスに設定されたタイム ゾーンでの時刻) です。
無制限 任意の曜日の任意の時刻から候補が提案されます。
不明 将来的に使われなくなりますので、この値は使わないでください。現在の動作は、Work と同じです。既存のコードは、WorkPersonal、または Unrestricted のうち適切な値を使うように変更してください。

応答の種類

種類が MeetingTimeSuggestion である会議提案のコレクションと EmptySuggestionsReason プロパティを含む、MeetingTimeSuggestionsResult

各提案は、MeetingTimeSuggestion として定義され、出席者の参加の確度について、既定で 50% またはMinimumAttendeePercentage パラメーターで指定した特定の割合 (%) が付されます。

既定では、会議の日時についての各提案は UTC で返されます。Prefer: outlook.timezone 要求ヘッダーを適用して、会議の日時を別のタイム ゾーンで返すようにします。例:

Prefer: outlook.timezone="Pacific Standard Time"

FindMeetingTimes が会議提案を返すことができない場合は、応答で、EmptySuggestionsReason プロパティに理由が示されます。この値に基づいて、パラメーターをさらに調整して、FindMeetingTimes を再度呼び出すことができます。

注意

現在のところ、FindMeetingTimes は、(リソースではなく) 人である Attendee をすべて必須の出席者と見なします。そのため、attendees コレクション パラメーターの一部として、対応する type プロパティで、人に Required を、リソースに Resource を指定します。

以下のそれぞれの例は、FindMeetingTimes を呼び出しますが、出席者が出席可能かどうかと、時間と場所の制約が、下記のように異なります。

特定の出席者との会議を開催する時間と場所を検索する

要求本文で次のパラメーターを指定して、会議の時間と場所を検索します:

  • 出席者
  • TimeConstraint
  • MeetingDuration

要求のサンプル

次の例では、要求されている会議時間の範囲と要求されている時間の長さに基づき、開催者と出席者の稼働時間を考慮して、会議の時間と場所を提案します。

POST https://outlook.office.com/api/v2.0/me/findmeetingtimes

Prefer: outlook.timezone="Pacific Standard Time"
Content-Type: application/json 

{ 
  "Attendees": [ 
    { 
      "Type": "Required",  
      "EmailAddress": { 
        "Name": "Fanny",
        "Address": "fannyd@prosewareltd.onmicrosoft.com" 
      } 
    } 
  ],  
  "TimeConstraint": { 
    "ActivityDomain":"Work",
    "Timeslots": [ 
       { 
        "Start": { 
          "DateTime": "2016-05-20T07:00:00",  
          "TimeZone": "Pacific Standard Time" 
        },  
        "End": { 
          "DateTime": "2016-05-20T17:00:00",  
          "TimeZone": "Pacific Standard Time" 
        } 
      } 
    ] 
  },  
  "MeetingDuration": "PT1H" 
} 

応答のサンプル

状態コード:200

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Microsoft.OutlookServices.MeetingTimeSuggestionsResult",
    "MeetingTimeSuggestions": [
        {
            "MeetingTimeSlot": {
                "Start": {
                    "DateTime": "2016-05-20T10:00:00.0000000",
                    "TimeZone": "Pacific Standard Time"
                },
                "End": {
                    "DateTime": "2016-05-20T11:00:00.0000000",
                    "TimeZone": "Pacific Standard Time"
                }
            },
            "Confidence": 100.0,
            "OrganizerAvailability": "Free",
            "AttendeeAvailability": [
                {
                    "Attendee": {
                        "Type": "Required",
                        "EmailAddress": {
                            "Name": "Fanny",
                            "Address": "fannyd@prosewareltd.onmicrosoft.com"
                        }
                    },
                    "Availability": "Free"
                }
            ],
            "Locations": [
               {
                    "DisplayName": "Tokyo conference room",
                    "LocationEmailAddress": "",
                    "LocationUri": "",
                    "Address": null,
                    "Coordinates": null
                }
            ]
        },
        {
            "MeetingTimeSlot": {
                "Start": {
                    "DateTime": "2016-05-20T11:00:00.0000000",
                    "TimeZone": "Pacific Standard Time"
                },
                "End": {
                    "DateTime": "2016-05-20T12:00:00.0000000",
                    "TimeZone": "Pacific Standard Time"
                }
            },
            "Confidence": 100.0,
            "OrganizerAvailability": "Free",
            "AttendeeAvailability": [
                {
                    "Attendee": {
                        "Type": "Required",
                        "EmailAddress": {
                            "Name": "Fanny",
                            "Address": "fannyd@prosewareltd.onmicrosoft.com"
                        }
                    },
                    "Availability": "Free"
                }
            ],
            "Locations": [
               {
                    "DisplayName": "Paris conference room",
                    "LocationEmailAddress": "",
                    "LocationUri": "",
                    "Address": null,
                    "Coordinates": null
                }
            ]
        }
    ],
    "EmptySuggestionsReason": ""
}

既知の場所で会議を開催する時間を検索し各提案の理由を取得する

要求本体で次のパラメーターを指定して、あらかじめ決められた会議を開催する時間を検索し、各提案の理由を要求します。

  • 出席者
  • LocationConstraint
  • TimeConstraint
  • MeetingDuration
  • ReturnSuggestionReasons

FindMeetingTimes が任意の提案を返す場合は、ReturnSuggestionReasons パラメーターを設定することで、SuggestionReason プロパティの各提案の説明も取得できます。

要求のサンプル

POST https://outlook.office.com/api/v2.0/me/findmeetingtimes

Prefer: outlook.timezone="Pacific Standard Time"
Content-Type: application/json 

{ 
  "Attendees": [ 
    { 
      "Type": "Required",  
      "EmailAddress": { 
        "Name": "Fanny",
        "Address": "fannyd@prosewareltd.onmicrosoft.com" 
      } 
    } 
  ],  
  "LocationConstraint": { 
    "IsRequired": "false",  
    "SuggestLocation": "false",  
    "Locations": [ 
      { 
        "ResolveAvailability": "false",
        "DisplayName": "Conf room Hood" 
      } 
    ] 
  },  
  "TimeConstraint": { 
    "ActivityDomain":"Work",
    "Timeslots": [ 
      { 
        "Start": { 
          "DateTime": "2016-05-20T07:00:00",  
          "TimeZone": "Pacific Standard Time" 
        },  
        "End": { 
          "DateTime": "2016-05-20T17:00:00",  
          "TimeZone": "Pacific Standard Time" 
        } 
      } 
    ] 
  },  
  "MeetingDuration": "PT2H",
  "ReturnSuggestionReasons": "true"
} 

応答のサンプル

状態コード:200

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Microsoft.OutlookServices.MeetingTimeSuggestionsResult",
    "MeetingTimeSuggestions": [
        {
            "MeetingTimeSlot": {
                "Start": {
                    "DateTime": "2016-05-20T10:00:00.0000000",
                    "TimeZone": "Pacific Standard Time"
                },
                "End": {
                    "DateTime": "2016-05-20T12:00:00.0000000",
                    "TimeZone": "Pacific Standard Time"
                }
            },
            "Confidence": 100.0,
            "OrganizerAvailability": "Free",
            "AttendeeAvailability": [
                {
                    "Attendee": {
                        "Type": "Required",
                        "EmailAddress": {
                            "Name": "Fanny",
                            "Address": "fannyd@prosewareltd.onmicrosoft.com"
                        }
                    },
                    "Availability": "Free"
                }
            ],
            "Locations": [
                {
                    "DisplayName": "Conf room Hood"
                }
            ],
            "SuggestionReason": "Suggested because it is one of the nearest times when all attendees are available."
        }
    ],
    "EmptySuggestionsReason": ""
}

会議を開催する時間を検索したが出席可能な出席者がいない

要求本体で次のパラメーターを指定して、所定の場所で会議を開催する時間を検索します:

  • 出席者
  • LocationConstraint
  • TimeConstraint
  • MeetingDuration

この例では、指定したパラメーターと出席者の空き時間に基づいて、FindMeetingTimes は提案を 1 つも返すことができない代わりに EmptySuggestionsReason プロパティの理由 AttendeesUnavailable を返します。

会議提案が 1 つも返されないことの考えられる他の理由を参照してください。

要求のサンプル

POST https://outlook.office.com/api/v2.0/me/findmeetingtimes

Prefer: outlook.timezone="Pacific Standard Time"
Content-Type: application/json 

{ 
  "Attendees": [ 
    { 
      "Type": "Required",  
      "EmailAddress": { 
        "Name": "Fanny",
        "Address": "fannyd@prosewareltd.onmicrosoft.com" 
      } 
    } 
  ],  
  "LocationConstraint": { 
    "IsRequired": "false",  
    "SuggestLocation": "false",  
    "Locations": [ 
      { 
        "ResolveAvailability": "false",
        "DisplayName": "Conf room Hood" 
      } 
    ] 
  },  
  "TimeConstraint": { 
    "Timeslots": [ 
      { 
        "Start": { 
          "DateTime": "2016-05-20T7:00:00",  
          "TimeZone": "Pacific Standard Time" 
        },  
        "End": { 
          "DateTime": "2016-05-20T14:00:00",  
          "TimeZone": "Pacific Standard Time" 
        } 
      } 
    ] 
  },  
  "MeetingDuration": "PT2H" 
}

応答のサンプル

状態コード:200

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Microsoft.OutlookServices.MeetingTimeSuggestionsResult",
    "MeetingTimeSuggestions": [
    ],
    "EmptySuggestionsReason": "AttendeesUnavailable"
}

会議を開催する時間を検索したが出席可能な出席者は一部のみ

要求本体で次のパラメーターを指定して、所定の場所で会議を開催する時間を検索します:

  • 出席者
  • LocationConstraint
  • TimeConstraint
  • MeetingDuration
  • ReturnSuggestionReasons
  • MinimumAttendeePercentage

この例では、2 人の出席者のうち 1 人だけが出席できます。 FindMeetingTimes が返すそれぞれの会議提案には、次が含まれています。

  • 各出席者の空き時間情報
  • 出席者の平均出席率 (%) である、会議の計算済み確度。この値が MinimumAttendeePercentage で指定した要求値 60% を満たす必要があります。
  • ReturnSuggestionReasons パラメーターを設定した以降の SuggestionHint

会議の確度についてさらに詳しい情報を参照してください。

要求のサンプル

POST https://outlook.office.com/api/v2.0/me/findmeetingtimes

Prefer: outlook.timezone="Pacific Standard Time"
Content-Type: application/json 

{ 
  "Attendees": [ 
    { 
      "Type": "Required",  
      "EmailAddress": { 
        "Name": "Fanny",
        "Address": "fannyd@prosewareltd.onmicrosoft.com" 
      } 
    },
   { 
      "Type": "Optional",  
      "EmailAddress": { 
        "Name": "Dana",
        "Address": "danas@prosewareltd.onmicrosoft.com" 
      } 
    } 
  ],  
  "LocationConstraint": { 
    "IsRequired": "false",  
    "SuggestLocation": "false",  
    "Locations": [ 
      { 
        "ResolveAvailability": "false",
        "DisplayName": "Conf room Hood" 
      } 
    ] 
  },  
  "TimeConstraint": { 
    "ActivityDomain":"Work",
    "Timeslots": [ 
      { 
        "Start": { 
          "DateTime": "2016-05-20T09:00:00",  
          "TimeZone": "Pacific Standard Time" 
        },  
        "End": { 
          "DateTime": "2016-05-20T17:00:00",  
          "TimeZone": "Pacific Standard Time" 
        } 
      } 
    ] 
  },  
  "MeetingDuration": "PT1H",
  "ReturnSuggestionReasons": "true",
  "MinimumAttendeePercentage": "60"
}

応答のサンプル

状態コード:200

{
   "@odata.context":"https://outlook.office.com/api/v2.0/$metadata#Microsoft.OutlookServices.MeetingTimeSuggestionsResult",
   "MeetingTimeSuggestions":[
      {
         "MeetingTimeSlot":{
            "Start":{
               "DateTime":"2016-05-20T10:00:00.0000000",
               "TimeZone":"Pacific Standard Time"
            },
            "End":{
               "DateTime":"2016-05-20T11:00:00.0000000",
               "TimeZone":"Pacific Standard Time"
            }
         },
         "Confidence":100.0,
         "OrganizerAvailability":"Free",
         "AttendeeAvailability":[
            {
               "Attendee":{
                  "Type":"Required",
                  "EmailAddress":{
                     "Name": "Fanny",
                     "Address":"fannyd@prosewareltd.onmicrosoft.com"
                  }
               },
               "Availability":"Free"
            },
            {
               "Attendee":{
                  "Type":"Required",
                  "EmailAddress":{
                     "Name": "Dana",
                     "Address":"danas@prosewareltd.onmicrosoft.com"
                  }
               },
               "Availability":"Free"
            }
         ],
         "Locations":[
            {
               "DisplayName":"Conf room Hood"
            }
         ],
         "SuggestionReason":"Suggested because it is one of the nearest times when most attendees are available."
      },
      {
         "MeetingTimeSlot":{
            "Start":{
               "DateTime":"2016-05-20T11:00:00.0000000",
               "TimeZone":"Pacific Standard Time"
            },
            "End":{
               "DateTime":"2016-05-20T12:00:00.0000000",
               "TimeZone":"Pacific Standard Time"
            }
         },
         "Confidence":74.5,
         "OrganizerAvailability":"Free",
         "AttendeeAvailability":[
            {
               "Attendee":{
                  "Type":"Required",
                  "EmailAddress":{
                     "Name": "Fanny",
                     "Address":"fannyd@prosewareltd.onmicrosoft.com"
                  }
               },
               "Availability":"Free"
            },
            {
               "Attendee":{
                  "Type":"Required",
                  "EmailAddress":{
                     "Name": "Dana",
                     "Address":"danas@prosewareltd.onmicrosoft.com"
                  }
               },
               "Availability":"Unknown"
            }
         ],
         "Locations":[
            {
               "DisplayName":"Conf room Hood"
            }
         ],
         "SuggestionReason":"Suggested because it is one of the nearest times when most attendees are available."
      }
   ],
   "EmptySuggestionsReason":""
}

サインイン中のユーザーのみの空き時間帯を検索する

要求本文で次のパラメーターを指定して、日付範囲内の任意の曜日の任意の時間で、サインインしているユーザーの標準として設定されている予定表から空き時間帯を検索します。

  • TimeConstraint
  • MeetingDuration

要求のサンプル

この例では、TimeConstraint で指定された日付範囲内の任意の曜日の任意の時間で、サインインしているユーザーの標準として設定されている予定表から、MeetingDuration で指定されたとおりの 1 時間の空き時間帯を探します。

POST https://outlook.office.com/api/v2.0/me/findmeetingtimes

Prefer: outlook.timezone="Pacific Standard Time"
Content-Type: application/json 

{ 
  "Attendees": [],
  "TimeConstraint": { 
    "ActivityDomain": "Unrestricted",
    "Timeslots": [ 
      { 
        "Start": { 
          "DateTime": "2016-05-20T06:00:00",  
          "TimeZone": "Pacific Standard Time" 
        },  
        "End": { 
          "DateTime": "2016-05-22T23:00:00",  
          "TimeZone": "Pacific Standard Time" 
        } 
      } 
    ] 
  },  
  "MeetingDuration": "PT1H"
}

応答のサンプル

状態コード:200

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Microsoft.OutlookServices.MeetingTimeSuggestionsResult",
    "MeetingTimeSuggestions": [
        {
            "MeetingTimeSlot": {
                "Start": {
                    "DateTime": "2016-05-20T06:00:00.0000000",
                    "TimeZone": "Pacific Standard Time"
                },
                "End": {
                    "DateTime": "2016-05-20T07:00:00.0000000",
                    "TimeZone": "Pacific Standard Time"
                }
            },
            "Confidence": 100.0,
            "OrganizerAvailability": "Free",
            "AttendeeAvailability": [
            ],
            "Locations": [
            ]
        },
        {
            "MeetingTimeSlot": {
                "Start": {
                    "DateTime": "2016-05-21T09:00:00.0000000",
                    "TimeZone": "Pacific Standard Time"
                },
                "End": {
                    "DateTime": "2016-05-21T10:00:00.0000000",
                    "TimeZone": "Pacific Standard Time"
                }
            },
            "Confidence": 100.0,
            "OrganizerAvailability": "Free",
            "AttendeeAvailability": [
            ],
            "Locations": [
            ]
        },
        {
            "MeetingTimeSlot": {
                "Start": {
                    "DateTime": "2016-05-22T19:00:00.0000000",
                    "TimeZone": "Pacific Standard Time"
                },
                "End": {
                    "DateTime": "2016-05-22T20:00:00.0000000",
                    "TimeZone": "Pacific Standard Time"
                }
            },
            "Confidence": 100.0,
            "OrganizerAvailability": "Free",
            "AttendeeAvailability": [
            ],
            "Locations": [
            ]
        }
    ],
    "EmptySuggestionsReason": ""
}

会議室を取得する (プレビュー)

この機能は現在ベータ版で利用できます。 詳細を確認するには、左側の目次の [Office 365 REST API リファレンス] セクションで [ベータ版] を選択します。

イベントを作成する

予定表イベントを作成する

最低限必要な範囲

以下のいずれか:

予定表の events エンドポイントに投稿することによって、ユーザーの標準として設定されている予定表または特定の予定表にイベントを作成します。 イベントが作成されると、サーバーはすべての出席者に招待状を送信します。

POST https://outlook.office.com/api/v2.0/me/events
POST https://outlook.office.com/api/v2.0/me/calendars/{calendar_id}/events
必須パラメーター 説明
URL パ ラ メ ー タ
calendar_id 文字列 予定表 ID。

要求のサンプル

POST https://outlook.office.com/api/v2.0/me/events
Content-Type: application/json
{
  "Subject": "Discuss the Calendar REST API",
  "Body": {
    "ContentType": "HTML",
    "Content": "I think it will meet our requirements!"
  },
  "Start": {
      "DateTime": "2014-02-02T18:00:00",
      "TimeZone": "Pacific Standard Time"
  },
  "End": {
      "DateTime": "2014-02-02T19:00:00",
      "TimeZone": "Pacific Standard Time"
  },
  "Attendees": [
    {
      "EmailAddress": {
        "Address": "janets@a830edad9050849NDA1.onmicrosoft.com",
        "Name": "Janet Schorr"
      },
      "Type": "Required"
    }
  ]
}

応答のサンプル

状態コード :201

{
  "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Events/$entity",
  "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGE4v1RAAA=')",
  "@odata.etag": "W/\"Jj9S59cHB0Wq4jXUzBgDvQAAFeNheA==\"",
  "Id": "AAMkAGE4v1RAAA=",
  "ChangeKey": "Jj9S59cHB0Wq4jXUzBgDvQAAFeNheA==",
  "Categories": [],
  "CreatedDateTime": "2014-01-22T20:56:10.1058291Z",
  "LastModifiedDateTime": "2014-01-22T20:56:10.3402186Z",
  "Subject": "Discuss the Calendar REST API",
  "BodyPreview": "I think it will meet our requirements!",
  "Body": {
    "ContentType": "HTML",
    "Content": "<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n</head>\r\n<body>\r\nI think it will meet our requirements!\r\n</body>\r\n</html>\r\n"
  },
  "Importance": "Normal",
  "HasAttachments": false,
  "Start": {
      "DateTime": "2014-02-02T18:00:00",
      "TimeZone": "Pacific Standard Time"
  },
  "End": {
      "DateTime": "2014-02-02T19:00:00",
      "TimeZone": "Pacific Standard Time"
  },
  "Location": {
    "DisplayName": "",
    "Address": null
  },
  "ShowAs": "Busy",
  "IsAllDay": false,
  "IsCancelled": false,
  "IsOrganizer": true,
  "ResponseRequested": true,
  "Type": "SingleInstance",
  "SeriesMasterId": null,
  "Attendees": [
    {
      "EmailAddress": {
        "Address": "janets@a830edad9050849NDA1.onmicrosoft.com",
        "Name": "Janet Schorr"
      },
      "Status": {
        "Response": "None",
        "Time": "0001-01-01T00:00:00Z"
      },
      "Type": "Required"
    }
  ],
  "Recurrence": null,
  "OriginalEndTimeZone": "Pacific Standard Time",
  "OriginalStartTimeZone": "Pacific Standard Time",
  "Organizer": {
    "EmailAddress": {
      "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com",
      "Name": "alexd"
    }
  },
  "OnlineMeetingUrl": null
}

応答の種類

新しいイベント

既定では、応答に新しいイベントのすべてのプロパティが含まれます。 最適なパフォーマンスを得るために必要なプロパティのみを指定する場合は、$selectを使用します。 Id プロパティは常に返されます。

以下は、応答内の新しいイベントの StartEnd プロパティのみを含める例です。

POST https://outlook.office.com/api/v2.0/me/events?$Select=Start,End

イベントを更新する

予定表イベントを更新する

最低限必要な範囲

以下のいずれか:

イベントを変更します。指定したプロパティのみが変更されます。ユーザーが開催者である場合、サーバーはすべての出席者に会議の更新を送信します。

PATCH https://outlook.office.com/api/v2.0/me/events/{event_id}
必須パラメーター 説明
URL パ ラ メ ー タ
event_id 文字列 イベント ID。

要求本文に任意の書き込み可能な event プロパティを指定します。

要求のサンプル

PATCH https://outlook.office.com/api/v2.0/me/events/AAMkAGE0M4v1OAAA=
Content-Type: application/json

{
  "Location": {
    "DisplayName": "Your office",
    "Address": null
  }
}

応答のサンプル

状態コード:200

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Events/$entity",
  "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGE0M4v1OAAA=')",
  "@odata.etag": "W/\"Jj9S59cHB0Wq4jXUzBgDvQAAFeNheQ==\"",
  "Id": "AAMkAGE0M4v1OAAA=",
  "ChangeKey": "Jj9S59cHB0Wq4jXUzBgDvQAAFeNheQ==",
  "Categories": [],
  "CreatedDateTime": "2014-01-22T20:49:05.5657528Z",
  "LastModifiedDateTime": "2014-01-22T21:14:17.4886416Z",
  "Subject": "Discuss the Calendar REST API",
  "BodyPreview": "I think it will meet our requirements!",
  "Body": {
    "ContentType": "HTML",
    "Content": "<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n</head>\r\n<body>\r\nI think it will meet our requirements!\r\n</body>\r\n</html>\r\n"
  },
  "Importance": "Normal",
  "HasAttachments": false,
  "Start": {
      "DateTime": "2014-02-02T18:00:00",
      "TimeZone": "Pacific Standard Time"
  },
  "End": {
      "DateTime": "2014-02-02T19:00:00",
      "TimeZone": "Pacific Standard Time"
  },
  "Location": {
    "DisplayName": "Your office",
    "Address": null
  },
  "ShowAs": "Busy",
  "IsAllDay": false,
  "IsCancelled": false,
  "IsOrganizer": true,
  "ResponseRequested": true,
  "Type": "SingleInstance",
  "SeriesMasterId": null,
  "Attendees": [],
  "Recurrence": null,
  "OriginalEndTimeZone": "Pacific Standard Time",
  "OriginalStartTimeZone": "Pacific Standard Time",
  "Organizer": {
    "EmailAddress": {
      "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com",
      "Name": "alexd"
    }
  },
  "OnlineMeetingUrl": null
}

応答の種類

更新されたイベント。ユーザーが開催者である場合、サーバーはすべての出席者に会議の更新を送信します。

既定では、応答には更新されたイベントのすべてのプロパティが含まれます。 最適なパフォーマンスを得るために必要なプロパティのみを指定する場合は、$selectを使用します。 Id プロパティは常に返されます。

PATCH https://outlook.office.com/api/v2.0/me/events/AAMkAGE1MFKPQWAAA=?$select=Location

イベントに応答する

イベントを承諾する

最低限必要な範囲

以下のいずれか:

指定したイベントを承諾します。

POST https://outlook.office.com/api/v2.0/me/events/{event_id}/accept
パラメーター 説明
URL パ ラ メ ー タ
event_id 文字列 イベント ID。必須です。
本文パラメータ
コメント 文字列 応答に含まれるテキスト。省略可。
SendResponse ブール値 true 応答が開催者に送信される場合は、それ以外の場合は、false。省略可。既定値は true です。

要求のサンプル

POST https://outlook.office.com/api/v2.0/me/events('AAMkAGE1M2IyNGNmLTI5MT_bs88AAAXDJwEAAA=')/accept

Content-Type: application/json

{
  "Comment": "Great idea!",
  "SendResponse": "true"
}

応答

成功した応答は、HTTP 202 承認済みの応答コードで示されます。

イベントを仮承諾する

最低限必要な範囲

以下のいずれか:

指定したイベントを仮承諾します。

POST https://outlook.office.com/api/v2.0/me/events/{event_id}/tentativelyaccept
パラメーター 説明
URL パ ラ メ ー タ
event_id 文字列 イベント ID。必須です。
本文パラメータ
コメント 文字列 応答に含まれるテキスト。省略可。
SendResponse ブール値 true 応答が開催者に送信される場合は、それ以外の場合は、false。省略可。既定値は true です。

要求のサンプル

POST https://outlook.office.com/api/v2.0/me/events('AAMkAGE1M2IyNGNmLTI5MT_bs88AAAXDJwEAAA=')/tentativelyaccept

Content-Type: application/json

{
  "Comment": "I'll confirm later!",
  "SendResponse": "true"
}

応答

成功した応答は、HTTP 202 承認済みの応答コードで示されます。

イベントを辞退する

最低限必要な範囲

以下のいずれか:

指定したイベントへの招待を辞退します。

POST https://outlook.office.com/api/v2.0/me/events/{event_id}/decline
パラメーター 説明
URL パ ラ メ ー タ
event_id 文字列 イベント ID。必須です。
本文パラメータ
コメント 文字列 応答に含まれるテキスト。省略可。
SendResponse ブール値 true 応答が開催者に送信される場合は、それ以外の場合は、false。省略可。既定値は true です。

要求のサンプル

POST https://outlook.office.com/api/v2.0/me/events('AAMkAGE1M2IyNGNmLTI5MT_bs88AAAXDJwEAAA=')/decline

Content-Type: application/json

{
  "Comment": "Sorry, maybe next time!",
  "SendResponse": "true"
}

応答

成功した応答は、HTTP 202 承認済みの応答コードで示されます。

イベントを転送する (プレビュー)

この機能は、現在ベータ版でのみ利用可能です。 詳細を確認するには、左側の目次の [Office 365 REST API リファレンス] セクションで [ベータ版] を選択します。

イベントを削除する

予定表イベントを削除する

最低限必要な範囲

以下のいずれか:

イベントをサインインしているユーザーの削除済みアイテム フォルダーに移動します。イベントが会議であり、サインインしているユーザーが開催者である場合は、サーバーはすべての出席者にキャンセルを送信します。

DELETE https://outlook.office.com/api/v2.0/me/events/{event_id}
必須パラメーター 説明
URL パ ラ メ ー タ
event_id 文字列 イベント ID。

要求のサンプル

DELETE https://outlook.office.com/api/v2.0/me/events/AAMkAGE0M4v1OAAA=

応答のサンプル

Status code: 204

イベントをキャンセルする (プレビュー)

この機能は、現在ベータ版でのみ利用可能です。 詳細を確認するには、左側の目次の [Office 365 REST API リファレンス] セクションで [ベータ版] を選択します。

添付ファイルを取得する

添付ファイルのコレクションまたは添付ファイルを取得できます。

添付ファイルのコレクションを取得する

最低限必要な範囲

以下のいずれか:

特定のイベントから添付ファイルを取得します。

注意

パラメーターのフィルタリング、並べ替え、およびページングについては、「OData クエリ パラメーター」を参照してください。

GET https://outlook.office.com/api/v2.0/me/events/{event_id}/attachments
必須パラメーター 説明
URL パ ラ メ ー タ
event_id 文字列 イベント ID。

応答の種類

FileAttachment または ItemAttachment の種類を使用できる添付ファイル コレクション。

要求のサンプル

GET https://outlook.office.com/api/v2.0/me/events/AAMkAGI2NGTG9yAAA=/attachments

応答のサンプル

状態コード:200

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Events('AAMkAGI2NG9yAAA%3D')/Attachments",
    "value": [
        {
            "@odata.type": "#Microsoft.OutlookServices.FileAttachment",
            "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2NGTG9yAAA=')/Attachments('AAMkAGI2NGLwydGuOzcHf1FBlo=')",
            "Id": "AAMkAGI2NGLwydGuOzcHf1FBlo=",
            "LastModifiedDateTime": "2014-10-22T00:30:26Z",
            "Name": "Company Party.docx",
            "ContentType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
            "Size": 11647,
            "IsInline": false,
            "ContentId": null,
            "ContentLocation": null,
            "ContentBytes": "UEsDBBQABgAIAAAAIQDfpNJs...AAF4pAAAAAA=="
        }
    ]
}

添付ファイルを取得する

最低限必要な範囲

以下のいずれか:

特定のイベントから添付ファイルを取得します。

GET https://outlook.office.com/api/v2.0/me/events/{event_id}/attachments/{attachment_id}
必須パラメーター 説明
URL パ ラ メ ー タ
event_id 文字列 イベント ID。
attachment_id 文字列 添付ファイル ID。

注意

パラメーターのフィルタリング、並べ替え、およびページングについては、「OData クエリ パラメーター」を参照してください。

応答の種類

要求された添付ファイルまたはアイテムの添付ファイル

要求のサンプル

GET https://outlook.office.com/api/v2.0/me/events/AAMkAGI2WRAAADTG9yAAA=/attachments/AAMkAGI2TG9yAAABEgAQALxJtn1LwydGuOzcHf1FBlo=

応答のサンプル

状態コード:200

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Events('AAMkAGI2WRAAADTG9yAAA%3D')/Attachments/$entity",
    "@odata.type": "#Microsoft.OutlookServices.FileAttachment",
    "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2WRAAADTG9yAAA=')/Attachments('AAMkAGI2TG9yAAABEgAQALxJtn1LwydGuOzcHf1FBlo=')",
    "Id": "AAMkAGI2TG9yAAABEgAQALxJtn1LwydGuOzcHf1FBlo=",
    "LastModifiedDateTime": "2014-10-22T00:30:26Z",
    "Name": "Company Party.docx",
    "ContentType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
    "Size": 11647,
    "IsInline": false,
    "ContentId": null,
    "ContentLocation": null,
    "ContentBytes": "UEsDBBQABgAIAAAAIQD...AAF4pAAAAAA=="
}

サンプル要求 (添付ファイルの $expand)

次の例では、イベント プロパティを持つ 2 つの参照添付ファイルのインラインを取得して展開します。

GET https://outlook.office.com/api/v2.0/me/events('AAMkAGE1Mbs88AADggYEcAAA=')?$expand=attachments

応答のサンプル

状態コード:200

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#users('ddfcd489-628b-40d7-b48b-57002df800e5')/events/$entity",
    "@odata.etag": "W/\"mODEKWhc/Um6lA3uPm7PPAAA4KZrtA==\"",
    "id": "AAMkAGE1Mbs88AADggYEcAAA=",
    "createdDateTime": "2016-03-22T22:19:58.1359352Z",
    "lastModifiedDateTime": "2016-03-22T22:39:09.9335289Z",
    "changeKey": "mODEKWhc/Um6lA3uPm7PPAAA4KZrtA==",
    "categories": [
    ],
    "originalStartTimeZone": "Pacific Standard Time",
    "originalEndTimeZone": "Pacific Standard Time",
    "responseStatus": {
        "response": "organizer",
        "time": "0001-01-01T00:00:00Z"
    },
    "iCalUId": "040000008200E00074C5B7101A82E008000000005895FCF78884D10100000000000000001000000099DD7CA6BCF37C4F9F7DAACCADDD6B89",
    "reminderMinutesBeforeStart": 15,
    "isReminderOn": true,
    "hasAttachments": true,
    "subject": "Plan Easter egg hunt!",
    "body": {
        "contentType": "html",
        "content": "<html>\r\n<body>\r\nLet's get organized for this weekend's gathering.\r\n</body>\r\n</html>\r\n"
    },
    "bodyPreview": "Let's get organized for this weekend's gathering.",
    "importance": "normal",
    "sensitivity": "normal",
    "start": {
        "dateTime": "2016-03-26T17:00:00.0000000",
        "timeZone": "UTC"
    },
    "end": {
        "dateTime": "2016-03-26T18:00:00.0000000",
        "timeZone": "UTC"
    },
    "location": {
        "displayName": "",
        "locationType": "default",
        "address": {
            "type": "unknown"
        },
        "coordinates": {
        }
    },
    "locations": [

    ],
    "isAllDay": false,
    "isCancelled": false,
    "isOrganizer": true,
    "recurrence": null,
    "responseRequested": true,
    "seriesMasterId": null,
    "showAs": "busy",
    "type": "singleInstance",
    "attendees": [
        {
            "status": {
                "response": "none",
                "time": "0001-01-01T00:00:00Z"
            },
            "type": "required",
            "emailAddress": {
                "name": "Randi Welch",
                "address": "randiw@contoso.onmicrosoft.com"
            }
        }
    ],
    "organizer": {
        "emailAddress": {
            "name": "Dana Swope",
            "address": "danas@contoso.onmicrosoft.com"
        }
    },
    "webLink": "https://outlook.office.com/owa/?ItemID=AAMkAGE1Mbs88AADggYEcAAA%3D&exvsurl=1&viewmodel=ICalendarItemDetailsViewModelFactory",
    "onlineMeetingUrl": null,
    "attachments@odata.context": "https://outlook.office.com/api/beta/$metadata#users('ddfcd489-628b-40d7-b48b-57002df800e5')/events('AAMkAGE1Mbs88AADggYEcAAA%3D')/attachments",
    "attachments": [
        {
            "@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment",
            "id": "AAMkAGE1Mbs88AADggYEcAAABEgAQAABWAoLgP3REt_LWRG8ORv4=",
            "lastModifiedDateTime": "2016-03-22T22:27:20Z",
            "name": "Hydrangea picture",
            "contentType": null,
            "size": 412,
            "isInline": false,
            "sourceUrl": "https://contoso-my.spoppe.com/personal/danas_contoso_onmicrosoft_com/Documents/Pics/hydrangea.jpg",
            "providerType": "oneDriveBusiness",
            "thumbnailUrl": null,
            "previewUrl": null,
            "permission": "edit",
            "isFolder": false
        },
        {
            "@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment",
            "id": "AAMkAGE1Mbs88AADggYEcAAABEgAQAE1rHHth7YNLlR9WsgnODy0=",
            "lastModifiedDateTime": "2016-03-22T22:39:09Z",
            "name": "Koala picture",
            "contentType": null,
            "size": 382,
            "isInline": false,
            "sourceUrl": "https://contoso-my.spoppe.com/personal/danas_contoso_onmicrosoft_com/Documents/Pics/koala.jpg",
            "providerType": "oneDriveBusiness",
            "thumbnailUrl": null,
            "previewUrl": null,
            "permission": "edit",
            "isFolder": false
        }
    ]
}

サンプル要求 (入れ子になった添付ファイル アイテムの $expand)

次の例では、入れ子になった添付ファイル アイテムを取得します。

GET https://outlook-sdf.office.com/api/v2.0/me/events/AAMkAGE1Mbs88AADUv0uFAAA=/attachments/AAMkAGE1Mbs88AADUv0uFAAABEgAQAL53d0u3BKBJmCxKVxZKBZ8=$expand=Microsoft.OutlookServices.ItemAttachment/Item

応答のサンプル

Status code: 200

{
    "Id": "AAMkAGE1Mbs88AADUv0uFAAABEgAQAL53d0u3BKBJmCxKVxZKBZ8=",
    "LastModifiedDateTime": "2017-04-25T20:05:55Z",
    "Name": "RE: Changes to GetConditionMetadata handler",
    "ContentType": null,
    "Size": 78927,
    "IsInline": false,
    "Item": {
        "Id": "", 
        "Name": "How to retrieve item attachment using Outlook REST API",
        "ContentType": message/rfc822,
        "Size": 71094,
        "IsInline": false,
        "LastModifiedDateTime": "2015-09-24T05:57:59Z",
    }
}

添付ファイルを作成する

イベントの添付ファイルまたはアイテムの添付ファイルを作成できます。

添付ファイルを作成する

最低限必要な範囲

以下のいずれか:

イベントに添付ファイルを追加します。

POST https://outlook.office.com/api/v2.0/me/events/{event_id}/attachments
必須パラメーター 説明
URL パ ラ メ ー タ
event_id 文字列 イベント ID。
本文パラメータ
@odata.type 文字列 #Microsoft.OutlookServices.FileAttachment
名前 文字列 添付ファイルの名前。
ContentBytes バイナリ 添付するファイル。

応答の種類

新しい添付ファイル

アイテムの添付ファイルを作成する

最低限必要な範囲

以下のいずれか:

イベントにアイテムの添付ファイルを追加します。

POST https://outlook.office.com/api/v2.0/me/events/{event_id}/attachments
必須パラメーター 説明
URL パ ラ メ ー タ
event_id 文字列 イベント ID。
本文パラメータ
@odata.type 文字列 #Microsoft.OutlookServices.ItemAttachment
名前 文字列 添付ファイルの名前。
Item MessageEvent、または Contact エンティティ。 添付するアイテム。

応答の種類

新しいアイテムの添付ファイル

参照添付ファイルを作成する

最低限必要な範囲

https://outlook.office.com/calendars.readwrite

イベントに参照添付ファイルを追加します。

POST https://outlook.office.com/api/v2.0/me/events/{event_id}/attachments
必須パラメーター 説明
URL パ ラ メ ー タ
event_id 文字列 イベント ID。
本文パラメータ
@odata.type 文字列 #Microsoft.OutlookServices.ReferenceAttachment
名前 文字列 添付ファイルの表示名。必須。
SourceUrl 文字列 添付ファイルの内容を取得するための URL。フォルダーへの URL の場合、Outlook または Outlook on the web 上でフォルダーが正しく表示されるには、IsFolder を true に設定します。必須。

要求本文に、NameSourceUrl パラメーターおよび書き込み可能な参照添付ファイルのプロパティを指定します。

応答の種類

参照添付ファイル

要求のサンプル

次の例では、既存のイベントに参照添付ファイルを追加します。添付ファイルは、OneDrive for Business 上のファイルへのリンクです。

POST https://outlook.office.com/api/v2.0/me/events('AAMkAGE1Mbs88AADggYEcAAA=')/attachments
Content-Type: application/json

{
    "@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment", 
    "Name": "Hydrangea picture", 
    "SourceUrl": "https://contoso-my.spoppe.com/personal/danas_contoso_onmicrosoft_com/Documents/Pics/hydrangea.jpg", 
    "ProviderType": "oneDriveBusiness", 
    "Permission": "Edit", 
    "IsFolder": "False" 
 }

応答のサンプル

状態コード:201 Created

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#users('ddfcd489-628b-40d7-b48b-57002df800e5')/events('AAMkAGE1Mbs88AADggYEcAAA%3D')/attachments/$entity",
    "@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment",
    "Id": "AAMkAGE1Mbs88AADggYEcAAABEgAQAABWAoLgP3REt_LWRG8ORv4=",
    "LastModifiedDateTime": "2016-03-22T22:27:20Z",
    "Name": "Hydrangea picture",
    "ContentType": null,
    "Size": 412,
    "IsInline": false,
    "SourceUrl": "https://contoso-my.spoppe.com/personal/danas_contoso_onmicrosoft_com/Documents/Pics/hydrangea.jpg",
    "ProviderType": "oneDriveBusiness",
    "ThumbnailUrl": null,
    "PreviewUrl": null,
    "Permission": "edit",
    "IsFolder": false
}

添付ファイルを削除する

イベントの添付ファイルを削除する

最低限必要な範囲

以下のいずれか:

イベントの指定した添付ファイルを削除します。添付ファイルは、添付ファイルまたはアイテムの添付ファイルにすることができます。

DELETE https://outlook.office.com/api/v2.0/me/events/{event_id}/attachments/{attachment_id}
必須パラメーター 説明
URL パ ラ メ ー タ
event_id 文字列 イベント ID。
attachment_id 文字列 添付ファイル ID。

要求のサンプル

DELETE https:/outlook.office.com/api/v2.0/me/events/AAMkAGE0MG4v1OAAA=/attachments/AAMkAGITG9yAAA=

応答のサンプル

Status code: 204

添付ファイルを削除する

予定表から 2 つの日付と時刻の間のイベントのアラーム一覧を取得します。

最低限必要な範囲

以下のいずれか:

GET https://outlook.office.com/api/v2.0/me/ReminderView(StartDateTime='{DateTime}',EndDateTime='{DateTime}')
必須パラメーター 説明
ヘッダー パラメータ
希望する値: outlook.timezone 応答内のイベントに対する既定のタイムゾーン。
URL パ ラ メ ー タ
StartDateTime 文字列 返されるアラームの開始日と開始時刻。
EndDateTime 文字列 返されるアラームの終了日と終了時刻。

Prefer: outlook.timezone ヘッダーを使用して、応答内イベントの開始時刻と終了時刻に使用するタイム ゾーンを指定します。 イベントが別のタイム ゾーンで作成された場合は、開始時刻と終了時刻は指定したタイム ゾーンに合わせて調整されます。

サポートされているタイム ゾーン名については、この一覧を参照してください。 Prefer: outlook.timezone ヘッダーが指定されない場合は、タイム ゾーンは UTC に設定されます。

アラームを再通知する

アラームを再通知して、新しい時間までアラームを延期します。

最低限必要な範囲

以下のいずれか:

POST https://outlook.office.com/api/v2.0/me/Events('{id}')/SnoozeReminder
必要なパラメーター 種類 説明
URL パ ラ メ ー タ
ID 文字列 イベントの ID。
本文パラメータ
NewReminderTime dateTimeTimeZone アラームをトリガーする新しい日付と時刻。

アラームを消す

トリガーされたアラームを消します。

最低限必要な範囲

以下のいずれか:

POST https://outlook.office.com/api/v2.0/me/Events({id})/DismissReminder
必要なパラメーター 種類 説明
URL パ ラ メ ー タ
ID 文字列 イベントの ID。

予定表を取得する

予定表のコレクションまたは予定表を取得できます。

予定表のコレクションを取得する

最低限必要な範囲

以下のいずれか:

ユーザーのすべての予定表 (calendars) を取得するか、または特定の予定表グループの予定表を取得します。

GET https://outlook.office.com/api/v2.0/me/calendars
GET https://outlook.office.com/api/v2.0/me/calendargroups/{calendar_group_id}/calendars

注意

パラメーターのフィルタリング、並べ替え、およびページングについては、「OData クエリ パラメーター」を参照してください。

必須パラメーター 説明
URL パ ラ メ ー タ
calender_group_id 文字列 予定表グループ ID。

要求のサンプル

https://outlook.office.com/api/v2.0/me/calendars

応答のサンプル

状態コード:200

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Calendars",
    "value": [
        {
            "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Calendars('AAMkAGI2TGuLAAA=')",
            "Id": "AAMkAGI2TGuLAAA=",
            "Name": "Calendar",
            "Color": "Auto",
            "ChangeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x0+w==",
            "CanShare":true,
            "CanViewPrivateItems":true,
            "CanEdit":true,
            "Owner":{
              "Name":"Fanny Downs",
              "Address":"fannyd@adatum.onmicrosoft.com"
            }
        }
    ]
}

予定表を取得する

最低限必要な範囲

以下のいずれか:

ID で予定表を取得します。../me/calendar エンドポイントを使用して、ユーザーの標準として設定されている予定表を取得できます。

GET https://outlook.office.com/api/v2.0/me/calendars/{calendar_id}

注意

パラメーターのフィルタリング、並べ替え、およびページングについては、「OData クエリ パラメーター」を参照してください。

必須パラメーター 説明
URL パ ラ メ ー タ
calendar_id 文字列 予定表 ID。

要求のサンプル

GET https://outlook.office.com/api/v2.0/me/calendars/AAMkAGI2TGuLAAA=

応答のサンプル

状態コード:200

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Calendars/$entity",
    "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Calendars('AAMkAGI2TGuLAAA=')",
    "Id": "AAMkAGI2TGuLAAA=",
    "Name": "Calendar",
    "Color": "Auto",
    "ChangeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x0+w==",
    "CanShare":true,
    "CanViewPrivateItems":true,
    "CanEdit":true,
    "Owner":{
      "Name":"Fanny Downs",
      "Address":"fannyd@adatum.onmicrosoft.com"
    }
}

応答の種類

要求された予定表

予定表を作成する

予定表を作成する

最低限必要な範囲

以下のいずれか:

ショートカットを使用して既定の予定表グループに予定表を作成するか、グループの calendars エンドポイントに投稿することによって特定の予定表グループに予定表を作成します。../me/calendars

POST https://outlook.office.com/api/v2.0/me/calendars
POST https://outlook.office.com/api/v2.0/me/calendargroups/{calendar_group_id}/calendars
必須パラメーター 説明
URL パ ラ メ ー タ
calender_group_id 文字列 予定表グループ ID (特定のグループから予定表を取得している場合)。
本文パラメータ
名前 文字列 新しい予定表の名前。

要求のサンプル

POST https://outlook.office.com/api/v2.0/me/calendars
Content-Type: application/json

{
  "Name": "Social"
}

応答のサンプル

状態コード :201

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Calendars/$entity",
  "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Calendars('AAMkAGE4xLHAAA=')",
  "@odata.etag": "W/\"Jj9S59cHB0Wq4jXUzBgDvQAAFeN/SQ==\"",
  "Id": "AAMkAGE4xLHAAA=",
  "Name": "Social",
  "ChangeKey": "Jj9S59cHB0Wq4jXUzBgDvQAAFeN/SQ==",
  "CanShare":true,
  "CanViewPrivateItems":true,
  "CanEdit":true,
  "Owner":{
    "Name":"Fanny Downs",
    "Address":"fannyd@adatum.onmicrosoft.com"
  }
}

応答の種類

新しい予定表

予定表を更新する

予定表を更新する

最低限必要な範囲

以下のいずれか:

予定表の書き込み可能なプロパティを変更します。

PATCH https://outlook.office.com/api/v2.0/me/calendars/{calendar_id}
必須パラメーター 説明
URL パ ラ メ ー タ
calendar_id 文字列 予定表 ID。

要求のサンプル

PATCH https://outlook.office.com/api/v2.0/me/calendars/AAMkAGE4xLIAAA=
Content-Type: application/json

{
  "Name": "Social events"
}

応答のサンプル

状態コード:200

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Calendars/$entity",
  "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Calendars('AAMkAGE4xLIAAA=')",
  "@odata.etag": "W/\"Jj9S59cHB0Wq4jXUzBgDvQAAFeN/Sw==\"",
  "Id": "AAMkAGE4xLIAAA=",
  "Name": "Social events",
  "ChangeKey": "Jj9S59cHB0Wq4jXUzBgDvQAAFeN/Sw==",
  "CanShare":true,
  "CanViewPrivateItems":true,
  "CanEdit":true,
  "Owner":{
    "Name":"Fanny Downs",
    "Address":"fannyd@adatum.onmicrosoft.com"
  }
}

応答の種類

更新された予定表

予定表を削除する

予定表を削除する

最低限必要な範囲

以下のいずれか:

DELETE https://outlook.office.com/api/v2.0/me/calendars/{calendar_id}
必須パラメーター 説明
URL パ ラ メ ー タ
calendar_id 文字列 予定表 ID。

要求のサンプル

DELETE https://outlook.office.com/api/v2.0/me/calendars/AAMkAGE4xLIAAA=

応答のサンプル

Status code: 204

予定表グループを取得する

予定表グループのコレクションまたは予定表グループを取得できます。

注意

Outlook.com によってサポートされるのは、../me/calendars ショートカットでアクセス可能な既定の予定表グループのみです。

予定表グループのコレクションを取得する

最低限必要な範囲

以下のいずれか:

メールボックス内の予定表グループを取得します。

GET https://outlook.office.com/api/v2.0/me/calendargroups

注意

パラメーターのフィルタリング、並べ替え、およびページングについては、「OData クエリ パラメーター」を参照してください。

要求のサンプル

GET https://outlook.office.com/api/v2.0/me/calendargroups

応答のサンプル

状態コード:200

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/CalendarGroups",
    "value": [
        {
            "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/CalendarGroups('AAMkAGI2TGuKAAA=')",
            "Id": "AAMkAGI2TGuKAAA=",
            "Name": "My Calendars",
            "ClassId": "0006f0b7-0000-0000-c000-000000000046",
            "ChangeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x0+g=="
        },
        {
            "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/CalendarGroups('AAMkAGI2TGuMAAA=')",
            "Id": "AAMkAGI2TGuMAAA=",
            "Name": "Other Calendars",
            "ClassId": "0006f0b8-0000-0000-c000-000000000046",
            "ChangeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x0/A=="
        }
    ]
}

応答の種類

要求された予定表グループのコレクション。

予定表グループを取得する

最低限必要な範囲

以下のいずれか:

ID で予定表グループを取得します。

GET https://outlook.office.com/api/v2.0/me/calendargroups/{calendar_group_id}

注意

パラメーターのフィルタリング、並べ替え、およびページングについては、「OData クエリ パラメーター」を参照してください。

必須パラメーター 説明
URL パ ラ メ ー タ
calendar_group_id 文字列 予定表グループ ID。

要求のサンプル

GET https://outlook.office.com/api/v2.0/me/calendargroups/AAMkAGI2TGuKAAA=

応答のサンプル

状態コード:200

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/CalendarGroups/$entity",
    "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/CalendarGroups('AAMkAGI2TGuKAAA=')",
    "Id": "AAMkAGI2TGuKAAA=",
    "Name": "My Calendars",
    "ClassId": "0006f0b7-0000-0000-c000-000000000046",
    "ChangeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x0+g=="
}

応答の種類

要求された予定表グループ

予定表グループを作成する

予定表グループを作成します。Name は、予定表グループの唯一の書き込み可能なプロパティです。

注意

Outlook.com によってサポートされるのは、../me/calendars ショートカットでアクセス可能な既定の予定表グループのみです。 Outlook.com で別の予定表グループを作成することはできません。

予定表グループを作成する

最低限必要な範囲

以下のいずれか:

POST https://outlook.office.com/api/v2.0/me/calendargroups
必須パラメーター 説明
URL パラメータ
本文パラメータ
名前 文字列 予定表グループの名前。

要求のサンプル

POST https://outlook.office.com/api/v2.0/me/calendargroups
Content-Type: application/json

{
  "Name": "Birthdays"
}

応答のサンプル

状態コード :201

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/CalendarGroups/$entity",
  "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/CalendarGroups('AAMkAGE0M4xLGAAA=')",
  "@odata.etag": "W/\"Jj9S59cHB0Wq4jXUzBgDvQAAFeN/Rw==\"",
  "Id": "AAMkAGE0M4xLGAAA=",
  "Name": "Birthdays",
  "ChangeKey": "Jj9S59cHB0Wq4jXUzBgDvQAAFeN/Rw==",
  "ClassId": "4d969bba-8942-42a0-ae33-c7d4410d1e11"
}

応答の種類

新しい予定表グループ

予定表グループを更新する

予定表グループを更新する

最低限必要な範囲

以下のいずれか:

予定表グループの名前を変更します。Name は、唯一の書き込み可能な予定表グループのプロパティです。

PATCH https://outlook.office.com/api/v2.0/me/calendargroups/{calendar_group_id}
必須パラメーター 説明
URL パ ラ メ ー タ
calendar_group_id 文字列 予定表グループ ID。
本文パラメータ
名前 文字列 更新された予定表グループの名前。

要求のサンプル

PATCH https://outlook.office.com/api/v2.0/me/calendargroups/AAMkAGE0M4xLGAAA=
Content-Type: application/json

{
  "Name": "Holidays"
}

応答のサンプル

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/CalendarGroups/$entity",
  "@odata.id": "https://https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/CalendarGroups('AAMkAGE0MGM4xLGAAA=')",
  "@odata.etag": "W/\"Jj9S59cHB0Wq4jXUzBgDvQAAFeN/SA==\"",
  "Id": "AAMkAGE0MGM4xLGAAA=",
  "Name": "Holidays",
  "ChangeKey": "Jj9S59cHB0Wq4jXUzBgDvQAAFeN/SA==",
  "ClassId": "4d969bba-8942-42a0-ae33-c7d4410d1e11"
}

応答の種類

更新された予定表グループ

予定表グループを削除する

注意

Outlook.com によってサポートされるのは、../me/calendars ショートカットでアクセス可能な既定の予定表グループのみです。 この予定表グループは削除しないでください。

予定表グループを削除する

最低限必要な範囲

以下のいずれか:

DELETE https://outlook.office.com/api/v2.0/me/calendargroups/{calendar_group_id}
必須パラメーター 説明
URL パ ラ メ ー タ
calendar_group_id 文字列 予定表グループ ID。

要求のサンプル

DELETE https://outlook.office.com/api/v2.0/me/calendargroups/AAMkAGE0MGM4xLGAAA=

応答のサンプル

Status code: 204

次の手順

アプリケーション開発を開始する準備ができている方にも、単に詳しい情報を必要としている方にも、最適なコンテンツをご用意しています。

Office 365 プラットフォームの使い方の詳細については、次のリンク先をご覧ください。