Update plannerplandetails
Article
01/18/2023
4 minutes to read
11 contributors
Feedback
In this article
Namespace: microsoft.graph
Update the properties of plannerplandetails object.
Permissions
One of the following permissions is required to call this API. To learn more, including how to choose permissions, see Permissions .
Permission type
Permissions (from least to most privileged)
Delegated (work or school account)
Tasks.ReadWrite, Group.ReadWrite.All
Delegated (personal Microsoft account)
Not supported.
Application
Tasks.ReadWrite.All
HTTP request
PATCH /planner/plans/{id}/details
Name
Description
Authorization
Bearer {token}. Required.
If-Match
Last known ETag value for the plannerPlanDetails to be updated. Required.
Request body
In the request body, supply the values for relevant fields that should be updated. Existing properties that are not included in the request body will maintain their previous values or be recalculated based on changes to other property values. For best performance you shouldn't include existing values that haven't changed.
Property
Type
Description
categoryDescriptions
plannerCategoryDescriptions
An object that specifies the descriptions of the six categories that can be associated with tasks in the plan
sharedWith
plannerUserIds
Set of user ids that this plan is shared with. If you are leveraging Microsoft 365 groups, use the Groups API to manage group membership to share the group's plan. You can also add existing members of the group to this collection though it is not required for them to access the plan owned by the group.
Response
If successful, this method returns 204 No Content
response and empty content. If the request specifies Prefer
header with return=representation
preference, then this method returns a 200 OK
response code and updated plannerPlanDetails 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
Here is an example of the request.
PATCH https://graph.microsoft.com/v1.0/planner/plans/{plan-id}/details
Content-type: application/json
Prefer: return=representation
If-Match: W/"JzEtVGFzayAgQEBAQEBAQEBAQEBAQEBAWCc="
{
"sharedWith": {
"6463a5ce-2119-4198-9f2a-628761df4a62" : true,
"d95e6152-f683-4d78-9ff5-67ad180fea4a" : false,
},
"categoryDescriptions": {
"category1": "Indoors",
"category3": null,
}
}
var graphClient = new GraphServiceClient(requestAdapter);
var requestBody = new PlannerPlanDetails
{
SharedWith = new PlannerUserIds
{
AdditionalData = new Dictionary<string, object>
{
{
"6463a5ce-2119-4198-9f2a-628761df4a62" , true
},
{
"d95e6152-f683-4d78-9ff5-67ad180fea4a" , false
},
},
},
CategoryDescriptions = new PlannerCategoryDescriptions
{
Category1 = "Indoors",
Category3 = null,
},
};
var result = await graphClient.Planner.Plans["{plannerPlan-id}"].Details.PatchAsync(requestBody, (requestConfiguration) =>
{
requestConfiguration.Headers.Add("Prefer", "return=representation");
requestConfiguration.Headers.Add("If-Match", "W/\"JzEtVGFzayAgQEBAQEBAQEBAQEBAQEBAWCc=\"");
});
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
const options = {
authProvider,
};
const client = Client.init(options);
const plannerPlanDetails = {
sharedWith: {
'6463a5ce-2119-4198-9f2a-628761df4a62': true,
'd95e6152-f683-4d78-9ff5-67ad180fea4a': false,
},
categoryDescriptions: {
category1: 'Indoors',
category3: null,
}
};
await client.api('/planner/plans/{plan-id}/details')
.update(plannerPlanDetails);
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
LinkedList<Option> requestOptions = new LinkedList<Option>();
requestOptions.add(new HeaderOption("Prefer", "return=representation"));
requestOptions.add(new HeaderOption("If-Match", "W/\"JzEtVGFzayAgQEBAQEBAQEBAQEBAQEBAWCc=\""));
PlannerPlanDetails plannerPlanDetails = new PlannerPlanDetails();
PlannerUserIds sharedWith = new PlannerUserIds();
sharedWith.6463a5ce-2119-4198-9f2a-628761df4a62 = true;
sharedWith.d95e6152-f683-4d78-9ff5-67ad180fea4a = false;
plannerPlanDetails.sharedWith = sharedWith;
PlannerCategoryDescriptions categoryDescriptions = new PlannerCategoryDescriptions();
categoryDescriptions.category1 = "Indoors";
categoryDescriptions.category3 = null;
plannerPlanDetails.categoryDescriptions = categoryDescriptions;
graphClient.planner().plans("{plan-id}").details()
.buildRequest( requestOptions )
.patch(plannerPlanDetails);
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
import (
"context"
abstractions "github.com/microsoft/kiota-abstractions-go"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
graphconfig "github.com/microsoftgraph/msgraph-sdk-go/planner"
//other-imports
)
graphClient := msgraphsdk.NewGraphServiceClientWithCredentials(cred, scopes)
headers := abstractions.NewRequestHeaders()
headers.Add("Prefer", "return=representation")
headers.Add("If-Match", "W/\"JzEtVGFzayAgQEBAQEBAQEBAQEBAQEBAWCc=\"")
configuration := &graphconfig.PlannerPlanItemDetailsRequestBuilderPatchRequestConfiguration{
Headers: headers,
}
requestBody := graphmodels.NewPlannerPlanDetails()
sharedWith := graphmodels.NewPlannerUserIds()
additionalData := map[string]interface{}{
"6463a5ce-2119-4198-9f2a-628761df4a62" := true
sharedWith.Set"6463a5ce-2119-4198-9f2a-628761df4a62"(&"6463a5ce-2119-4198-9f2a-628761df4a62")
"d95e6152-f683-4d78-9ff5-67ad180fea4a" := false
sharedWith.Set"d95e6152-f683-4d78-9ff5-67ad180fea4a"(&"d95e6152-f683-4d78-9ff5-67ad180fea4a")
}
sharedWith.SetAdditionalData(additionalData)
requestBody.SetSharedWith(sharedWith)
categoryDescriptions := graphmodels.NewPlannerCategoryDescriptions()
category1 := "Indoors"
categoryDescriptions.SetCategory1(&category1)
category3 := null
categoryDescriptions.SetCategory3(&category3)
requestBody.SetCategoryDescriptions(categoryDescriptions)
result, err := graphClient.Planner().PlansById("plannerPlan-id").Details().Patch(context.Background(), requestBody, configuration)
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
Import-Module Microsoft.Graph.Planner
$params = @{
SharedWith = @{
"6463a5ce-2119-4198-9f2a-628761df4a62" = $true
"D95e6152-f683-4d78-9ff5-67ad180fea4a" = $false
}
CategoryDescriptions = @{
Category1 = "Indoors"
Category3 = $null
}
}
Update-MgPlannerPlanDetail -PlannerPlanId $plannerPlanId -BodyParameter $params-If-Match W/"JzEtVGFzayAgQEBAQEBAQEBAQEBAQEBAWCc="
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
<?php
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestBody = new PlannerPlanDetails();
$sharedWith = new PlannerUserIds();
$additionalData = [
'6463a5ce-2119-4198-9f2a-628761df4a62' => true,
'd95e6152-f683-4d78-9ff5-67ad180fea4a' => false,
];
$sharedWith->setAdditionalData($additionalData);
$requestBody->setSharedWith($sharedWith);
$categoryDescriptions = new PlannerCategoryDescriptions();
$categoryDescriptions->setCategory1('Indoors');
$CategoryDescriptions->setCategory3(null);
$requestBody->setCategoryDescriptions($categoryDescriptions);
$requestConfiguration = new DetailsRequestBuilderPatchRequestConfiguration();
$headers = [
'Prefer' => 'return=representation',
'If-Match' => 'W/"JzEtVGFzayAgQEBAQEBAQEBAQEBAQEBAWCc="',
];
$requestConfiguration->headers = $headers;
$requestResult = $graphServiceClient->planner()->plansById('plannerPlan-id')->details()->patch($requestBody, $requestConfiguration);
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
Response
Here is an example of the response. Note: The response object shown here might be shortened for readability.
HTTP/1.1 200 OK
Content-type: application/json
{
"sharedWith": {
"aaa27244-1db4-476a-a5cb-004607466324" : true,
"6463a5ce-2119-4198-9f2a-628761df4a62" : true
},
"categoryDescriptions": {
"category1": "Indoors",
"category2": "Outdoors",
"category3": null,
"category4": null,
"category5": "Needs materials",
"category6": "Needs equipment",
"category7": "Description of category 7",
"category8": "Description of category 8",
"category9": "Description of category 9",
"category10": "Description of category 10",
"category11": "Description of category 11",
"category12": "Description of category 12",
"category13": "Description of category 13",
"category14": "Description of category 14",
"category15": "Description of category 15",
"category16": "Description of category 16",
"category17": "Description of category 17",
"category18": "Description of category 18",
"category19": "Description of category 19",
"category20": "Description of category 20",
"category21": "Description of category 21",
"category22": "Description of category 22",
"category23": "Description of category 23",
"category24": "Description of category 24",
"category25": "Description of category 25"
},
"id": "xqQg5FS2LkCp935s-FIFm2QAFkHM"
}