Microsoft Planner · Schema

Microsoft Planner Task

Represents a Planner task in Microsoft 365 as defined by the Microsoft Graph API v1.0. A task is contained in a plannerPlan and can be assigned to a plannerBucket within the plan. Each task can be assigned to users, categorized, and tracked for completion.

CollaborationMicrosoft 365ProductivityProject ManagementTask Management

Properties

Name Type Description
@odata.etag string The ETag of the resource, used for optimistic concurrency control via the If-Match header on PATCH and DELETE operations.
id string Read-only unique identifier of the task. It is 28 characters long and case-sensitive. Format validation is performed by the service.
title string Title of the task.
planId string The ID of the plan to which the task belongs. Tasks cannot be created without specifying a plan.
bucketId stringnull The ID of the bucket to which the task belongs. The bucket must be in the same plan as the task. It is 28 characters long and case-sensitive.
assignments object The set of assignees the task is assigned to. Each key is the user ID of the assignee.
appliedCategories object The categories (labels) applied to the task. Category names are defined on the plan details.
priority integer Priority of the task. Valid range is 0-10, with 0 being highest priority. Values 0-1 map to 'urgent', 2-4 to 'important', 5-7 to 'medium', and 8-10 to 'low'. Planner sets 1 for urgent, 3 for important
percentComplete integer Percentage of task completion. When set to 100, the task is considered completed.
startDateTime stringnull Date and time at which the task starts. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time.
dueDateTime stringnull Date and time at which the task is due. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time.
completedDateTime stringnull Read-only. Date and time at which the percentComplete of the task was set to 100. ISO 8601 format, always in UTC.
completedBy object Read-only. Identity of the user that completed the task.
createdDateTime string Read-only. Date and time at which the task was created. ISO 8601 format, always in UTC.
createdBy object Read-only. Identity of the user that created the task.
hasDescription boolean Read-only. True if the details object of the task has a nonempty description, false otherwise.
conversationThreadId stringnull Thread ID of the conversation on the task. This is the ID of the conversation thread object created in the group.
orderHint string Hint used to order items of this type in a list view. The format is defined by the Planner order hints specification.
assigneePriority string Hint used to order items of this type in a list view when grouped by the user assigned to.
previewType string The type of preview that shows up on the task.
activeChecklistItemCount integer Read-only. Number of checklist items with value set to false, representing incomplete items.
checklistItemCount integer Read-only. Total number of checklist items present on the task.
referenceCount integer Read-only. Number of external references that exist on the task.
View JSON Schema on GitHub

JSON Schema

microsoft-planner-task-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://schema.example.com/microsoft-planner/task",
  "title": "Microsoft Planner Task",
  "description": "Represents a Planner task in Microsoft 365 as defined by the Microsoft Graph API v1.0. A task is contained in a plannerPlan and can be assigned to a plannerBucket within the plan. Each task can be assigned to users, categorized, and tracked for completion.",
  "type": "object",
  "required": [
    "planId",
    "title"
  ],
  "properties": {
    "@odata.etag": {
      "type": "string",
      "description": "The ETag of the resource, used for optimistic concurrency control via the If-Match header on PATCH and DELETE operations.",
      "readOnly": true
    },
    "id": {
      "type": "string",
      "description": "Read-only unique identifier of the task. It is 28 characters long and case-sensitive. Format validation is performed by the service.",
      "readOnly": true,
      "minLength": 28,
      "maxLength": 28
    },
    "title": {
      "type": "string",
      "description": "Title of the task.",
      "minLength": 1
    },
    "planId": {
      "type": "string",
      "description": "The ID of the plan to which the task belongs. Tasks cannot be created without specifying a plan.",
      "minLength": 28,
      "maxLength": 28
    },
    "bucketId": {
      "type": ["string", "null"],
      "description": "The ID of the bucket to which the task belongs. The bucket must be in the same plan as the task. It is 28 characters long and case-sensitive.",
      "minLength": 28,
      "maxLength": 28
    },
    "title": {
      "type": "string",
      "description": "Title of the task."
    },
    "assignments": {
      "$ref": "#/$defs/plannerAssignments",
      "description": "The set of assignees the task is assigned to. Each key is the user ID of the assignee."
    },
    "appliedCategories": {
      "$ref": "#/$defs/plannerAppliedCategories",
      "description": "The categories (labels) applied to the task. Category names are defined on the plan details."
    },
    "priority": {
      "type": "integer",
      "description": "Priority of the task. Valid range is 0-10, with 0 being highest priority. Values 0-1 map to 'urgent', 2-4 to 'important', 5-7 to 'medium', and 8-10 to 'low'. Planner sets 1 for urgent, 3 for important, 5 for medium, and 9 for low.",
      "minimum": 0,
      "maximum": 10,
      "default": 5
    },
    "percentComplete": {
      "type": "integer",
      "description": "Percentage of task completion. When set to 100, the task is considered completed.",
      "minimum": 0,
      "maximum": 100,
      "default": 0
    },
    "startDateTime": {
      "type": ["string", "null"],
      "format": "date-time",
      "description": "Date and time at which the task starts. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time."
    },
    "dueDateTime": {
      "type": ["string", "null"],
      "format": "date-time",
      "description": "Date and time at which the task is due. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time."
    },
    "completedDateTime": {
      "type": ["string", "null"],
      "format": "date-time",
      "description": "Read-only. Date and time at which the percentComplete of the task was set to 100. ISO 8601 format, always in UTC.",
      "readOnly": true
    },
    "completedBy": {
      "$ref": "#/$defs/identitySet",
      "description": "Read-only. Identity of the user that completed the task.",
      "readOnly": true
    },
    "createdDateTime": {
      "type": "string",
      "format": "date-time",
      "description": "Read-only. Date and time at which the task was created. ISO 8601 format, always in UTC.",
      "readOnly": true
    },
    "createdBy": {
      "$ref": "#/$defs/identitySet",
      "description": "Read-only. Identity of the user that created the task.",
      "readOnly": true
    },
    "hasDescription": {
      "type": "boolean",
      "description": "Read-only. True if the details object of the task has a nonempty description, false otherwise.",
      "readOnly": true
    },
    "conversationThreadId": {
      "type": ["string", "null"],
      "description": "Thread ID of the conversation on the task. This is the ID of the conversation thread object created in the group."
    },
    "orderHint": {
      "type": "string",
      "description": "Hint used to order items of this type in a list view. The format is defined by the Planner order hints specification."
    },
    "assigneePriority": {
      "type": "string",
      "description": "Hint used to order items of this type in a list view when grouped by the user assigned to."
    },
    "previewType": {
      "type": "string",
      "description": "The type of preview that shows up on the task.",
      "enum": [
        "automatic",
        "noPreview",
        "checklist",
        "description",
        "reference"
      ],
      "default": "automatic"
    },
    "activeChecklistItemCount": {
      "type": "integer",
      "description": "Read-only. Number of checklist items with value set to false, representing incomplete items.",
      "readOnly": true,
      "minimum": 0
    },
    "checklistItemCount": {
      "type": "integer",
      "description": "Read-only. Total number of checklist items present on the task.",
      "readOnly": true,
      "minimum": 0
    },
    "referenceCount": {
      "type": "integer",
      "description": "Read-only. Number of external references that exist on the task.",
      "readOnly": true,
      "minimum": 0
    }
  },
  "$defs": {
    "identitySet": {
      "type": "object",
      "description": "A set of identities associated with various events for a resource, such as created by or last modified by.",
      "properties": {
        "application": {
          "$ref": "#/$defs/identity"
        },
        "device": {
          "$ref": "#/$defs/identity"
        },
        "user": {
          "$ref": "#/$defs/identity"
        }
      },
      "additionalProperties": false
    },
    "identity": {
      "type": "object",
      "description": "Represents an identity of an actor (user, application, or device).",
      "properties": {
        "displayName": {
          "type": ["string", "null"],
          "description": "The display name of the identity."
        },
        "id": {
          "type": ["string", "null"],
          "description": "The unique identifier of the identity."
        }
      },
      "additionalProperties": false
    },
    "plannerAssignments": {
      "type": "object",
      "description": "The set of user assignments for a task. Each property name (key) is the user ID of the assignee, and the value is a plannerAssignment object.",
      "additionalProperties": {
        "$ref": "#/$defs/plannerAssignment"
      }
    },
    "plannerAssignment": {
      "type": "object",
      "description": "Represents the assignment of a task to a user.",
      "properties": {
        "@odata.type": {
          "type": "string",
          "const": "microsoft.graph.plannerAssignment"
        },
        "assignedBy": {
          "$ref": "#/$defs/identitySet",
          "description": "The identity of the user that performed the assignment of the task.",
          "readOnly": true
        },
        "assignedDateTime": {
          "type": "string",
          "format": "date-time",
          "description": "The time at which the task was assigned. ISO 8601 format, always in UTC.",
          "readOnly": true
        },
        "orderHint": {
          "type": "string",
          "description": "Hint used to order assignees in a task."
        }
      },
      "required": [
        "@odata.type",
        "orderHint"
      ],
      "additionalProperties": false
    },
    "plannerAppliedCategories": {
      "type": "object",
      "description": "The categories (labels) applied to a task. Up to 25 categories can be defined per plan. Each property name is a category identifier (category1 through category25) and the value is a boolean indicating whether the category is applied.",
      "properties": {
        "category1": { "type": "boolean" },
        "category2": { "type": "boolean" },
        "category3": { "type": "boolean" },
        "category4": { "type": "boolean" },
        "category5": { "type": "boolean" },
        "category6": { "type": "boolean" },
        "category7": { "type": "boolean" },
        "category8": { "type": "boolean" },
        "category9": { "type": "boolean" },
        "category10": { "type": "boolean" },
        "category11": { "type": "boolean" },
        "category12": { "type": "boolean" },
        "category13": { "type": "boolean" },
        "category14": { "type": "boolean" },
        "category15": { "type": "boolean" },
        "category16": { "type": "boolean" },
        "category17": { "type": "boolean" },
        "category18": { "type": "boolean" },
        "category19": { "type": "boolean" },
        "category20": { "type": "boolean" },
        "category21": { "type": "boolean" },
        "category22": { "type": "boolean" },
        "category23": { "type": "boolean" },
        "category24": { "type": "boolean" },
        "category25": { "type": "boolean" }
      },
      "additionalProperties": false
    },
    "plannerTaskDetails": {
      "type": "object",
      "description": "Represents the additional information about a task, retrieved via the /details relationship. Includes description, checklist items, and external references.",
      "properties": {
        "@odata.etag": {
          "type": "string",
          "description": "The ETag of the resource.",
          "readOnly": true
        },
        "id": {
          "type": "string",
          "description": "Read-only. The unique identifier for the task details. 28 characters long and case-sensitive.",
          "readOnly": true
        },
        "description": {
          "type": "string",
          "description": "Description of the task."
        },
        "checklist": {
          "$ref": "#/$defs/plannerChecklistItems",
          "description": "The collection of checklist items on the task."
        },
        "references": {
          "$ref": "#/$defs/plannerExternalReferences",
          "description": "The collection of external references on the task."
        },
        "previewType": {
          "type": "string",
          "description": "The type of preview that shows up on the task. When set to automatic, the displayed preview is chosen by the app viewing the task.",
          "enum": [
            "automatic",
            "noPreview",
            "checklist",
            "description",
            "reference"
          ]
        }
      },
      "additionalProperties": false
    },
    "plannerChecklistItems": {
      "type": "object",
      "description": "A collection of checklist items on a task. Each key is a GUID identifying the checklist item.",
      "additionalProperties": {
        "$ref": "#/$defs/plannerChecklistItem"
      }
    },
    "plannerChecklistItem": {
      "type": "object",
      "description": "Represents a single checklist item on a Planner task.",
      "properties": {
        "@odata.type": {
          "type": "string",
          "const": "microsoft.graph.plannerChecklistItem"
        },
        "isChecked": {
          "type": "boolean",
          "description": "Whether the checklist item is checked (completed).",
          "default": false
        },
        "lastModifiedBy": {
          "$ref": "#/$defs/identitySet",
          "description": "Identity of the user that last modified the checklist item.",
          "readOnly": true
        },
        "lastModifiedDateTime": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time the item was last modified. ISO 8601 format, always in UTC.",
          "readOnly": true
        },
        "orderHint": {
          "type": "string",
          "description": "Hint used to order items in the checklist."
        },
        "title": {
          "type": "string",
          "description": "Title of the checklist item."
        }
      },
      "required": ["title"],
      "additionalProperties": false
    },
    "plannerExternalReferences": {
      "type": "object",
      "description": "A collection of external references on a task. Each key is a URL-encoded URL of the reference.",
      "additionalProperties": {
        "$ref": "#/$defs/plannerExternalReference"
      }
    },
    "plannerExternalReference": {
      "type": "object",
      "description": "Represents an external reference (link or file) attached to a Planner task.",
      "properties": {
        "@odata.type": {
          "type": "string",
          "const": "microsoft.graph.plannerExternalReference"
        },
        "alias": {
          "type": "string",
          "description": "A name alias to describe the reference."
        },
        "lastModifiedBy": {
          "$ref": "#/$defs/identitySet",
          "description": "Identity of the user that last modified the reference.",
          "readOnly": true
        },
        "lastModifiedDateTime": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time the reference was last modified. ISO 8601 format, always in UTC.",
          "readOnly": true
        },
        "previewPriority": {
          "type": "string",
          "description": "Hint used to set the relative priority order in which the reference will be shown as a preview on the task."
        },
        "type": {
          "type": "string",
          "description": "The type of the reference, used to represent the type of resource (e.g., PowerPoint, Word, Excel, Other)."
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": true,
  "examples": [
    {
      "id": "ABCDEFGHIJKLMNOPQRSTUVWXYZab",
      "title": "Review project requirements",
      "planId": "ABCDEFGHIJKLMNOPQRSTUVWXYZab",
      "bucketId": "ABCDEFGHIJKLMNOPQRSTUVWXYZab",
      "assignments": {
        "user-id-1": {
          "@odata.type": "microsoft.graph.plannerAssignment",
          "orderHint": "8586352891559904378"
        }
      },
      "appliedCategories": {
        "category1": true,
        "category3": true
      },
      "priority": 3,
      "percentComplete": 50,
      "startDateTime": "2026-03-01T09:00:00Z",
      "dueDateTime": "2026-03-15T17:00:00Z",
      "completedDateTime": null,
      "createdDateTime": "2026-02-28T12:00:00Z",
      "hasDescription": true,
      "previewType": "automatic",
      "activeChecklistItemCount": 2,
      "checklistItemCount": 5,
      "referenceCount": 1
    }
  ]
}