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. |
JSON Schema
{
"$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
}
]
}