Microsoft is currently rolling out the new task comments for Planner Basic plans, replacing the previous group-based comments.

Recently, I noticed that tasks from a Loop task list also include these new comments.
This is a new behavior, since a Loop task list always creates a Planner Lightweight plan. A Lightweight plan is hosted in a roster container and is not attached to a Microsoft 365 group, which means such tasks do not support comments.
Some plans in Planner aren’t attached to a Microsoft 365 group.
…
Because these plans aren’t attached to a Microsoft 365 group:
- There is no owner. Any member can add or remove other members and edit or delete the plan.
- There is no associated OneNote or SharePoint site.
- You can’t comment on tasks.
- You can’t upload attachments.
- When the last member leaves the plan, the plan is automatically deleted.
As shown in my example below, it’s a restricted task from a Loop task list. The indicator is the missing group.
This plan is not associated with a Microsoft 365 group, so some task fields are not available.

The new task comments will also add the commenting feature to Lightweight plans.
To verify it, let’s create a new Planner Lightweight plan.
Creating a roster container manually is straightforward. You have two options.
- Create a Loop task list. The task list will automatically create a roster container to store the Planner plan.
- Create a new Lightweight plan via the Microsoft Graph API (e.g., if Loop components are disabled in your organization).
First, create a new roster container and optionally add members to it.
Import-Module Microsoft.Graph.Authentication
Connect-MgGraph -Scopes Tasks.ReadWrite
# Creating a new Roster Container
$Body = @"
{ '@odata.type': '#microsoft.graph.plannerRoster' }
"@
$Url = "https://graph.microsoft.com/beta/planner/rosters"
$RosterContainer = Invoke-MgGraphRequest -Method POST -Uri $Url -Body $Body -ContentType "application/json"
$RosterContainerID = $RosterContainer.id
# Optional, adding an additional member to the container
$Body = @"
{
"@odata.type": "#microsoft.graph.plannerRosterMember",
"userId": "<UserPrincipalName>"
}
"@
$Url = "https://graph.microsoft.com/beta/planner/rosters/$RosterContainerID/members"
$Result = Invoke-MgGraphRequest -Method POST -Uri $Url -Body $Body -ContentType "application/json"
Second, add a Planner plan to the container. If no plan is added within 24 hours of creation, the container will be deleted automatically.
$Body = @"
{
"container": {
"url": "https://graph.microsoft.com/beta/planner/rosters/$RosterContainerID"
},
"title": "Roster Planner Plan - 03-2026"
}
"@
$Url = "https://graph.microsoft.com/beta/planner/plans"
$PlannerPlan = Invoke-MgGraphRequest -Method POST -Uri $Url -Body $Body -ContentType "application/json"
Third (optional), add a sample task to the plan.
# Optional, adding a new task to the Planner Plan
$Body = @"
{
"planId": "$($PlannerPlan.id)",
"title": "Graph API - Task 1"
}
"@
$Url = "https://graph.microsoft.com/beta/planner/tasks"
$Task = Invoke-MgGraphRequest -Method POST -Uri $Url -Body $Body -ContentType "application/json"
As a final step, I recommend returning the Planner plan URL. Otherwise, the plan may take some time to appear in Planner on the web.
Write-Host "Planner Plan URL: https://planner.cloud.microsoft/webui/plan/$($PlannerPlan.id)"
Now open your task, and you will find the new comments available in your Lightweight plan. ✅

