Microsoft Graph to Do Tasks API

The Microsoft Graph To Do Tasks API provides access to Microsoft To Do task lists and tasks. Developers can create, read, update, and delete task lists and individual tasks, manage task completion status, set due dates and reminders, add file attachments, and organize tasks with linked resources across Microsoft 365.

OpenAPI Specification

microsoft-to-do-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Microsoft To Do API (Microsoft Graph)
  description: >-
    Minimal OpenAPI definition for the Microsoft To Do API exposed via
    Microsoft Graph for managing task lists, tasks, checklist items, and
    linked resources.
  version: v1.0
  x-generated-from: https://learn.microsoft.com/en-us/graph/api/resources/todo-overview
  x-generated-by: claude-crawl-2026-05-08
servers:
  - url: https://graph.microsoft.com/v1.0
    description: Microsoft Graph v1.0
security:
  - bearerAuth: []
tags:
  - name: TaskLists
  - name: Tasks
  - name: ChecklistItems
  - name: LinkedResources
paths:
  /me/todo/lists:
    get:
      tags: [TaskLists]
      summary: List todoTaskLists
      operationId: listTodoTaskLists
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericList'
    post:
      tags: [TaskLists]
      summary: Create todoTaskList
      operationId: createTodoTaskList
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericObject'
      responses:
        '201':
          description: Created
  /me/todo/lists/{todoTaskListId}:
    parameters:
      - $ref: '#/components/parameters/TaskListId'
    get:
      tags: [TaskLists]
      summary: Get todoTaskList
      operationId: getTodoTaskList
      responses:
        '200':
          description: OK
    patch:
      tags: [TaskLists]
      summary: Update todoTaskList
      operationId: updateTodoTaskList
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericObject'
      responses:
        '200':
          description: OK
    delete:
      tags: [TaskLists]
      summary: Delete todoTaskList
      operationId: deleteTodoTaskList
      responses:
        '204':
          description: No Content
  /me/todo/lists/{todoTaskListId}/tasks:
    parameters:
      - $ref: '#/components/parameters/TaskListId'
    get:
      tags: [Tasks]
      summary: List todoTasks in list
      operationId: listTodoTasks
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericList'
    post:
      tags: [Tasks]
      summary: Create todoTask
      operationId: createTodoTask
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericObject'
      responses:
        '201':
          description: Created
  /me/todo/lists/{todoTaskListId}/tasks/{todoTaskId}:
    parameters:
      - $ref: '#/components/parameters/TaskListId'
      - $ref: '#/components/parameters/TaskId'
    get:
      tags: [Tasks]
      summary: Get todoTask
      operationId: getTodoTask
      responses:
        '200':
          description: OK
    patch:
      tags: [Tasks]
      summary: Update todoTask
      operationId: updateTodoTask
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericObject'
      responses:
        '200':
          description: OK
    delete:
      tags: [Tasks]
      summary: Delete todoTask
      operationId: deleteTodoTask
      responses:
        '204':
          description: No Content
  /me/todo/lists/{todoTaskListId}/tasks/{todoTaskId}/checklistItems:
    parameters:
      - $ref: '#/components/parameters/TaskListId'
      - $ref: '#/components/parameters/TaskId'
    get:
      tags: [ChecklistItems]
      summary: List checklist items
      operationId: listChecklistItems
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericList'
    post:
      tags: [ChecklistItems]
      summary: Create checklist item
      operationId: createChecklistItem
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericObject'
      responses:
        '201':
          description: Created
  /me/todo/lists/{todoTaskListId}/tasks/{todoTaskId}/checklistItems/{checklistItemId}:
    parameters:
      - $ref: '#/components/parameters/TaskListId'
      - $ref: '#/components/parameters/TaskId'
      - in: path
        name: checklistItemId
        required: true
        schema: { type: string }
    get:
      tags: [ChecklistItems]
      summary: Get checklist item
      operationId: getChecklistItem
      responses:
        '200':
          description: OK
    patch:
      tags: [ChecklistItems]
      summary: Update checklist item
      operationId: updateChecklistItem
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericObject'
      responses:
        '200':
          description: OK
    delete:
      tags: [ChecklistItems]
      summary: Delete checklist item
      operationId: deleteChecklistItem
      responses:
        '204':
          description: No Content
  /me/todo/lists/{todoTaskListId}/tasks/{todoTaskId}/linkedResources:
    parameters:
      - $ref: '#/components/parameters/TaskListId'
      - $ref: '#/components/parameters/TaskId'
    get:
      tags: [LinkedResources]
      summary: List linked resources
      operationId: listLinkedResources
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericList'
    post:
      tags: [LinkedResources]
      summary: Create linked resource
      operationId: createLinkedResource
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericObject'
      responses:
        '201':
          description: Created
  /me/todo/lists/{todoTaskListId}/tasks/delta:
    parameters:
      - $ref: '#/components/parameters/TaskListId'
    get:
      tags: [Tasks]
      summary: Delta query of todoTasks in list
      operationId: deltaTodoTasks
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericList'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
  parameters:
    TaskListId:
      in: path
      name: todoTaskListId
      required: true
      schema: { type: string }
    TaskId:
      in: path
      name: todoTaskId
      required: true
      schema: { type: string }
  schemas:
    GenericObject:
      type: object
      additionalProperties: true
    GenericList:
      type: object
      properties:
        value:
          type: array
          items:
            $ref: '#/components/schemas/GenericObject'
      additionalProperties: true