Microsoft To Do · Schema

microsoft.graph.todoTask

MicrosoftMicrosoft 365ProductivityTaskTask ManagementMicrosoft Graph

Properties

Name Type Description
id string The unique identifier for an entity. Read-only.
@odata.type string
body object The task body that typically contains information about the task.
bodyLastModifiedDateTime string The date and time when the task body was last modified. By default, it is in UTC. You can provide a custom time zone in the request header. The property value uses ISO 8601 format and is always in UTC
categories array The categories associated with the task. Each category corresponds to the displayName property of an outlookCategory that the user has defined.
completedDateTime object The date and time in the specified time zone that the task was finished.
createdDateTime string The date and time when the task was created. By default, it is in UTC. You can provide a custom time zone in the request header. The property value uses ISO 8601 format. For example, midnight UTC on J
dueDateTime object The date and time in the specified time zone that the task is to be finished.
hasAttachments booleannull Indicates whether the task has attachments.
importance object
isReminderOn boolean Set to true if an alert is set to remind the user of the task.
lastModifiedDateTime string The date and time when the task was last modified. By default, it is in UTC. You can provide a custom time zone in the request header. The property value uses ISO 8601 format and is always in UTC time
recurrence object The recurrence pattern for the task.
reminderDateTime object The date and time in the specified time zone for a reminder alert of the task to occur.
startDateTime object The date and time in the specified time zone at which the task is scheduled to start.
status object
title stringnull A brief description of the task.
attachments array A collection of file attachments for the task.
attachmentSessions array
checklistItems array A collection of checklistItems linked to a task.
extensions array The collection of open extensions defined for the task. Nullable.
linkedResources array A collection of resources linked to the task.
singleValueExtendedProperties array A collection of custom fields linked to the task.
View JSON Schema on GitHub

JSON Schema

microsoft-to-do-microsoft-graph-todo-task-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-to-do/json-schema/microsoft-to-do-microsoft-graph-todo-task-schema.json",
  "title": "microsoft.graph.todoTask",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/microsoft-to-do-openapi.yml#/components/schemas/microsoft.graph.todoTask",
  "allOf": [
    {
      "$ref": "#/$defs/microsoft.graph.entity"
    },
    {
      "title": "todoTask",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "body": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.itemBody"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "The task body that typically contains information about the task."
        },
        "bodyLastModifiedDateTime": {
          "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
          "type": "string",
          "description": "The date and time when the task body was last modified. By default, it is in UTC. You can provide a custom time zone in the request header. The property value uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2020 would look like this: '2020-01-01T00:00:00Z'.",
          "format": "date-time"
        },
        "categories": {
          "type": "array",
          "items": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": "The categories associated with the task. Each category corresponds to the displayName property of an outlookCategory that the user has defined."
        },
        "completedDateTime": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.dateTimeTimeZone"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "The date and time in the specified time zone that the task was finished."
        },
        "createdDateTime": {
          "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
          "type": "string",
          "description": "The date and time when the task was created. By default, it is in UTC. You can provide a custom time zone in the request header. The property value uses ISO 8601 format. For example, midnight UTC on Jan 1, 2020 would look like this: '2020-01-01T00:00:00Z'.",
          "format": "date-time"
        },
        "dueDateTime": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.dateTimeTimeZone"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "The date and time in the specified time zone that the task is to be finished."
        },
        "hasAttachments": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Indicates whether the task has attachments."
        },
        "importance": {
          "$ref": "#/$defs/microsoft.graph.importance"
        },
        "isReminderOn": {
          "type": "boolean",
          "description": "Set to true if an alert is set to remind the user of the task."
        },
        "lastModifiedDateTime": {
          "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
          "type": "string",
          "description": "The date and time when the task was last modified. By default, it is in UTC. You can provide a custom time zone in the request header. The property value uses ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2020 would look like this: '2020-01-01T00:00:00Z'.",
          "format": "date-time"
        },
        "recurrence": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.patternedRecurrence"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "The recurrence pattern for the task."
        },
        "reminderDateTime": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.dateTimeTimeZone"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "The date and time in the specified time zone for a reminder alert of the task to occur."
        },
        "startDateTime": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.dateTimeTimeZone"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "The date and time in the specified time zone at which the task is scheduled to start."
        },
        "status": {
          "$ref": "#/$defs/microsoft.graph.taskStatus"
        },
        "title": {
          "type": [
            "string",
            "null"
          ],
          "description": "A brief description of the task."
        },
        "attachments": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.attachmentBase"
          },
          "description": "A collection of file attachments for the task.",
          "x-ms-navigationProperty": true
        },
        "attachmentSessions": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.attachmentSession"
          },
          "x-ms-navigationProperty": true
        },
        "checklistItems": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.checklistItem"
          },
          "description": "A collection of checklistItems linked to a task.",
          "x-ms-navigationProperty": true
        },
        "extensions": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.extension"
          },
          "description": "The collection of open extensions defined for the task. Nullable.",
          "x-ms-navigationProperty": true
        },
        "linkedResources": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.linkedResource"
          },
          "description": "A collection of resources linked to the task.",
          "x-ms-navigationProperty": true
        },
        "singleValueExtendedProperties": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.singleValueExtendedProperty"
          },
          "description": "A collection of custom fields linked to the task.",
          "x-ms-navigationProperty": true
        },
        "@odata.type": {
          "type": "string"
        }
      }
    }
  ],
  "x-ms-discriminator-value": "#microsoft.graph.todoTask",
  "$defs": {
    "microsoft.graph.attachmentBase": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "attachmentBase",
          "required": [
            "@odata.type"
          ],
          "type": "object",
          "properties": {
            "contentType": {
              "type": [
                "string",
                "null"
              ],
              "description": "The MIME type."
            },
            "lastModifiedDateTime": {
              "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
              "type": [
                "string",
                "null"
              ],
              "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.",
              "format": "date-time"
            },
            "name": {
              "type": [
                "string",
                "null"
              ],
              "description": "The display name of the attachment. This doesn't need to be the actual file name."
            },
            "size": {
              "maximum": 2147483647,
              "minimum": -2147483648,
              "type": "number",
              "description": "The length of the attachment in bytes.",
              "format": "int32"
            },
            "@odata.type": {
              "type": "string"
            }
          }
        }
      ]
    },
    "microsoft.graph.attachmentSession": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "attachmentSession",
          "required": [
            "@odata.type"
          ],
          "type": "object",
          "properties": {
            "content": {
              "type": [
                "string",
                "null"
              ],
              "description": "The content streams that are uploaded.",
              "format": "base64url"
            },
            "expirationDateTime": {
              "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
              "type": [
                "string",
                "null"
              ],
              "description": "The date and time in UTC when the upload session will expire. The complete file must be uploaded before this expiration time is reached.",
              "format": "date-time"
            },
            "nextExpectedRanges": {
              "type": "array",
              "items": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "description": "Indicates a single value {start} that represents the location in the file where the next upload should begin."
            },
            "@odata.type": {
              "type": "string"
            }
          }
        }
      ],
      "x-ms-discriminator-value": "#microsoft.graph.attachmentSession"
    },
    "microsoft.graph.bodyType": {
      "title": "bodyType",
      "enum": [
        "text",
        "html"
      ],
      "type": "string"
    },
    "microsoft.graph.checklistItem": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "checklistItem",
          "required": [
            "@odata.type"
          ],
          "type": "object",
          "properties": {
            "checkedDateTime": {
              "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
              "type": [
                "string",
                "null"
              ],
              "description": "The date and time when the checklistItem was finished.",
              "format": "date-time"
            },
            "createdDateTime": {
              "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
              "type": "string",
              "description": "The date and time when the checklistItem was created.",
              "format": "date-time"
            },
            "displayName": {
              "type": [
                "string",
                "null"
              ],
              "description": "Indicates the title of the checklistItem."
            },
            "isChecked": {
              "type": [
                "boolean",
                "null"
              ],
              "description": "State that indicates whether the item is checked off or not."
            },
            "@odata.type": {
              "type": "string"
            }
          }
        }
      ],
      "x-ms-discriminator-value": "#microsoft.graph.checklistItem"
    },
    "microsoft.graph.dateTimeTimeZone": {
      "title": "dateTimeTimeZone",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "dateTime": {
          "type": "string",
          "description": "A single point of time in a combined date and time representation ({date}T{time}; for example, 2017-08-29T04:00:00.0000000)."
        },
        "timeZone": {
          "type": [
            "string",
            "null"
          ],
          "description": "Represents a time zone, for example, 'Pacific Standard Time'. See below for more possible values."
        },
        "@odata.type": {
          "type": "string"
        }
      }
    },
    "microsoft.graph.dayOfWeek": {
      "title": "dayOfWeek",
      "enum": [
        "sunday",
        "monday",
        "tuesday",
        "wednesday",
        "thursday",
        "friday",
        "saturday"
      ],
      "type": "string"
    },
    "microsoft.graph.entity": {
      "title": "entity",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique identifier for an entity. Read-only."
        },
        "@odata.type": {
          "type": "string"
        }
      }
    },
    "microsoft.graph.extension": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "extension",
          "required": [
            "@odata.type"
          ],
          "type": "object",
          "properties": {
            "@odata.type": {
              "type": "string"
            }
          }
        }
      ]
    },
    "microsoft.graph.importance": {
      "title": "importance",
      "enum": [
        "low",
        "normal",
        "high"
      ],
      "type": "string"
    },
    "microsoft.graph.itemBody": {
      "title": "itemBody",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "content": {
          "type": [
            "string",
            "null"
          ],
          "description": "The content of the item."
        },
        "contentType": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.bodyType"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "The type of the content. Possible values are text and html."
        },
        "@odata.type": {
          "type": "string"
        }
      }
    },
    "microsoft.graph.linkedResource": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "linkedResource",
          "required": [
            "@odata.type"
          ],
          "type": "object",
          "properties": {
            "applicationName": {
              "type": [
                "string",
                "null"
              ],
              "description": "The app name of the source that sends the linkedResource."
            },
            "displayName": {
              "type": [
                "string",
                "null"
              ],
              "description": "The title of the linkedResource."
            },
            "externalId": {
              "type": [
                "string",
                "null"
              ],
              "description": "ID of the object that is associated with this task on the third-party/partner system."
            },
            "webUrl": {
              "type": [
                "string",
                "null"
              ],
              "description": "Deep link to the linkedResource."
            },
            "@odata.type": {
              "type": "string"
            }
          }
        }
      ],
      "x-ms-discriminator-value": "#microsoft.graph.linkedResource"
    },
    "microsoft.graph.patternedRecurrence": {
      "title": "patternedRecurrence",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "pattern": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.recurrencePattern"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "The frequency of an event.  For access reviews: Do not specify this property for a one-time access review.  Only interval, dayOfMonth, and type (weekly, absoluteMonthly) properties of recurrencePattern are supported."
        },
        "range": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.recurrenceRange"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "The duration of an event."
        },
        "@odata.type": {
          "type": "string"
        }
      }
    },
    "microsoft.graph.recurrencePattern": {
      "title": "recurrencePattern",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "dayOfMonth": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": "number",
          "description": "The day of the month on which the event occurs. Required if type is absoluteMonthly or absoluteYearly.",
          "format": "int32"
        },
        "daysOfWeek": {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "$ref": "#/$defs/microsoft.graph.dayOfWeek"
              },
              {
                "type": [
                  "object",
                  "null"
                ]
              }
            ]
          },
          "description": "A collection of the days of the week on which the event occurs. The possible values are: sunday, monday, tuesday, wednesday, thursday, friday, saturday. If type is relativeMonthly or relativeYearly, and daysOfWeek specifies more than one day, the event falls on the first day that satisfies the pattern.  Required if type is weekly, relativeMonthly, or relativeYearly."
        },
        "firstDayOfWeek": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.dayOfWeek"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "The first day of the week. The possible values are: sunday, monday, tuesday, wednesday, thursday, friday, saturday. Default is sunday. Required if type is weekly."
        },
        "index": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.weekIndex"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "Specifies on which instance of the allowed days specified in daysOfWeek the event occurs, counted from the first instance in the month. The possible values are: first, second, third, fourth, last. Default is first. Optional and used if type is relativeMonthly or relativeYearly."
        },
        "interval": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": "number",
          "description": "The number of units between occurrences, where units can be in days, weeks, months, or years, depending on the type. Required.",
          "format": "int32"
        },
        "month": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": "number",
          "description": "The month in which the event occurs.  This is a number from 1 to 12.",
          "format": "int32"
        },
        "type": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.recurrencePatternType"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "The recurrence pattern type: daily, weekly, absoluteMonthly, relativeMonthly, absoluteYearly, relativeYearly. Required. For more information, see values of type property."
        },
        "@odata.type": {
          "type": "string"
        }
      }
    },
    "microsoft.graph.recurrencePatternType": {
      "title": "recurrencePatternType",
      "enum": [
        "daily",
        "weekly",
        "absoluteMonthly",
        "relativeMonthly",
        "absoluteYearly",
        "relativeYearly"
      ],
      "type": "string"
    },
    "microsoft.graph.recurrenceRange": {
      "title": "recurrenceRange",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "endDate": {
          "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$",
          "type": [
            "string",
            "null"
          ],
          "description": "The date to stop applying the recurrence pattern. Depending on the recurrence pattern of the event, the last occurrence of the meeting may not be this date. Required if type is endDate.",
          "format": "date"
        },
        "numberOfOccurrences": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": "number",
          "description": "The number of times to repeat the event. Required and must be positive if type is numbered.",
          "format": "int32"
        },
        "recurrenceTimeZone": {
          "type": [
            "string",
            "null"
          ],
          "description": "Time zone for the startDate and endDate properties. Optional. If not specified, the time zone of the event is used."
        },
        "startDate": {
          "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$",
          "type": [
            "string",
            "null"
          ],
          "description": "The date to start applying the recurrence pattern. The first occurrence of the meeting may be this date or later, depending on the recurrence pattern of the event. Must be the same value as the start property of the recurring event. Required.",
          "format": "date"
        },
        "type": {
          "anyOf": [
            {
              "$ref": "#/$defs/microsoft.graph.recurrenceRangeType"
            },
            {
              "type": [
                "object",
                "null"
              ]
            }
          ],
          "description": "The recurrence range. The possible values are: endDate, noEnd, numbered. Required."
        },
        "@odata.type": {
          "type": "string"
        }
      }
    },
    "microsoft.graph.recurrenceRangeType": {
      "title": "recurrenceRangeType",
      "enum": [
        "endDate",
        "noEnd",
        "numbered"
      ],
      "type": "string"
    },
    "microsoft.graph.singleValueExtendedProperty": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "singleValueExtendedProperty",
          "required": [
            "@odata.type"
          ],
          "type": "object",
          "properties": {
            "value": {
              "type": [
                "string",
                "null"
              ],
              "description": "The value of the property."
            },
            "@odata.type": {
              "type": "string"
            }
          }
        }
      ],
      "x-ms-discriminator-value": "#microsoft.graph.singleValueExtendedProperty"
    },
    "microsoft.graph.taskStatus": {
      "title": "taskStatus",
      "enum": [
        "notStarted",
        "inProgress",
        "completed",
        "waitingOnOthers",
        "deferred"
      ],
      "type": "string"
    },
    "microsoft.graph.weekIndex": {
      "title": "weekIndex",
      "enum": [
        "first",
        "second",
        "third",
        "fourth",
        "last"
      ],
      "type": "string"
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/microsoft-to-do-microsoft-graph-todo-task"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.