Namespace: microsoft.graph
Important
APIs under the /beta
version in Microsoft Graph are subject to change. Use of these APIs in production applications is not supported. To determine whether an API is available in v1.0, use the Version selector.
Update the properties of plannertask object.
This API is available in the following national cloud deployments.
Global service |
US Government L4 |
US Government L5 (DOD) |
China operated by 21Vianet |
✅ |
✅ |
✅ |
❌ |
Permissions
Choose the permission or permissions marked as least privileged for this API. Use a higher privileged permission or permissions only if your app requires it. For details about delegated and application permissions, see Permission types. To learn more about these permissions, see the permissions reference.
Permission type |
Least privileged permissions |
Higher privileged permissions |
Delegated (work or school account) |
Tasks.ReadWrite |
Group.ReadWrite.All |
Delegated (personal Microsoft account) |
Not supported. |
Not supported. |
Application |
Tasks.ReadWrite.All |
Not available. |
HTTP request
PATCH /planner/tasks/{id}
Name |
Description |
Authorization |
Bearer {token}. Required. Learn more about authentication and authorization. |
If-Match |
Last known ETag value for the plannerTask to be updated. Required. |
Request body
In the request body, supply only the values for properties to update. Existing properties that aren't included in the request body maintain their previous values or are recalculated based on changes to other property values.
The following table specifies the properties that can be updated.
Property |
Type |
Description |
appliedCategories |
plannerAppliedCategories |
Specifies the categories to which the Planner task was applied. See applied Categories for possible values. |
assigneePriority |
String |
Hint used to order items of this type in a list view. The format is defined in Using order hints in Planner. |
assignments |
plannerAssignments |
The set of users the task is assigned to. |
bucketId |
String |
Bucket ID to which the task belongs. The bucket needs to be in the plan that the task is in. This value 28 characters long and case-sensitive. Format validation is done on the service. |
conversationThreadId |
String |
Thread ID of the conversation on the task and is the ID of the conversation thread object created in the group. |
dueDateTime |
DateTimeOffset |
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. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z |
isOnMyDay |
Boolean |
Indicates whether to show this task in the MyDay view. If true , it shows the task. |
orderHint |
String |
Hint used to order items of this type in a list view. The format is defined as outlined here. |
percentComplete |
Int32 |
Percentage of task completion. When set to 100 , the task is considered completed. |
planId |
String |
Plan ID to which the task belongs. |
priority |
Int32 |
Priority of the task. Valid range of values is between 0 and 10 (inclusive), with increasing value being lower priority (0 has the highest priority and 10 has the lowest priority). Currently, Planner interprets values 0 and 1 as "urgent", 2 and 3 and 4 as "important", 5 , 6 , and 7 as "medium", and 8 , 9 , and 10 as "low". Currently, Planner sets the value 1 for "urgent", 3 for "important", 5 for "medium", and 9 for "low". |
recurrence |
plannerTaskRecurrence |
The recurrence for the task, if defined. Optional. |
startDateTime |
DateTimeOffset |
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. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z . |
title |
String |
Title of the task. |
Note
For Project tasks that are replicated to Planner, only the percentComplete property can be updated.
Response
If successful, this method returns a 204 No Content
response code and an empty content. If the request specifies the Prefer
header with a return=representation
preference, this method returns a 200 OK
response code and an updated plannerTask object in the response body.
This method can return any of the HTTP status codes. The most common errors that apps should handle for this method are the 400, 403, 404, 409, and 412 responses. For more information about these errors, see Common Planner error conditions.
Example
Request
The following example shows a request.
PATCH https://graph.microsoft.com/beta/planner/tasks/01gzSlKkIUSUl6DF_EilrmQAKDhh
Content-type: application/json
Prefer: return=representation
If-Match: W/"JzEtVGFzayAgQEBAQEBAQEBAQEBAQEBAWCc="
{
"assignments": {
"fbab97d0-4932-4511-b675-204639209557": {
"@odata.type": "#microsoft.graph.plannerAssignment",
"orderHint": "N9917 U2883!"
}
},
"appliedCategories": {
"category3": true,
"category4": false
},
"recurrence": {
"schedule": {
"pattern": {
"type": "daily",
"interval": 3
},
"patternStartDateTime": "2022-02-22T02:10:33Z"
}
}
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new PlannerTask
{
Assignments = new PlannerAssignments
{
AdditionalData = new Dictionary<string, object>
{
{
"fbab97d0-4932-4511-b675-204639209557" , new PlannerAssignment
{
OdataType = "#microsoft.graph.plannerAssignment",
OrderHint = "N9917 U2883!",
}
},
},
},
AppliedCategories = new PlannerAppliedCategories
{
AdditionalData = new Dictionary<string, object>
{
{
"category3" , true
},
{
"category4" , false
},
},
},
Recurrence = new PlannerTaskRecurrence
{
Schedule = new PlannerRecurrenceSchedule
{
Pattern = new RecurrencePattern
{
Type = RecurrencePatternType.Daily,
Interval = 3,
},
PatternStartDateTime = DateTimeOffset.Parse("2022-02-22T02:10:33Z"),
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Planner.Tasks["{plannerTask-id}"].PatchAsync(requestBody, (requestConfiguration) =>
{
requestConfiguration.Headers.Add("Prefer", "return=representation");
requestConfiguration.Headers.Add("If-Match", "W/\"JzEtVGFzayAgQEBAQEBAQEBAQEBAQEBAWCc=\"");
});
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
abstractions "github.com/microsoft/kiota-abstractions-go"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
graphplanner "github.com/microsoftgraph/msgraph-beta-sdk-go/planner"
//other-imports
)
headers := abstractions.NewRequestHeaders()
headers.Add("Prefer", "return=representation")
headers.Add("If-Match", "W/\"JzEtVGFzayAgQEBAQEBAQEBAQEBAQEBAWCc=\"")
configuration := &graphplanner.TasksItemRequestBuilderPatchRequestConfiguration{
Headers: headers,
}
requestBody := graphmodels.NewPlannerTask()
assignments := graphmodels.NewPlannerAssignments()
additionalData := map[string]interface{}{
"fbab97d0-4932-4511-b675-204639209557" := graphmodels.NewPlannerAssignment()
orderHint := "N9917 U2883!"
"fbab97d0-4932-4511-b675-204639209557".SetOrderHint(&orderHint)
assignments.Set"fbab97d0-4932-4511-b675-204639209557"("fbab97d0-4932-4511-b675-204639209557")
}
assignments.SetAdditionalData(additionalData)
requestBody.SetAssignments(assignments)
appliedCategories := graphmodels.NewPlannerAppliedCategories()
additionalData := map[string]interface{}{
category3 := true
appliedCategories.SetCategory3(&category3)
category4 := false
appliedCategories.SetCategory4(&category4)
}
appliedCategories.SetAdditionalData(additionalData)
requestBody.SetAppliedCategories(appliedCategories)
recurrence := graphmodels.NewPlannerTaskRecurrence()
schedule := graphmodels.NewPlannerRecurrenceSchedule()
pattern := graphmodels.NewRecurrencePattern()
type := graphmodels.DAILY_RECURRENCEPATTERNTYPE
pattern.SetType(&type)
interval := int32(3)
pattern.SetInterval(&interval)
schedule.SetPattern(pattern)
patternStartDateTime , err := time.Parse(time.RFC3339, "2022-02-22T02:10:33Z")
schedule.SetPatternStartDateTime(&patternStartDateTime)
recurrence.SetSchedule(schedule)
requestBody.SetRecurrence(recurrence)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
tasks, err := graphClient.Planner().Tasks().ByPlannerTaskId("plannerTask-id").Patch(context.Background(), requestBody, configuration)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
PlannerTask plannerTask = new PlannerTask();
PlannerAssignments assignments = new PlannerAssignments();
HashMap<String, Object> additionalData = new HashMap<String, Object>();
PlannerAssignment fbab97d049324511B675204639209557 = new PlannerAssignment();
fbab97d049324511B675204639209557.setOdataType("#microsoft.graph.plannerAssignment");
fbab97d049324511B675204639209557.setOrderHint("N9917 U2883!");
additionalData.put("fbab97d0-4932-4511-b675-204639209557", fbab97d049324511B675204639209557);
assignments.setAdditionalData(additionalData);
plannerTask.setAssignments(assignments);
PlannerAppliedCategories appliedCategories = new PlannerAppliedCategories();
HashMap<String, Object> additionalData1 = new HashMap<String, Object>();
additionalData1.put("category3", true);
additionalData1.put("category4", false);
appliedCategories.setAdditionalData(additionalData1);
plannerTask.setAppliedCategories(appliedCategories);
PlannerTaskRecurrence recurrence = new PlannerTaskRecurrence();
PlannerRecurrenceSchedule schedule = new PlannerRecurrenceSchedule();
RecurrencePattern pattern = new RecurrencePattern();
pattern.setType(RecurrencePatternType.Daily);
pattern.setInterval(3);
schedule.setPattern(pattern);
OffsetDateTime patternStartDateTime = OffsetDateTime.parse("2022-02-22T02:10:33Z");
schedule.setPatternStartDateTime(patternStartDateTime);
recurrence.setSchedule(schedule);
plannerTask.setRecurrence(recurrence);
PlannerTask result = graphClient.planner().tasks().byPlannerTaskId("{plannerTask-id}").patch(plannerTask, requestConfiguration -> {
requestConfiguration.headers.add("Prefer", "return=representation");
requestConfiguration.headers.add("If-Match", "W/\"JzEtVGFzayAgQEBAQEBAQEBAQEBAQEBAWCc=\"");
});
const options = {
authProvider,
};
const client = Client.init(options);
const plannerTask = {
assignments: {
'fbab97d0-4932-4511-b675-204639209557': {
'@odata.type': '#microsoft.graph.plannerAssignment',
orderHint: 'N9917 U2883!'
}
},
appliedCategories: {
category3: true,
category4: false
},
recurrence: {
schedule: {
pattern: {
type: 'daily',
interval: 3
},
patternStartDateTime: '2022-02-22T02:10:33Z'
}
}
};
await client.api('/planner/tasks/01gzSlKkIUSUl6DF_EilrmQAKDhh')
.version('beta')
.update(plannerTask);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Planner\Tasks\Item\PlannerTaskItemRequestBuilderPatchRequestConfiguration;
use Microsoft\Graph\Beta\Generated\Models\PlannerTask;
use Microsoft\Graph\Beta\Generated\Models\PlannerAssignments;
use Microsoft\Graph\Beta\Generated\Models\PlannerAssignment;
use Microsoft\Graph\Beta\Generated\Models\PlannerAppliedCategories;
use Microsoft\Graph\Beta\Generated\Models\PlannerTaskRecurrence;
use Microsoft\Graph\Beta\Generated\Models\PlannerRecurrenceSchedule;
use Microsoft\Graph\Beta\Generated\Models\RecurrencePattern;
use Microsoft\Graph\Beta\Generated\Models\RecurrencePatternType;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new PlannerTask();
$assignments = new PlannerAssignments();
$additionalData = [
'fbab97d0-4932-4511-b675-204639209557' => [
'@odata.type' => '#microsoft.graph.plannerAssignment',
'orderHint' => 'N9917 U2883!',
],
];
$assignments->setAdditionalData($additionalData);
$requestBody->setAssignments($assignments);
$appliedCategories = new PlannerAppliedCategories();
$additionalData = [
'category3' => true,
'category4' => false,
];
$appliedCategories->setAdditionalData($additionalData);
$requestBody->setAppliedCategories($appliedCategories);
$recurrence = new PlannerTaskRecurrence();
$recurrenceSchedule = new PlannerRecurrenceSchedule();
$recurrenceSchedulePattern = new RecurrencePattern();
$recurrenceSchedulePattern->setType(new RecurrencePatternType('daily'));
$recurrenceSchedulePattern->setInterval(3);
$recurrenceSchedule->setPattern($recurrenceSchedulePattern);
$recurrenceSchedule->setPatternStartDateTime(new \DateTime('2022-02-22T02:10:33Z'));
$recurrence->setSchedule($recurrenceSchedule);
$requestBody->setRecurrence($recurrence);
$requestConfiguration = new PlannerTaskItemRequestBuilderPatchRequestConfiguration();
$headers = [
'Prefer' => 'return=representation',
'If-Match' => 'W/"JzEtVGFzayAgQEBAQEBAQEBAQEBAQEBAWCc="',
];
$requestConfiguration->headers = $headers;
$result = $graphServiceClient->planner()->tasks()->byPlannerTaskId('plannerTask-id')->patch($requestBody, $requestConfiguration)->wait();
Import-Module Microsoft.Graph.Beta.Planner
$params = @{
assignments = @{
"fbab97d0-4932-4511-b675-204639209557" = @{
"@odata.type" = "#microsoft.graph.plannerAssignment"
orderHint = "N9917 U2883!"
}
}
appliedCategories = @{
category3 = $true
category4 = $false
}
recurrence = @{
schedule = @{
pattern = @{
type = "daily"
interval = 3
}
patternStartDateTime = [System.DateTime]::Parse("2022-02-22T02:10:33Z")
}
}
}
Update-MgBetaPlannerTask -PlannerTaskId $plannerTaskId -BodyParameter $params -IfMatch W/'"JzEtVGFzayAgQEBAQEBAQEBAQEBAQEBAWCc="'
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.planner.tasks.item.planner_task_item_request_builder import PlannerTaskItemRequestBuilder
from kiota_abstractions.base_request_configuration import RequestConfiguration
from msgraph_beta.generated.models.planner_task import PlannerTask
from msgraph_beta.generated.models.planner_assignments import PlannerAssignments
from msgraph_beta.generated.models.planner_assignment import PlannerAssignment
from msgraph_beta.generated.models.planner_applied_categories import PlannerAppliedCategories
from msgraph_beta.generated.models.planner_task_recurrence import PlannerTaskRecurrence
from msgraph_beta.generated.models.planner_recurrence_schedule import PlannerRecurrenceSchedule
from msgraph_beta.generated.models.recurrence_pattern import RecurrencePattern
from msgraph_beta.generated.models.recurrence_pattern_type import RecurrencePatternType
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = PlannerTask(
assignments = PlannerAssignments(
additional_data = {
"fbab97d0-4932-4511-b675-204639209557" : {
"@odata_type" : "#microsoft.graph.plannerAssignment",
"order_hint" : "N9917 U2883!",
},
}
),
applied_categories = PlannerAppliedCategories(
additional_data = {
"category3" : True,
"category4" : False,
}
),
recurrence = PlannerTaskRecurrence(
schedule = PlannerRecurrenceSchedule(
pattern = RecurrencePattern(
type = RecurrencePatternType.Daily,
interval = 3,
),
pattern_start_date_time = "2022-02-22T02:10:33Z",
),
),
)
request_configuration = RequestConfiguration()
request_configuration.headers.add("Prefer", "return=representation")
request_configuration.headers.add("If-Match", "W/\"JzEtVGFzayAgQEBAQEBAQEBAQEBAQEBAWCc=\"")
result = await graph_client.planner.tasks.by_planner_task_id('plannerTask-id').patch(request_body, request_configuration = request_configuration)
Response
The following example shows the response.
Note: The response object shown here might be shortened for readability.
HTTP/1.1 200 OK
Content-type: application/json
{
"createdBy": {
"user": {
"id": "6463a5ce-2119-4198-9f2a-628761df4a62"
}
},
"planId": "xqQg5FS2LkCp935s-FIFm2QAFkHM",
"bucketId": "gcrYAaAkgU2EQUvpkNNXLGQAGTtu",
"title": "title-value",
"orderHint": "9223370609546166567W",
"assigneePriority": "90057581\"",
"createdDateTime": "2015-03-24T18:36:49.2407981Z",
"assignments": {
"6463a5ce-2119-4198-9f2a-628761df4a62": {
"@odata.type": "#microsoft.graph.plannerAssignment",
"assignedBy": {
"user": {
"id": "6463a5ce-2119-4198-9f2a-628761df4a62"
}
},
"assignedDateTime": "2015-03-25T18:38:21.956Z",
"orderHint": "N9917"
},
"fbab97d0-4932-4511-b675-204639209557": {
"@odata.type": "#microsoft.graph.plannerAssignment",
"assignedBy": {
"user": {
"id": "1e9955d2-6acd-45bf-86d3-b546fdc795eb"
}
},
"assignedDateTime": "2017-04-24T22:40:44.5665917",
"orderHint": "RWk1"
},
"aaa27244-1db4-476a-a5cb-004607466324": {
"@odata.type": "#microsoft.graph.plannerAssignment",
"assignedBy": {
"user": {
"id": "6463a5ce-2119-4198-9f2a-628761df4a62"
}
},
"assignedDateTime": "2015-03-25T18:38:21.956Z",
"orderHint": "U2883"
}
},
"appliedCategories": {
"category3": true,
"category5": true,
"category6": true
},
"id": "01gzSlKkIUSUl6DF_EilrmQAKDhh",
"recurrence": {
"@odata.type": "#microsoft.graph.plannerTaskRecurrence",
"seriesId": "qOqWwPLt4U-LIsWV5ByUuA",
"occurrenceId": 1,
"previousInSeriesTaskId": null,
"nextInSeriesTaskId": null,
"schedule": {
"@odata.type": "#microsoft.graph.plannerRecurrenceSchedule",
"pattern": {
"odata.type": "#microsoft.graph.recurrencePattern",
"type": "daily",
"interval": 3,
"firstDayOfWeek": "sunday",
"dayOfMonth": 0,
"daysOfWeek": [],
"index": "first",
"month": 0
},
"patternStartDateTime": "2022-02-22T02:10:33Z",
"nextOccurrenceDateTime": "2022-02-25T02:10:33Z"
},
"recurrenceStartDateTime": "2022-02-22T02:10:33Z"
}
}