次の方法で共有


Outlook タスク REST API リファレンス(ベータ版)

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

注意

このドキュメントでは、プレビュー段階でのタスクの添付ファイルの参照を行うための API について説明します。プレビュー機能は、最終版までに変更される場合があり、それらの機能を使用するコードが動作しなくなる場合もあります。このため、一般に、運用コードでは運用バージョンの API のみを使用してください。入手可能な場合、現時点ではバージョン 2.0 が優先バージョンです。

Outlook タスク REST API では、Office 365 での Azure Active Directory でセキュリティ保護された ユーザーのタスクを作成、読み取り、同期、更新、および削除することができます。 このユーザーのアカウントは、Office 365 アカウントまたは Microsoft アカウント (Hotmail.com、Live.com、MSN.com、Outlook.com、または Passport.com) にすることができます。

注意

リファレンスをわかりやすくするため、この記事の残りの部分では、これらの Microsoft アカウント ドメインを含めるために Outlook.com を使用します。

ベータ版の API が不要な場合 左の目次で、Office 365 REST API リファレンスセクションに移動し、使用したいバージョンを選択します。

概要

Outlook の タスク を使用して作業アイテムをトラックすることができます。 トラックの開始日、期限、実際の終了日、トラックの進行状況や状態、トラックを定期的に行うか、通知を必要とするかをメモすることができます。

タスクは、タスク フォルダーで構成されます。タスク フォルダーは、タスク グループで構成されます。各メールボックスには、既定の作業フォルダー (Name プロパティ Tasks) と既定のタスク グループ (Name プロパティは My Tasks です) があります。

タスク REST API の使用

認証

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

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

API のバージョン

この API は、プレビューから一般提供 (GA) の状態にレベル上げされています。Outlook REST API の v2.0 とベータのバージョンでサポートされます。

対象ユーザー

タスク API 要求は、常にサインインしているユーザーの代理で実行されます。

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

URL パラメーター

この記事の例では、REST 要求 URL のパラメーターとして次のプレース ホルダーを使用します。

パラメーター 説明
URLパラメーター
attachment_id 文字列 ユーザーのメールボックス内で一意である、添付ファイルの数値 ID。
folder_id 文字列 既定の Tasks の既知のフォルダー名、またはユーザーのメールボックス内で一意である、タスク フォルダーの数値 ID。
group_id 文字列 ユーザーのメールボックス内で一意である、タスク グループの数値 ID。
task_id 文字列 ユーザーのメールボックス内で一意である、数値タスク ID。

StartDateTime および DueDateTime プロパティの指定

タスクを作成する場合:

  • StartDateTime および DueDateTime はオプションですが、StartDateTime を設定する場合は、DueDateTime を同じ日またはそれ以降の日付に設定する必要があります。
  • StartDateTime のみを設定した場合、DueDateTime は自動的に StartDateTime と同じ値に設定されます。
  • DueDateTimenull に設定すると、StartDateTime も自動的に null に設定されます。

タスクの作成または更新時に StartDateTime または DueDateTime を設定する場合:

  • 日付とタイム ゾーンの情報を指定します。
  • POST (または PATCH) メソッドでは、特定の時間を指定しても常に無視され、指定されたタイム ゾーンの午前 0 時が前提となっているため、これらのプロパティでは特定の時刻を指定しないでください。
  • 既定では、POST (または PATCH) メソッドにより、この値は UTC に変換され、応答も UTC で返されます。

たとえば、StartDateTime で 4 月 26 日の東部標準時 (EST) を指定した場合:

  "StartDateTime": {
      "DateTime": "2016-04-26T09:00:00",
      "TimeZone": "Eastern Standard Time"
  }

POST (または PATCH) は時間部分を無視し、4 月 26 の午前 0 時 (EST) を UTC に変換し、応答でその値を UTC で返します。

  "StartDateTime": {
    "DateTime": "2016-04-26T04:00:00.0000000",
    "TimeZone": "UTC"
  }

Prefer: outlook.timezone ヘッダーを使用して、応答内のすべての日付関連プロパティをUTC以外のタイムゾーンで表すことができます。

タスクリソースの日付関連プロパティには次が含まれます。

  • CompletedDateTime
  • CreatedDateTime
  • DueDateTime
  • LastModifiedDateTime
  • ReminderDateTime
  • StartDateTime

既定では、POST、GET、PATCH、および Complete 操作は、REST 応答の日付関連プロパティを UTC で返します。Prefer: outlook.timezone ヘッダーを使用して、応答内のすべての日付関連プロパティを UTC 以外のタイム ゾーンで表すことができます。次の例では、対応する応答の日付関連プロパティが EST で返されています。

Prefer: outlook.timezone="Eastern Standard Time"

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

タスクを作成する

最低限必要なスコープ

タスクを作成します。2 つの主なシナリオがあります。

ユーザーのメールボックスの既定のタスク グループ (My Tasks) および既定のタスク フォルダー (Tasks) にタスクを作成することができます。この場合、タスク グループまたはタスク フォルダーを指定する必要はありません。

POST https://outlook.office.com/api/beta/me/tasks

次のように、特定のタスクフォルダーにタスクを作成することもできます。

POST https://outlook.office.com/api/beta/me/taskfolders('{folder_id}')/tasks

要求本文で、作成するタスクの JSON 表記を指定します。

StartDateTime および DueDateTime の設定については、詳細を参照してください

応答内のすべての日付関連プロパティに特定のタイム ゾーンを指定する方法についてご確認ください

応答

成功状態コード:201 Created

応答本文:作成されたタスク

要求のサンプル

最初の例では、指定したタスク フォルダーにタスクを作成し、要求本文の StartDateTime および DueDateTime を太平洋標準時 (PST) で表記します。

POST https://outlook.office.com/api/beta/me/taskfolders('AAMkADIyAAAhrbPXAAA=')/tasks
Content-Type: application/json

{
  "Subject": "Shop for dinner",
  "StartDateTime": {
      "DateTime": "2016-04-23T18:00:00",
      "TimeZone": "Pacific Standard Time"
  },
  "DueDateTime":  {
      "DateTime": "2016-04-25T13:00:00",
      "TimeZone": "Pacific Standard Time"
  }
}

応答のサンプル

POST メソッドは、要求本文の時間部分を無視し、時間が常に、指定されたタイム ゾーン (PST) の午前 0 時であると想定します。既定では、POST メソッドはすべての日付関連プロパティを変換し、応答ではそれらを UTC で表示します。

Status code: 201 Created

{
  "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/TaskFolders('AAMkADIyAAAhrbPXAAA%3D')/Tasks/$entity",
  "@odata.id": "https://outlook.office.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/Tasks('AAMkADIyAAAhrb_PAAA=')",
  "@odata.etag": "W/\"hmM7Eb/jgEec8l3+gkJEawAAIbAOlw==\"",
  "Id": "AAMkADIyAAAhrb_PAAA=",
  "CreatedDateTime": "2016-04-22T05:44:01.2012012Z",
  "LastModifiedDateTime": "2016-04-22T05:44:02.9980882Z",
  "ChangeKey": "1/KC9Vmu40G3DwB6Lgs7MAAAIOJMxw==",
  "Categories": [ ],
  "AssignedTo": null,
  "Body": {
    "ContentType": "Text",
    "Content": ""
  },
  "CompletedDateTime": null,
  "DueDateTime": {
    "DateTime": "2016-04-25T07:00:00.0000000",
    "TimeZone": "UTC"
  },
  "HasAttachments":false,
  "Importance": "Normal",
  "IsReminderOn": false,
  "Owner": "Administrator",
  "ParentFolderId": "AQMkADA1MTkAAAAIBEgAAAA==",
  "Recurrence": null,
  "ReminderDateTime": null,
  "Sensitivity": "Normal",
  "StartDateTime": {
    "DateTime": "2016-04-23T07:00:00.0000000",
    "TimeZone": "UTC"
  },
  "Status": "NotStarted",
  "Subject": "Shop for dinner"
}

要求のサンプル

ヘッダーの動作のしくみを示すために、次の例ではタスクを作成し、StartDateTimeDueDateTime を東部標準時 (EST) で表し、Prefer ヘッダーを太平洋標準時 (PST) で表します。Prefer: outlook.timezone

POST https://outlook.office.com/api/beta/me/tasks HTTP/1.1

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

{
  "Subject": "Shop for children's weekend",
  "StartDateTime": {
      "DateTime": "2016-05-03T09:00:00",
      "TimeZone": "Eastern Standard Time"
  },
  "DueDateTime":  {
      "DateTime": "2016-05-05T16:00:00",
      "TimeZone": "Eastern Standard Time"
  }
}

応答のサンプル

先ほどの例と同じように、POST メソッドは、要求本文の StartDateTime および DueDateTime の時間部分を無視し、時間が常に、指定されたタイム ゾーン (EST) の午前 0 時であると想定します。

ヘッダーでは PST が指定されているため、POST メソッドは応答内のすべての日付関連プロパティを PST で表記します。特に、StartDateTime および DueDateTime プロパティでは、POST メソッドは EST の午前 0 時を PST に変換し、応答ではそれらを PST で返します。Prefer

Status code: 201 Created

{
    "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Tasks/$entity",
    "@odata.id": "https://outlook.office.com/api/beta/Users('86b6ceaf-57f7-4278-97c4-4da0a97f6cdb@70559e59-b378-49ea-8e53-07a3a3d27f5b')/Tasks('AAMkADA1MHgwAAA=')",
    "@odata.etag": "W/\"1/KC9Vmu40G3DwB6Lgs7MAAAIW9XXA==\"",
    "Id": "AAMkADA1MHgwAAA=",
    "CreatedDateTime": "2016-04-22T15:19:18.9526004-07:00",
    "LastModifiedDateTime": "2016-04-22T15:19:19.015101-07:00",
    "ChangeKey": "1/KC9Vmu40G3DwB6Lgs7MAAAIW9XXA==",
    "Categories": [
    ],
    "AssignedTo": null,
    "Body": {
        "ContentType": "Text",
        "Content": ""
    },
    "CompletedDateTime": null,
    "DueDateTime": {
        "DateTime": "2016-05-04T21:00:00.0000000",
        "TimeZone": "Pacific Standard Time"
    },
    "HasAttachments":false,
    "Importance": "Normal",
    "IsReminderOn": false,
    "Owner": "Administrator",
    "ParentFolderId": "AQMkADA1MTEgAAAA==",
    "Recurrence": null,
    "ReminderDateTime": null,
    "Sensitivity": "Normal",
    "StartDateTime": {
        "DateTime": "2016-05-02T21:00:00.0000000",
        "TimeZone": "Pacific Standard Time"
    },
    "Status": "NotStarted",
    "Subject": "Shop for children's weekend"
}

タスクの取得

すべてのタスクの取得

最低限必要なスコープ

複数のタスクを取得します。

サインインしているユーザーのメールボックス内のすべてのタスクを取得できます。

GET https://outlook.office.com/api/beta/me/tasks

または、特定のフォルダー内のすべてのタスクを取得できます。

GET https://outlook.office.com/api/beta/me/taskfolders('{folder_id}')/tasks

1 つ以上のタスク グループがあり、特定のタスク グループ内のすべてのタスクを取得する場合は、最初にタスク グループ内のすべてのタスク フォルダーを取得してから、これらのタスク フォルダー内のタスクを取得します。

応答

成功状態コード:200 OK

応答本文:タスク コレクション

既定では、応答の日付関連プロパティは UTC で表されます。応答内のすべての日付関連プロパティに特定のタイム ゾーンを指定する方法についてご確認ください

要求のサンプル

次の例では、ユーザーのメールボックス内のすべてのタスクを取得します。

GET https://outlook.office.com/api/beta/me/tasks

応答のサンプル

Status code: 200 OK

{
  "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Tasks",
  "value": [
    {
      "@odata.id": "https://outlook.office.com/api/beta/Users('86b6ceaf-57f7-4278-97c4-4da0a97f6cdb@70559e59-b378-49ea-8e53-07a3a3d27f5b')/Tasks('AAMkADA1MTrfAAA=')",
      "@odata.etag": "W/\"1/KC9Vmu40G3DwB6Lgs7MAAAIOJMxw==\"",
      "Id": "AAMkADA1MTrfAAA=",
      "CreatedDateTime": "2016-04-22T05:44:01.2012012Z",
      "LastModifiedDateTime": "2016-04-22T05:44:02.9980882Z",
      "ChangeKey": "1/KC9Vmu40G3DwB6Lgs7MAAAIOJMxw==",
      "Categories": [ ],
      "AssignedTo": null,
      "Body": {
        "ContentType": "Text",
        "Content": ""
      },
      "CompletedDateTime": null,
      "DueDateTime": {
        "DateTime": "2016-04-25T07:00:00.0000000",
        "TimeZone": "UTC"
      },
      "HasAttachments":false,
      "Importance": "Normal",
      "IsReminderOn": false,
      "Owner": "Administrator",
      "ParentFolderId": "AQMkADA1MTBEgAAAA==",
      "Recurrence": null,
      "ReminderDateTime": null,
      "Sensitivity": "Normal",
      "StartDateTime": {
        "DateTime": "2016-04-23T07:00:00.0000000",
        "TimeZone": "UTC"
      },
      "Status": "NotStarted",
      "Subject": "Shop for dinner"
    },
    {
      "@odata.id": "https://outlook.office.com/api/beta/Users('86b6ceaf-57f7-4278-97c4-4da0a97f6cdb@70559e59-b378-49ea-8e53-07a3a3d27f5b')/Tasks('AAMkADA1MTrgAAA=')",
      "@odata.etag": "W/\"1/KC9Vmu40G3DwB6Lgs7MAAAIOJMyQ==\"",
      "Id": "AAMkADA1MTrgAAA=",
      "CreatedDateTime": "2016-04-22T06:03:35.9279794Z",
      "LastModifiedDateTime": "2016-04-22T06:03:35.9436052Z",
      "ChangeKey": "1/KC9Vmu40G3DwB6Lgs7MAAAIOJMyQ==",
      "Categories": [ ],
      "AssignedTo": null,
      "Body": {
        "ContentType": "Text",
        "Content": ""
      },
      "CompletedDateTime": null,
      "DueDateTime": {
        "DateTime": "2016-04-27T04:00:00.0000000",
        "TimeZone": "UTC"
      },
      "HasAttachments":false,
      "Importance": "Normal",
      "IsReminderOn": false,
      "Owner": "Administrator",
      "ParentFolderId": "AQMkADA1MTBEgAAAA==",
      "Recurrence": null,
      "ReminderDateTime": null,
      "Sensitivity": "Normal",
      "StartDateTime": {
        "DateTime": "2016-04-26T04:00:00.0000000",
        "TimeZone": "UTC"
      },
      "Status": "NotStarted",
      "Subject": "Shop for dinner"
    }
  ]
}

タスクの取得

最低限必要なスコープ

特定のタスクを取得します。

GET https://outlook.office.com/api/beta/me/tasks('{task_id}')

応答

成功状態コード:200 OK

応答本文:要求されたタスク

既定では、応答の日付関連プロパティは UTC で表されます。応答内のすべての日付関連プロパティに特定のタイム ゾーンを指定する方法についてご確認ください

要求のサンプル

GET https://outlook.office.com/api/beta/me/tasks('AAMkADA1MTrgAAA=') 

応答のサンプル

Status code: 200 OK

{
  "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Tasks/$entity",
  "@odata.id": "https://outlook.office.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/Tasks('AAMkADA1MTrgAAA=')",
  "@odata.etag": "W/\"hmM7Eb/jgEec8l3+gkJEawAAIa/+kw==\"",
  "Id": "AAMkADA1MTrgAAA=",
  "CreatedDateTime": "2016-04-22T06:03:35.9279794Z",
  "LastModifiedDateTime": "2016-04-22T06:03:35.9436052Z",
  "ChangeKey": "1/KC9Vmu40G3DwB6Lgs7MAAAIOJMyQ==",
  "Categories": [ ],
  "AssignedTo": null,
  "Body": {
    "ContentType": "Text",
    "Content": ""
  },
  "CompletedDateTime": null,
  "DueDateTime": {
    "DateTime": "2016-04-27T04:00:00.0000000",
    "TimeZone": "UTC"
  },
  "HasAttachments":false,
  "Importance": "Normal",
  "IsReminderOn": false,
  "Owner": "Administrator",
  "ParentFolderId": "AQMkADA1MTBEgAAAA==",
  "Recurrence": null,
  "ReminderDateTime": null,
  "Sensitivity": "Normal",
  "StartDateTime": {
    "DateTime": "2016-04-26T04:00:00.0000000",
    "TimeZone": "UTC"
  },
  "Status": "NotStarted",
  "Subject": "Shop for dinner"
}

タスクの更新

最低限必要なスコープ

タスクの書き込み可能なプロパティを変更します。

PATCH https://outlook.office.com/api/beta/me/tasks/{task_id}

要求本文で、タスクで更新する書き込み可能なプロパティの JSON 表記を指定します。

StartDateTime および DueDateTime の設定については、詳細を参照してください

CompletedDateTime プロパティは、Complete アクションによって、または明示的に PATCH 操作によって設定することができます。PATCH を使用して CompletedDateTime を設定する場合は、StatusCompleted にしてください。

既定では、応答の日付関連プロパティは UTC で表されます。応答内のすべての日付関連プロパティにカスタムのタイム ゾーンを指定する方法についてご確認ください

応答

成功状態コード:200 OK

応答本文:更新されたタスク

要求のサンプル

次の例では、DueDateTime を変更し、Prefer: outlook.timezone ヘッダーを使用して、東部標準時 (EST) で表記する日付関連プロパティを指定します。

PATCH https://outlook.office.com/api/beta/me/tasks('AAMkADA1MTHgwAAA=')

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

{
  "DueDateTime":  {
      "DateTime": "2016-05-06T16:00:00",
      "TimeZone": "Eastern Standard Time"
  }
}

応答のサンプル

Status code: 200 OK

{
  "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Tasks/$entity",
  "@odata.id": "https://outlook.office.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/Tasks('AAMkADA1MTHgwAAA=')",
  "@odata.etag": "W/\"hmM7Eb/jgEec8l3+gkJEawAAIa/+lg==\"",
  "Id": "AAMkADA1MTHgwAAA=",
    "CreatedDateTime": "2016-04-22T18:19:18.9526004-04:00",
    "LastModifiedDateTime": "2016-04-22T18:38:20.5541528-04:00",
    "ChangeKey": "1/KC9Vmu40G3DwB6Lgs7MAAAIW9XXg==",
    "Categories": [
    ],
    "AssignedTo": null,
    "Body": {
        "ContentType": "Text",
        "Content": ""
    },
    "CompletedDateTime": null,
    "DueDateTime": {
        "DateTime": "2016-05-06T00:00:00.0000000",
        "TimeZone": "Eastern Standard Time"
    },
    "HasAttachments":false,
    "Importance": "Normal",
    "IsReminderOn": false,
    "Owner": "Administrator",
    "ParentFolderId": "AQMkADA1MTIBEgAAAA==",
    "Recurrence": null,
    "ReminderDateTime": null,
    "Sensitivity": "Normal",
    "StartDateTime": {
        "DateTime": "2016-05-03T00:00:00.0000000",
        "TimeZone": "Eastern Standard Time"
    },
    "Status": "NotStarted",
    "Subject": "Shop for children's weekend"
}

タスクの削除

最低限必要なスコープ

ユーザーのメールボックス内の指定されたタスクを削除します。

DELETE https://outlook.office.com/api/beta/me/tasks('{task_id}')

応答

成功状態コード:204 No Content

応答本文:なし

要求のサンプル

DELETE https://outlook.office365.com/api/beta/me/tasks('AAMkADIyAAAhrb_QAAA=')

応答のサンプル

Status code: 204 No Content

タスクの完了

最低限必要なスコープ

タスクを完了し、CompletedDateTime プロパティを現在の日付に設定し、Status プロパティを Completed に設定します。

POST https://outlook.office.com/api/beta/me/tasks('{task_id}')/complete

注意

CompletedDateTime は、タスクが完了する日付を表します。CompletedDateTime の時間部分は、既定で UTC の午前 0 時に設定されます。

アプリを使用して、Prefer 要求ヘッダーでカスタム タイム ゾーンを指定できます。次の例では、CompletedDateTime を太平洋標準時 (PST) タイム ゾーンに設定します。

Prefer: outlook.timezone="Pacific Standard Time"

この要求ヘッダーでは、応答内のすべての日付関連プロパティを、指定されたタイム ゾーンに設定します。

応答

成功状態コード:200 OK

応答本文:タスク コレクション内の完了したタスク。定期的なアイテムでタスクを完了する場合、タスク コレクションには系列にある完了したタスクと、系列にある次のタスクが含まれます。

要求のサンプル

次の例では、指定したタスクを終了に設定します。Prefer: outlook.timezone ヘッダーで太平洋標準時 (PST) を指定しているため、応答内の CompletedDateTime およびその他の日付関連プロパティは、PST で表されます。

POST https://outlook.office.com/api/beta/me/tasks('AAMkADA1MT15rfAAA=')/complete

Prefer: outlook.timezone="Pacific Standard Time"

応答のサンプル

Status code: 200 OK

{
  "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Tasks",
  "value": [
    {
      "@odata.id": "https://outlook.office365.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/Tasks('AAMkADA1MT15rfAAA=')",
      "@odata.etag": "W/\"hmM7Eb/jgEec8l3+gkJEawAAIa/+lw==\"",
      "Id": "AAMkADA1MT15rfAAA=",
      "CreatedDateTime": "2016-04-21T22:44:01.2012012-07:00",
      "LastModifiedDateTime": "2016-04-22T19:28:38.5300447-07:00",
      "ChangeKey": "1/KC9Vmu40G3DwB6Lgs7MAAAIW9XYQ==",
      "Categories": [
      ],
      "AssignedTo": null,
      "Body": {
          "ContentType": "Text",
          "Content": ""
      },
      "CompletedDateTime": {
          "DateTime": "2016-04-22T00:00:00.0000000",
          "TimeZone": "Pacific Standard Time"
      },
      "DueDateTime": {
          "DateTime": "2016-04-25T00:00:00.0000000",
          "TimeZone": "Pacific Standard Time"
      },
      "HasAttachments":false,
      "Importance": "Normal",
      "IsReminderOn": false,
      "Owner": "Administrator",
      "ParentFolderId": "AQMkADA1MTIBEgAAAA==",
      "Recurrence": null,
      "ReminderDateTime": null,
      "Sensitivity": "Normal",
      "StartDateTime": {
          "DateTime": "2016-04-21T00:00:00.0000000",
          "TimeZone": "Pacific Standard Time"
      },
      "Status": "Completed",
      "Subject": "Shop for dinner"
    }
  ]
}

タスクまたはタスク フォルダーの同期

最低限必要なスコープ

ユーザーのメールボックス内のタスク フォルダーのタスクを同期することができます。タスクの同期はフォルダー単位の操作であり、たとえば、既定のタスク フォルダー Tasks 内のすべてのタスクを同期できます。フォルダー階層内のタスクを同期するには、各タスク フォルダーを個別に同期する必要があります。タスクまたはタスク フォルダーを同期するプロセスも同様であり、通常はそれぞれが GET 呼び出しである 2 つ以上の同期要求のラウンドが必要です。

フォルダーのタスクを取得する、またはメールボックスのタスク フォルダーを取得する場合とほぼ同じ方法で GET メソッドを使用します。ただし、特定の要求ヘッダーおよび必要に応じて deltaToken または skipToken を含める必要があります。

要求ヘッダー

  • 以前の同期要求から返される skipToken を含む同期要求を除き、すべての同期要求で Prefer: odata.track-changes ヘッダーを指定する必要があります。最初の応答で Preference-Applied: odata.track-changes ヘッダーを探して、リソースが同期をサポートすることを確認してから、先に進みます(タスクを同期する場合、skipToken に関する詳細については、タスクの 2 番目の応答データのサンプルを参照し、タスク フォルダーを同期する場合は、タスク フォルダーの 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/beta/me/TaskFolders('{folder_id}')/Tasks

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

GET https://outlook.office.com/api/beta/me/TaskFolders('{folder_id}')/Tasks/?$deltatoken={delta_token}

同じラウンドの 3 番目以降の要求: @odata.deltaLink ヘッダーと deltaToken を再び含む応答を受け取ったら停止します。

GET https://outlook.office.com/api/beta/me/TaskFolders('{folder_id}')/Tasks/?$skiptoken={skip_token}

メールボックスのタスクフォルダーを同期するには

最初の要求:

GET https://outlook.office.com/api/beta/me/TaskFolders

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

GET https://outlook.office.com/api/beta/me/TaskFolders/?$deltatoken={delta_token}

同じラウンドの 3 番目以降の要求: @odata.deltaLink ヘッダーと deltaToken を再び含む応答を受け取ったら停止します。

GET https://outlook.office.com/api/beta/me/TaskFolders/?$skiptoken={skip_token}

パラメーター

パラメーター 説明
ヘッダー パラメーター
優先 odata.track-changes 要求が同期要求であることを示します。ラウンドの最初の 2 つの GET 要求に対して必須です。
優先 odata.maxpagesize 各応答で返されるメッセージの数を設定します。省略可能。
URLパラメーター
deltaToken 文字列 以前の同期の応答で、@odata.deltaLink の値の一部として返される deltaToken 文字列。
skipToken 文字列 以前の同期の応答で、@odata.nextLink の値の一部として返される skipToken 文字列。

注意

  • 最初の要求で Prefer: odata.track-changes を指定する場合、応答が同期をサポートしていれば、応答のヘッダーには Preference-applied: odata.track-changes が含まれます。
  • サポートされていないリソースを同期しようするか、またはこれが最初の同期要求でない場合は、応答のヘッダーに Preference-applied は表示されません。
  • 応答時間を向上させるため、$select クエリ パラメーターを使用して、自分のシナリオに役立つプロパティのみを取得します。
  • 使用することはできません、$filter$orderby$search、および $topパラメーターのクエリを実行します。

応答本文

  • タスクを同期する場合: コレクション内の要求された Task オブジェクト。

  • タスク フォルダーを同期する場合: コレクション内の要求された TaskFolder オブジェクト。

オブジェクトの数は、Prefer: odata.maxpagesize 要求ヘッダーで設定された値によって決まります。

2 つの例を次に示します。

それぞれの例は、最初と 2 番目の同期要求を示しています。

  • 各要求は Prefer: odata.maxpagesize=1 を指定して、1 つのオブジェクトだけを返します (タスクまたはタスク フォルダーでそれぞれ 1つ)。
  • 最初の応答は、1 つの同期イベント、deltaLink および deltaToken を返します。
  • 2 番目の要求では、その deltatoken を使用します。2 番目の応答は、1 つの同期イベント、nextLink および skipToken を返します。

同期プロセスを反復処理し、次の GET 呼び出しで前の同期要求から返された skipToken を使用し、以下のように deltaLink および deltaToken を含む、同期応答を受け取るまで続けます。

"@odata.deltaLink": “https://outlook.office.com/api/beta/me/TaskFolders('AQMkAGMw80AAAIBEgAAAA==')/Tasks/?%24deltaToken=294a8f04cc0345c5ae093d484629e186”

このような場合、このラウンドの同期は完了しています。次のラウンドの同期のために deltaToken を保存します。

最初の要求のサンプル (タスクの同期)

    GET https://outlook.office.com/api/beta/me/TaskFolders('AQMkAGMwAAAIBEgAAAA==')/Tasks HTTP/1.1
    Prefer: odata.maxpagesize=1
  Prefer: odata.track-changes

最初の応答データのサンプル (タスクの同期)

HTTP/1.1 200 OK
Preference-Applied: odata.track-changes

{
  "@odata.context": "https://outlook.office.com/api/beta/$metadata#me/TaskFolders('AQMkAGMwAAAIBEgAAAA%3D%3D')/Tasks",
  "value": [
    {
      "@odata.id": "https://outlook.office.com/api/beta/Users('47ec4680-f443-4f9c-a3e5-f7660f0aceae@b4ffe6c0-e717-4104-acd1-e9dfe38ff5f9')/Tasks('AAMkAGMwQsKVevNAAAG1VNmAAA=')",
      "@odata.etag": "W/\"3JfzyLwJe0mPNcULClXrzQAABtYBDw==\"",
      "Id": "AAMkAGMwQsKVevNAAAG1VNmAAA=",
      "CreatedDateTime": "2016-02-29T20:51:25.2226052Z",
      "LastModifiedDateTime": "2016-02-29T20:51:25.2538576Z",
      "ChangeKey": "3JfzyLwJe0mPNcULClXrzQAABtYBDw==",
      "Categories": [ ],
      "AssignedTo": null,
      "Body": {
        "ContentType": "Text",
        "Content": ""
      },
      "CompletedDateTime": null,
      "DueDateTime": null,
      "HasAttachments":false,
      "Importance": "Normal",
      "IsReminderOn": false,
      "Owner": "Administrator",
      "ParentFolderId": "AQMkAGMwAAAIBEgAAAA==",
      "Recurrence": null,
      "ReminderDateTime": null,
      "Sensitivity": "Normal",
      "StartDateTime": null,
      "Status": "NotStarted",
      "Subject": "another task"
    }
  ],
  "@odata.deltaLink": "https://outlook.office.com/api/beta/me/TaskFolders('AQMkAGMwAAAIBEgAAAA==')/Tasks/?%24deltatoken=175e2e04482e431ea96e89145c212f8c"
}

2 番目の要求のサンプル (タスクの同期)

    GET https://outlook.office.com/api/beta/me/TaskFolders('AQMkAGMwAAAIBEgAAAA==')/Tasks/?%24deltatoken=175e2e04482e431ea96e89145c212f8c HTTP/1.1
    Prefer: odata.maxpagesize=1
  Prefer: odata.track-changes

2 番目の応答データのサンプル (タスクの同期)

HTTP/1.1 200 OK

{
  "@odata.context": "https://outlook.office.com/api/beta/$metadata#me/TaskFolders('AQMkAGMwAAAIBEgAAAA%3D%3D')/Tasks/$delta",
  "value": [
    {
      "@odata.id": "https://outlook.office.com/api/beta/Users('47ec4680-f443-4f9c-a3e5-f7660f0aceae@b4ffe6c0-e717-4104-acd1-e9dfe38ff5f9')/Tasks('AAMkAGMwQsKVevNAAAG1VNlAAA=')",
      "@odata.etag": "W/\"3JfzyLwJe0mPNcULClXrzQAABtYBDQ==\"",
      "Id": "AAMkAGMwQsKVevNAAAG1VNlAAA=",
      "CreatedDateTime": "2016-02-29T20:51:02.5955351Z",
      "LastModifiedDateTime": "2016-02-29T20:51:03.9703679Z",
      "ChangeKey": "3JfzyLwJe0mPNcULClXrzQAABtYBDQ==",
      "Categories": [ ],
      "AssignedTo": null,
      "Body": {
        "ContentType": "Text",
        "Content": ""
      },
      "CompletedDateTime": null,
      "DueDateTimeTime": null,
      "HasAttachments":false,
      "Importance": "Normal",
      "IsReminderOn": false,
      "Owner": "Administrator",
      "ParentFolderId": "AQMkAGMwAAAIBEgAAAA==",
      "Recurrence": null,
      "ReminderDateTime": null,
      "Sensitivity": "Normal",
      "StartDateTime": null,
      "Status": "NotStarted",
      "Subject": "another task"
    }
  ],
  "@odata.nextLink": "https://outlook.office.com/api/beta/me/TaskFolders('AQMkAGMw80AAAIBEgAAAA==')/Tasks/?%24skipToken=0fbce2031e844a2f9d13d8bee5ebe2c6"
}

タスクの同期を続行し、次の GET 呼び出しで前の応答の @odata.nextLink で返された skiptoken を使用し、最終的な応答に @odata.deltaLink および deltaToken が含まれるまで続けます。次のラウンドの同期のために deltaToken を保存します。

最初の要求のサンプル (タスク フォルダーの同期)

    GET https://outlook.office.com/api/beta/me/TaskFolders HTTP/1.1
    Prefer: odata.maxpagesize=1
    Prefer: odata.track-changes

最初の応答データのサンプル (タスク フォルダーの同期)

HTTP/1.1 200 OK
Preference-Applied: odata.track-changes

{
    "@odata.context": "https://outlook.office.com/api/beta/$metadata#me/TaskFolders",
    "value": [
        {
            "@odata.id": "https://outlook.office.com/api/beta/Users('5bcd7334-a6c5-4f95-a370-319e077dfe10@e288a0d0-ab74-431b-9699-a3721aabb08f')/TaskFolders('AAMkAGJiAAAAAAESAAA=')",
            "Id": "AAMkAGJiAAAAAAESAAA=",
            "ChangeKey": "PG2a661l00Cy9qH3YxmDfwAAAAAAPA==",
            "Name": "Tasks",
            "IsDefaultFolder":true,
            "ParentGroupKey": "0006f0b7-0000-0000-c000-000000000046"
        }
    ],
    "@odata.deltaLink": "https://outlook.office.com/api/beta/me/TaskFolders/?%24deltatoken=OyZKBDxtmuutZdNAsvah92MZg38AAAAAZwkBAAAA"
}

2 番目の要求のサンプル (タスク フォルダーの同期)

    GET https://outlook.office.com/api/beta/me/TaskFolders/?%24deltatoken=OyZKBDxtmuutZdNAsvah92MZg38AAAAAZwkBAAAA HTTP/1.1
    Prefer: odata.maxpagesize=1
    Prefer: odata.track-changes

2 番目の応答データのサンプル (タスク フォルダーの同期)

HTTP/1.1 200 OK

{
    "@odata.context": "https://outlook.office.com/api/beta/$metadata#me/TaskFolders/$delta",
    "value": [
        {
            "@odata.id": "https://outlook.office.com/api/beta/Users('5bcd7334-a6c5-4f95-a370-319e077dfe10@e288a0d0-ab74-431b-9699-a3721aabb08f')/TaskFolders('AAMkAGI5AAAunDbWAAA=')",
            "Id": "AAMkAGI5AAAunDbWAAA=",
            "ChangeKey": "PmebZ1wYAUaTmrKkvU9LIQAALqEkaw==",
            "Name": "Bingo",
            "IsDefaultFolder":false,
            "ParentGroupKey": "db0823f2-93bd-4db6-8038-98bbc5f39a45"
        }
    ],
    "@odata.nextLink": "https://outlook.office.com/api/beta/me/TaskFolders/?%24skipToken=x_zCAz5nm2dcGAFGk5qypL1PSyEAAC6cRncCAAAA"
}

同期を続行し、次の GET 呼び出しで前の応答の @odata.nextLink で返された skiptoken を使用し、最終的な応答に @odata.deltaLink および deltaToken が含まれるまで続けます。この例では、3 番目の要求で deltaToken が返され、同期はこのラウンドで完了します。

3 番目の要求のサンプル (タスク フォルダーの同期)

    GET https://outlook.office.com/api/beta/me/TaskFolders/?%24skipToken=x_zCAz5nm2dcGAFGk5qypL1PSyEAAC6cRncCAAAA HTTP/1.1
    Prefer: odata.maxpagesize=1

3 番目の応答のサンプル (タスク フォルダーの同期)

HTTP/1.1 200 OK

{
    "@odata.context": "https://outlook.office.com/api/beta/$metadata#me/TaskFolders/$delta",
    "value": [
        {
            "@odata.id": "https://outlook.office.com/api/beta/Users('5bcd7334-a6c5-4f95-a370-319e077dfe10@e288a0d0-ab74-431b-9699-a3721aabb08f')/TaskFolders('AAMkAGI5AAAunDbVAAA=')",
            "Id": "AAMkAGI5AAAunDbVAAA=",
            "ChangeKey": "PmebZ1wYAUaTmrKkvU9LIQAALqEkZA==",
            "Name":"Volunteer",
            "IsDefaultFolder":false,
            "ParentGroupKey": "db0823f2-93bd-4db6-8038-98bbc5f39a45"
        }
    ],
    "@odata.deltaLink":"https://outlook.office.com/api/beta/me/taskfolders/?%24deltaToken=x_zCBD5nm2dcGAFGk5qypL1PSyEAAC6cRncEAAAA"
}

添付ファイルの取得

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

最低限必要なスコープ

特定のタスクから添付ファイルを取得します。

GET https://outlook.office.com/api/beta/me/tasks('{task_id}')/attachments

応答の種類

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

要求のサンプル

次の例では、指定されたタスクのすべての添付ファイルを返します。これにはファイル、イベントのアイテム、および OneDrive 上の画像へのリンクが含まれます。

GET https://outlook.office.com/api/beta/me/tasks('AAMkADNkN3qGAAA=')/attachments

応答のサンプル

状態コード:200

{
    "@odata.context":"https://outlook.office.com/api/beta/$metadata#Me/Tasks('AAMkADNkNS3qGAAA%3D')/Attachments",
    "value":[
        {
            "@odata.type":"#Microsoft.OutlookServices.FileAttachment",
            "@odata.id":"https://outlook.office.com/api/beta/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkNS3qGAAA=')/Attachments('AAMkADNkNRT6JOBs=')",
            "Id":"AAMkADNkNRT6JOBs=",
            "LastModifiedDateTime":"2016-11-22T02:24:21Z",
            "Name":"Holiday notice",
            "ContentType":"application/octet-stream",
            "Size":244,
            "IsInline":false,
            "ContentId":null,
            "ContentLocation":null,
            "ContentBytes":"bWFjIGFuZCBjaGVlc2U="
        },
        {
            "@odata.type":"#Microsoft.OutlookServices.ItemAttachment",
            "@odata.id":"https://outlook.office.com/api/beta/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkNS3qGAAA=')/Attachments('AAMkADNkNJVnQIe9r0=')",
            "Id":"AAMkADNkNJVnQIe9r0=",
            "LastModifiedDateTime":"2016-12-01T22:27:13Z",
            "Name":"Holiday event",
            "ContentType":null,
            "Size":2473,
            "IsInline":false
        },
        {
            "@odata.type":"#Microsoft.OutlookServices.ReferenceAttachment",
            "@odata.id":"https://outlook.office.com/api/beta/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkNS3qGAAA=')/Attachments('AAMkADNkNLiMhtEYg=')",
            "Id":"AAMkADNkNLiMhtEYg=",
            "LastModifiedDateTime":"2016-12-07T21:14:05Z",
            "Name":"Hydrangea picture",
            "ContentType":null,
            "Size":850,
            "IsInline":true,
            "SourceUrl":"https://contoso-my.sharepoint.com/personal/admin_contoso_onmicrosoft_com/_layouts/15/onedrive.aspx?id=%2Fpersonal%2Fadmin%5Fcontoso%5Fonmicrosoft%5Fcom%2FDocuments%2FHydrangeas%2Ejpg&parent=%2Fpersonal%2Fadmin%5Fcontoso%5Fonmicrosoft%5Fcom%2FDocuments",
            "ProviderType":"OneDriveBusiness",
            "ThumbnailUrl":null,
            "PreviewUrl":null,
            "Permission":"Edit",
            "IsFolder":false
        }
    ]
}

添付ファイルを取得する

最低限必要なスコープ

特定のタスクの添付ファイルを取得します。

GET https://outlook.office.com/api/beta/me/tasks('{task_id}')/attachments('{attachment_id}')

応答の種類

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

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

次の例では、タスクの特定の添付 (添付ファイル) を取得します。

GET https://outlook.office.com/api/beta/me/tasks('AAMkADNkNS3qGAAA=')/attachments('AAMkADNkNJVnQIe9r0=')

応答のサンプル

状態コード:200

{
    "@odata.context":"https://outlook.office.com/api/beta/$metadata#Me/Tasks('AAMkADNkNS3qGAAA%3D')/Attachments/$entity",
    "@odata.type":"#Microsoft.OutlookServices.FileAttachment",
    "@odata.id":"https://outlook.office.com/api/beta/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkNS3qGAAA=')/Attachments('AAMkADNkNRT6JOBs=')",
    "Id":"AAMkADNkNRT6JOBs=",
    "LastModifiedDateTime":"2016-11-22T02:24:21Z",
    "Name":"Holiday notice",
    "ContentType":"application/octet-stream",
    "Size":244,
    "IsInline":false,
    "ContentId":null,
    "ContentLocation":null,
    "ContentBytes":"bWFjIGFuZCBjaGVlc2U="
}

サンプル要求 (アイテムの添付ファイル)

次の例では、タスクの特定の添付 (イベントのアイテム) を取得します。

GET https://outlook.office.com/api/beta/me/tasks('AAMkADNkN3qGAAA=')/attachments('AAMkADNkNJVnQIe9r0=')

応答のサンプル

状態コード:200

{
    "@odata.context":"https://outlook.office.com/api/beta/$metadata#Me/Tasks('AAMkADNkNS3qGAAA%3D')/Attachments/$entity",
    "@odata.type":"#Microsoft.OutlookServices.ItemAttachment",
    "@odata.id":"https://outlook.office.com/api/beta/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkNS3qGAAA=')/Attachments('AAMkADNkNJVnQIe9r0=')",
    "Id":"AAMkADNkNJVnQIe9r0=",
    "LastModifiedDateTime":"2016-12-01T22:27:13Z",
    "Name":"Holiday event",
    "ContentType":null,
    "Size":2473,
    "IsInline":false
}

サンプル要求 (参照添付ファイル)

次の例では、タスクの特定の添付 (参照添付ファイル) を取得します。

GET https://outlook.office.com/api/beta/me/tasks('AAMkADNkN3qGAAA=')/attachments('AAMkADNkNQG1Lnn5-o=')

応答のサンプル

状態コード:200

{
    "@odata.context":"https://outlook.office.com/api/beta/$metadata#Me/Tasks('AAMkADNkN3qGAAA%3D')/Attachments/$entity",
    "@odata.type":"#Microsoft.OutlookServices.ReferenceAttachment",
    "@odata.id":"https://outlook.office.com/api/beta/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkN3qGAAA=')/Attachments('AAMkADNkNQG1Lnn5-o=')",
    "Id":"AAMkADNkNQG1Lnn5-o=",
    "LastModifiedDateTime":"2016-11-22T02:32:44Z",
    "Name":"Hydrangea picture",
    "ContentType":null,
    "Size":850,
    "IsInline":true,
    "SourceUrl":"https://contoso-my.sharepoint.com/personal/admin_contoso_onmicrosoft_com/_layouts/15/onedrive.aspx?id=%2Fpersonal%2Fadmin%5Fcontoso%5Fonmicrosoft%5Fcom%2FDocuments%2FHydrangeas%2Ejpg&parent=%2Fpersonal%2Fadmin%5Fcontoso%5Fonmicrosoft%5Fcom%2FDocuments",
    "ProviderType":"OneDriveBusiness",
    "ThumbnailUrl":null,
    "PreviewUrl":null,
    "Permission":"Edit",
    "IsFolder":false
}

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

次の例では、タスクのプロパティを持つ添付ファイルのインラインを取得して展開します。

GET https://outlook.office.com/api/beta/me/tasks('AAMkADNkN3qGAAA=')?$expand=attachments

応答のサンプル

状態コード:200

{
    "@odata.context":"https://outlook.office.com/api/beta/$metadata#Me/Tasks/$entity",
    "@odata.id":"https://outlook.office.com/api/beta/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkN3qGAAA=')",
    "@odata.etag":"W/\"EZ9r3czxY0m2jz8c45czkwAAC052gQ==\"",
    "Id":"AAMkADNkN3qGAAA=",
    "CreatedDateTime":"2016-11-22T01:27:31.3918881Z",
    "LastModifiedDateTime":"2016-11-22T02:40:48.1705747Z",
    "ChangeKey":"EZ9r3czxY0m2jz8c45czkwAAC052gQ==",
    "Categories":[

    ],
    "AssignedTo":null,
    "Body":{
        "ContentType":"HTML",
        "Content":"<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n<meta content=\"text/html; charset=iso-8859-1\">\r\n<style type=\"text/css\" style=\"display:none\">\r\n<!--\r\np\r\n\t{margin-top:0;\r\n\tmargin-bottom:0}\r\n-->\r\n</style>\r\n</head>\r\n<body dir=\"ltr\">\r\n<div id=\"divtagdefaultwrapper\" dir=\"ltr\" style=\"font-size:12pt; color:#000000; font-family:Calibri,Arial,Helvetica,sans-serif\">\r\n<p>Prepare for Thanksgiving gathering.<br>\r\n</p>\r\n</div>\r\n</body>\r\n</html>\r\n"
    },
    "CompletedDateTime":null,
    "DueDateTime":{
        "DateTime":"2016-11-24T08:00:00.0000000",
        "TimeZone":"UTC"
    },
    "HasAttachments":true,
    "Importance":"Normal",
    "IsReminderOn":false,
    "Owner":"Administrator",
    "ParentFolderId":"AQMkADNkNAAAgESAAAA",
    "Recurrence":null,
    "ReminderDateTime":null,
    "Sensitivity":"Normal",
    "StartDateTime":{
        "DateTime":"2016-11-22T08:00:00.0000000",
        "TimeZone":"UTC"
    },
    "Status":"NotStarted",
    "Subject":"Holiday prep",
    "Attachments@odata.context":"https://outlook.office.com/api/beta/$metadata#Me/Tasks('AAMkADNkN3qGAAA%3D')/Attachments",
    "Attachments":[
        {
            "@odata.type":"#Microsoft.OutlookServices.FileAttachment",
            "@odata.id":"https://outlook.office.com/api/beta/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkN3qGAAA=')/Attachments('AAMkADNkNRT6JOBs=')",
            "Id":"AAMkADNkNRT6JOBs=",
            "LastModifiedDateTime":"2016-11-22T02:24:21Z",
            "Name":"Holiday notice",
            "ContentType":"application/octet-stream",
            "Size":244,
            "IsInline":false,
            "ContentId":null,
            "ContentLocation":null,
            "ContentBytes":"bWFjIGFuZCBjaGVlc2U="
        }
    ]
}

添付ファイルを追加する

タスクへの添付としてファイル、アイテム (メッセージ、イベント、連絡先)、またはファイルへのリンクを追加できます。

添付ファイルを追加する

最低限必要なスコープ

タスクへの添付としてファイルを追加します。

POST https://outlook.office.com/api/beta/me/tasks('{task_id}')/attachments
必要な本文パラメーター 説明
@odata.type 文字列 #Microsoft.OutlookServices.FileAttachment
名前 文字列 添付ファイルの名前。
ContentBytes バイナリー base64 でエンコードされた、添付するファイルの内容。

応答の種類

新しい添付ファイル

要求のサンプル

POST https://outlook.office.com/api/beta/me/tasks('AAMkADNkN3qGAAA=')/attachments
Content-Type: application/json

{
    "@odata.type": "#Microsoft.OutlookServices.FileAttachment"", 
    "Name": "Holiday notice", 
    "ContentBytes": "bWFjIGFuZCBjaGVlc2U="
}

応答のサンプル

状態コード:201 Created

{
    "@odata.context":"https://outlook.office.com/api/beta/$metadata#Me/Tasks('AAMkADNkN3qGAAA%3D')/Attachments/$entity",
    "@odata.type":"#Microsoft.OutlookServices.FileAttachment",
    "@odata.id":"https://outlook.office.com/api/beta/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkN3qGAAA=')/Attachments('AAMkADNkNRT6JOBs=')",
    "Id":"AAMkADNkNRT6JOBs=",
    "LastModifiedDateTime":"2016-11-22T02:24:21Z",
    "Name":"Holiday notice",
    "ContentType":"application/octet-stream",
    "Size":244,
    "IsInline":false,
    "ContentId":null,
    "ContentLocation":null,
    "ContentBytes":"bWFjIGFuZCBjaGVlc2U="
}

項目の添付ファイルを追加する

最低限必要なスコープ

タスクへの添付として、アイテム (メッセージ、イベント、または連絡先) を追加します。

POST https://outlook.office.com/api/beta/me/tasks('{task_id}')/attachments
必要な本文パラメーター 説明
@odata.type 文字列 #Microsoft.OutlookServices.ItemAttachment
名前 文字列 添付ファイルの名前。
Item MessageEvent、または Contact エンティティ。 添付するアイテム。

応答の種類

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

要求のサンプル

POST https://outlook.office.com/api/beta/me/tasks('AAMkADNkN3qGAAA=')/attachments
Content-Type: application/json

{
    "@odata.type": "#Microsoft.OutlookServices.ItemAttachment", 
    "Name": "Holiday event", 
    "Item": {
        "@odata.type": "Microsoft.OutlookServices.Event",
        "Subject": "Discuss gifts for children",
        "Body": {
            "ContentType": "HTML",
            "Content": "Let's look for funding!"
         },
         "Start": {
             "DateTime": "2016-12-02T18:00:00",
             "TimeZone": "Pacific Standard Time"
          },
          "End": {
             "DateTime": "2016-12-02T19:00:00",
             "TimeZone": "Pacific Standard Time"
           }
    }
}

応答のサンプル

状態コード:201 Created

{
    "@odata.context":"https://outlook.office.com/api/beta/$metadata#Me/Tasks('AAMkADNkN3qGAAA%3D')/Attachments/$entity",
    "@odata.type":"#Microsoft.OutlookServices.ItemAttachment",
    "@odata.id":"https://outlook.office.com/api/beta/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkN23qGAAA=')/Attachments('AAMkADNkN2Jp5JVnQIe9r0=')",
    "Id":"AAMkADNkNJp5JVnQIe9r0=",
    "LastModifiedDateTime":"2016-12-01T22:27:13Z",
    "Name":"Holiday event",
    "ContentType":null,
    "Size":2473,
    "IsInline":false
}

参照添付ファイルを追加する

最低限必要なスコープ

タスクへの参照添付ファイルとして、ファイルへのリンクを追加します。

POST https://outlook.office.com/api/beta/me/tasks('{task_id}')/attachments
必要な本文パラメーター 説明
@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/beta/me/tasks('AAMkADNkN3qGAAA=')/attachments
Content-Type: application/json

{
    "@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment", 
    "Name": "Hydrangea picture", 
    "SourceUrl": "https://contoso-my.sharepoint.com/personal/admin_contoso_onmicrosoft_com/_layouts/15/onedrive.aspx?id=%2Fpersonal%2Fadmin%5Fcontoso%5Fonmicrosoft%5Fcom%2FDocuments%2FHydrangeas%2Ejpg&parent=%2Fpersonal%2Fadmin%5Fcontoso%5Fonmicrosoft%5Fcom%2FDocuments", 
    "ProviderType": "oneDriveBusiness", 
    "Permission": "Edit", 
    "IsFolder": "False" 
}

応答のサンプル

状態コード:201 Created

{
    "@odata.context":"https://outlook.office.com/api/beta/$metadata#Me/Tasks('AAMkADNkN3qGAAA%3D')/Attachments/$entity",
    "@odata.type":"#Microsoft.OutlookServices.ReferenceAttachment",
    "@odata.id":"https://outlook.office.com/api/beta/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkN3qGAAA=')/Attachments('AAMkADNkNQG1Lnn5-o=')",
    "Id":"AAMkADNkNQG1Lnn5-o=",
    "LastModifiedDateTime":"2016-11-22T02:32:44Z",
    "Name":"Hydrangea picture",
    "ContentType":null,
    "Size":850,
    "IsInline":true,
    "SourceUrl":"https://contoso-my.sharepoint.com/personal/admin_contoso_onmicrosoft_com/_layouts/15/onedrive.aspx?id=%2Fpersonal%2Fadmin%5Fcontoso%5Fonmicrosoft%5Fcom%2FDocuments%2FHydrangeas%2Ejpg&parent=%2Fpersonal%2Fadmin%5Fcontoso%5Fonmicrosoft%5Fcom%2FDocuments",
    "ProviderType":"OneDriveBusiness",
    "ThumbnailUrl":null,
    "PreviewUrl":null,
    "Permission":"Edit",
    "IsFolder":false
}

添付ファイルを削除する

タスクの添付ファイルを削除する

タスクの添付ファイルを削除する

最低限必要なスコープ

タスクの指定した添付ファイルを削除します。添付ファイルは、添付ファイルアイテムの添付ファイル、または参照添付ファイルにすることができます。

DELETE https://outlook.office.com/api/beta/me/tasks('{task_id}')/attachments('{attachment_id}')

要求のサンプル

DELETE https:/outlook.office.com/api/beta/me/tasks('AAMkADNkN3qGAAA=')/attachments('AAMkADNkNQG1Lnn5-o=')

応答のサンプル

Status code: 204

タスク フォルダーの作成

最低限必要なスコープ

タスク フォルダーを作成します。

ユーザーのメールボックスの既定のタスク グループ (My Tasks) にタスクを作成することができます。

POST https://outlook.office.com/api/beta/me/taskfolders

または、指定したタスク グループの下にタスク フォルダーを作成することができます。

POST https://outlook.office.com/api/beta/me/taskgroups('{group_id}')/taskfolders

要求本文で、作成する TaskFolder の JSON 表記を指定します。

応答

成功状態コード:201 Created

応答本文:作成された TaskFolder

要求のサンプル

次の例では、ユーザーのメールボックスの既定のタスク グループ (My Tasks) に Volunteer というタスク フォルダーを作成します。

POST https://outlook.office.com/api/beta/me/taskfolders 
Content-Type: application/json

{
  "Name": "Volunteer"
}

応答のサンプル

Status code: 201

{
  "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/TaskFolders/$entity",
  "@odata.id": "https://outlook.office.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskFolders('AAMkADIyAAAhrbPWAAA=')",
  "Id": "AAMkADIyAAAhrbPWAAA=",
  "ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAIbAGig==",
  "IsDefaultFolder": false,
  "Name": "Volunteer",
  "ParentGroupKey": "0006f0b7-0000-0000-c000-000000000046"
}

要求のサンプル

次の例では、指定したタスク グループに Cooking というタスク フォルダーを作成します。

POST https://outlook.office.com/api/beta/me/taskgroups('AAMkADIyAAAhrbe-AAA')/taskfolders 
Content-Type: application/json

{
  "Name": "Cooking"
}

応答のサンプル

Status code: 201

{
  "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/TaskGroups('AAMkADIyAAAhrbe-AAA%3D')/TaskFolders/$entity",
  "@odata.id": "https://outlook.office.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskFolders('AAMkADIyAAAhrbPXAAA=')",
  "Id": "AAMkADIyAAAhrbPXAAA=",
  "ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAIbAOlA==",
  "IsDefaultFolder": false,
  "Name": "Cooking",
  "ParentGroupKey": "63d640cf-946f-4734-9c29-60dda7b76acb"
}

タスク フォルダーの取得

最低限必要なスコープ

複数のタスク フォルダーを取得します。

ユーザーのメールボックス内のすべてのタスク フォルダーを取得できます。

GET https://outlook.office.com/api/beta/me/taskfolders

または、特定のタスク グループ内のタスク フォルダーを取得できます。

GET https://outlook.office365.com/api/beta/me/taskgroups('{group_id}')/taskfolders 

応答

成功状態コード:200 OK

応答本文:taskfolder コレクション。

要求のサンプル

次の例では、ユーザーのメールボックス内のすべてのタスク フォルダーを取得します。

GET https://outlook.office.com/api/beta/me/taskfolders

応答のサンプル

Status code: 200 OK

{
  "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/TaskFolders",
  "value": [
    {
      "@odata.id": "https://outlook.office.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskFolders('AAMkADIyAAAAABrJAAA=')",
      "Id": "AAMkADIyAAAAABrJAAA=",
      "ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAAAAeAA==",
      "IsDefaultFolder": false,
      "Name": "Monthly tasks",
      "ParentGroupKey": "0006f0b7-0000-0000-c000-000000000046"
    },
    {
      "@odata.id": "https://outlook.office.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskFolders('AAMkADIyAAAAAAESAAA=')",
      "Id": "AAMkADIyAAAAAAESAAA=",
      "ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAAAAAPA==",
      "IsDefaultFolder": true,
      "Name": "Tasks",
      "ParentGroupKey": "0006f0b7-0000-0000-c000-000000000046"
    }
  ]
}

次の例では、指定したタスク グループ内のすべてのタスク フォルダーを取得します。

GET https://outlook.office365.com/api/beta/me/taskgroups('AAMkADIyAAAhrbe-AAA=')/taskfolders

応答のサンプル

Status code: 200 OK

{
  "@odata.context": "https://outlook.office365.com/api/beta/$metadata#Me/TaskGroups('AAMkADIyAAAhrbe-AAA%3D')/TaskFolders",
  "value": [
    {
      "@odata.id": "https://outlook.office365.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskFolders('AAMkADIyAAAhrbPXAAA=')",
      "Id": "AAMkADIyAAAhrbPXAAA=",
      "ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAIbAOlA==",
      "IsDefaultFolder": false,
      "Name": "Cooking",
      "ParentGroupKey": "63d640cf-946f-4734-9c29-60dda7b76acb"
    }
  ]
}

タスク フォルダーの更新

最低限必要なスコープ

タスク フォルダーの書き込み可能なプロパティを更新します。

既定のタスク フォルダー (Tasks) の Name プロパティ値は変更できません。

タスク フォルダー ID は、ユーザーのメールボックス内で一意です。

PATCH https://outlook.office.com/api/beta/me/taskfolders('{folder_id}')

要求本文で、TaskFolder で更新する書き込み可能なプロパティの JSON 表記を指定します。

応答

成功状態コード:200 OK

応答本文:更新された TaskFolder

要求のサンプル

次の例では、タスク フォルダーの名前を Charity work に変更します。

PATCH https://outlook.office.com/api/beta/me/taskfolders('AAMkADIyAAAhrbPWAAA=')
Content-Type: application/json

{
  "Name": "Charity work"
}

応答のサンプル

Status code: 200 OK

{
  "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/TaskFolders/$entity",
  "@odata.id": "https://outlook.office.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskFolders('AAMkADIyAAAhrbPWAAA=')",
  "Id": "AAMkADIyAAAhrbPWAAA=",
  "ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAIbAKfQ==",
  "IsDefaultFolder": false,
  "Name": "Charity work",
  "ParentGroupKey": "0006f0b7-0000-0000-c000-000000000046"
}

タスク フォルダーの削除

最低限必要なスコープ

指定したタスク フォルダーを削除します。

既定のタスク フォルダー Tasks を削除しようとすると、”HTTP 400 正しくない要求” が返されます。

DELETE https://outlook.office.com/api/beta/me/taskfolders('{folder_id}')

応答

成功状態コード:204 No Content

応答本文:なし。

要求のサンプル

DELETE https://outlook.office365.com/api/beta/me/taskfolders('AAMkADIyAAAhrbPXAAA=')

応答のサンプル

Status code: 204

タスク グループの作成

最低限必要なスコープ

ユーザーのメールボックスにタスク グループを作成します。

POST https://outlook.office.com/api/beta/me/taskgroups

要求本文で、作成する TaskGroup の JSON 表記を指定します。

応答

成功状態コード:201 Created

応答本文:作成された TaskGroup

要求のサンプル

POST https://outlook.office.com/api/beta/me/taskgroups
Content-Type: application/json

{
  "Name": "Leisure tasks"
}

応答のサンプル

Status code: 201

{
  "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/TaskGroups/$entity",
  "@odata.id": "https://outlook.office.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskGroups('AAMkADIyAAAhrbe-AAA=')",
  "Id": "AAMkADIyAAAhrbe-AAA=",
  "ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAIbAGjg==".
  "IsDefaultGroup": false,
  "Name": "Leisure tasks",
  "GroupKey": "63d640cf-946f-4734-9c29-60dda7b76acb"
}

タスク グループの取得

最低限必要なスコープ

ユーザーのメールボックス内のすべてのタスク グループを取得します。

応答には常に、既定のタスク グループ My Tasks およびメールボックス内に作成されたその他のタスク グループが含まれます。

GET https://outlook.office.com/api/beta/me/taskgroups

応答

成功状態コード:200 OK

応答本文:TaskGroup コレクション。

要求のサンプル

GET https://outlook.office.com/api/beta/me/taskgroups

応答のサンプル

Status code: 200

{
  "@odata.context": "https://outlook.office365.com/api/beta/$metadata#Me/TaskGroups",
  "value": [
    {
      "@odata.id": "https://outlook.office365.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskGroups('AAMkADIyAAADJ5pYAAA=')",
      "Id": "AAMkADIyAAADJ5pYAAA=",
      "ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAInHxLA==",
      "IsDefaultGroup": true,
      "Name": "My Tasks",
      "GroupKey": "0006f0b7-0000-0000-c000-000000000046"
    },
    {
      "@odata.id": "https://outlook.office365.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskGroups('AAMkADIyAAAhrbe-AAA=')",
      "Id": "AAMkADIyAAAhrbe-AAA=",
      "ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAInHxKw==",
      "IsDefaultGroup": false,
      "Name": "Leisure Tasks",
      "GroupKey": "63d640cf-946f-4734-9c29-60dda7b76acb"
    }
  ]
}

タスク グループの更新

最低限必要なスコープ

タスク グループの書き込み可能なプロパティを更新します。

PATCH https://outlook.office.com/api/beta/me/taskgroups('{group_id}')

要求本文で、Name プロパティなど、TaskGroup で更新する書き込み可能なプロパティの JSON 表記を指定します。

応答

成功状態コード:200 OK

応答本文:更新されたタスク

要求のサンプル

次の例では、タスク グループの名前を "Personal Tasks" に変更します。既定のタスク グループの名前である "マイ タスク" を変更することはできません。

PATCH https://outlook.office.com/api/beta/me/taskgroups('AAMkADIyAAAhrbe-AAA=')
Content-Type: application/json

{
  "Name": "Personal Tasks"
}

応答のサンプル

Status code: 200 

{
  "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/TaskGroups/$entity",
  "@odata.id": "https://outlook.office.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskGroups('AAMkADIyAAAhrbe-AAA=')",
  "Id": "AAMkADIyAAAhrbe-AAA=",
  "ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAIbAGjw==",
  "IsDefaultGroup": false,
  "Name": "Personal Tasks",
  "GroupKey": "63d640cf-946f-4734-9c29-60dda7b76acb"
}

タスク グループの削除

最低限必要なスコープ

指定したタスク グループを削除します。

既定のタスク グループ My Tasks を削除しようとすると、”HTTP 400 正しくない要求” が返されます。

DELETE https://outlook.office.com/api/beta/me/taskgroups('{group_id}')

応答

成功状態コード:204 No Content

応答本文:更新されたタスク

要求のサンプル

DELETE https://outlook.office365.com/api/beta/me/taskgroups('AAMkADIyAAAhrbe-AAA=')

応答のサンプル

Status code: 204

次の手順

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

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