{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/azure-ad/json-schema/azure-ad-microsoft-graph-todo-task-list-schema.json",
  "title": "microsoft.graph.todoTaskList",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/azure-ad-users-todo-api-openapi.yml#/components/schemas/microsoft.graph.todoTaskList",
  "allOf": [
    {
      "$ref": "#/$defs/microsoft.graph.entity"
    },
    {
      "title": "todoTaskList",
      "type": "object",
      "properties": {
        "displayName": {
          "type": [
            "string",
            "null"
          ],
          "description": "The name of the task list."
        },
        "isOwner": {
          "type": "boolean",
          "description": "True if the user is owner of the given task list."
        },
        "isShared": {
          "type": "boolean",
          "description": "True if the task list is shared with other users"
        },
        "wellknownListName": {
          "$ref": "#/$defs/microsoft.graph.wellknownListName"
        },
        "extensions": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.extension"
          },
          "description": "The collection of open extensions defined for the task list. Nullable.",
          "x-ms-navigationProperty": true
        },
        "tasks": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/microsoft.graph.todoTask"
          },
          "description": "The tasks in this task list. Read-only. Nullable.",
          "x-ms-navigationProperty": true
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    }
  ],
  "$defs": {
    "microsoft.graph.attachmentBase": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "attachmentBase",
          "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"
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.attachmentSession": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "attachmentSession",
          "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."
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.bodyType": {
      "title": "bodyType",
      "enum": [
        "text",
        "html"
      ],
      "type": "string"
    },
    "microsoft.graph.checklistItem": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "checklistItem",
          "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."
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.dateTimeTimeZone": {
      "title": "dateTimeTimeZone",
      "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."
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.dayOfWeek": {
      "title": "dayOfWeek",
      "enum": [
        "sunday",
        "monday",
        "tuesday",
        "wednesday",
        "thursday",
        "friday",
        "saturday"
      ],
      "type": "string"
    },
    "microsoft.graph.entity": {
      "title": "entity",
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique identifier for an entity. Read-only."
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.extension": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "extension",
          "type": "object",
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.importance": {
      "title": "importance",
      "enum": [
        "low",
        "normal",
        "high"
      ],
      "type": "string"
    },
    "microsoft.graph.itemBody": {
      "title": "itemBody",
      "type": "object",
      "properties": {
        "content": {
          "type": [
            "string",
            "null"
          ],
          "description": "The content of the item."
        },
        "contentType": {
          "$ref": "#/$defs/microsoft.graph.bodyType"
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.linkedResource": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "linkedResource",
          "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."
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.patternedRecurrence": {
      "title": "patternedRecurrence",
      "type": "object",
      "properties": {
        "pattern": {
          "$ref": "#/$defs/microsoft.graph.recurrencePattern"
        },
        "range": {
          "$ref": "#/$defs/microsoft.graph.recurrenceRange"
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.recurrencePattern": {
      "title": "recurrencePattern",
      "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": {
            "$ref": "#/$defs/microsoft.graph.dayOfWeek"
          },
          "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": {
          "$ref": "#/$defs/microsoft.graph.dayOfWeek"
        },
        "index": {
          "$ref": "#/$defs/microsoft.graph.weekIndex"
        },
        "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": {
          "$ref": "#/$defs/microsoft.graph.recurrencePatternType"
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.recurrencePatternType": {
      "title": "recurrencePatternType",
      "enum": [
        "daily",
        "weekly",
        "absoluteMonthly",
        "relativeMonthly",
        "absoluteYearly",
        "relativeYearly"
      ],
      "type": "string"
    },
    "microsoft.graph.recurrenceRange": {
      "title": "recurrenceRange",
      "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": {
          "$ref": "#/$defs/microsoft.graph.recurrenceRangeType"
        }
      },
      "additionalProperties": {
        "type": "object"
      }
    },
    "microsoft.graph.recurrenceRangeType": {
      "title": "recurrenceRangeType",
      "enum": [
        "endDate",
        "noEnd",
        "numbered"
      ],
      "type": "string"
    },
    "microsoft.graph.taskStatus": {
      "title": "taskStatus",
      "enum": [
        "notStarted",
        "inProgress",
        "completed",
        "waitingOnOthers",
        "deferred"
      ],
      "type": "string"
    },
    "microsoft.graph.todoTask": {
      "allOf": [
        {
          "$ref": "#/$defs/microsoft.graph.entity"
        },
        {
          "title": "todoTask",
          "type": "object",
          "properties": {
            "body": {
              "$ref": "#/$defs/microsoft.graph.itemBody"
            },
            "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": {
              "$ref": "#/$defs/microsoft.graph.dateTimeTimeZone"
            },
            "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": {
              "$ref": "#/$defs/microsoft.graph.dateTimeTimeZone"
            },
            "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": {
              "$ref": "#/$defs/microsoft.graph.patternedRecurrence"
            },
            "reminderDateTime": {
              "$ref": "#/$defs/microsoft.graph.dateTimeTimeZone"
            },
            "startDateTime": {
              "$ref": "#/$defs/microsoft.graph.dateTimeTimeZone"
            },
            "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
            }
          },
          "additionalProperties": {
            "type": "object"
          }
        }
      ]
    },
    "microsoft.graph.weekIndex": {
      "title": "weekIndex",
      "enum": [
        "first",
        "second",
        "third",
        "fourth",
        "last"
      ],
      "type": "string"
    },
    "microsoft.graph.wellknownListName": {
      "title": "wellknownListName",
      "enum": [
        "none",
        "defaultList",
        "flaggedEmails",
        "unknownFutureValue"
      ],
      "type": "string"
    }
  }
}