Skip to content

New-MgGroupEvent Can't Create Channel Meetings #3500

Description

Describe the bug

The New-MgGroupEvent cmdlet can create events, including online Teams meetings, in the calendar of a Microsoft 365 group. However, it can't create a channel meeting. A channel meeting is an event in the group calendar that's marked as belonging to a channel to allow the Teams channel calendar app to filter out the events and display them in the app.

The issue appears to be because the cmdlet (and the Graph API request) doesn't accept the channelIdentity information in the body parameter passed to the cmdlet. The same issue exists for Update-MgGroupEvent...

$Body = @{
channelIdentity = @{ teamId = "$GroupId"; channelId = "$channelId"}
Update-MgGroupEvent -EventId $Id -GroupId $GroupId -BodyParameter $Body

Expected behavior

Well, it would be nice if the cmdlet could create a channel meeting to replicate the functionality available in all the Teams clients.

How to reproduce

Assume that you've used Get-MgGroup or Get-MgTeam to find the identifier for the target group, and Get-MgTeamChannel to find the identifier for the target channel.

$eventParams = @{
Subject = "Product Launch Review (Part 2)"
Body = @{
ContentType = "HTML"
Content = "Agenda:
1) Timeline
2) Risks
3) Next steps"
}
Start = @{
DateTime = "2026-01-22T09:30:00"
TimeZone = "Europe/Dublin"
}
End = @{
DateTime = "2026-01-22T10:15:00"
TimeZone = "Europe/Dublin"
}
Location = @{
DisplayName = "Channel meeting"
}
channelIdentity = @{ teamId = "$GroupId"; channelId = "$channelId"}
Attendees = @(
@{
EmailAddress = @{
Address = "Sean.Landy@office365itpros.com"
Name = "Sean Landy"
}
Type = "required"
}
)
IsOnlineMeeting = $true
OnlineMeetingProvider = "teamsForBusiness"
AllowNewTimeProposals = $true
TransactionId = [Guid]::NewGuid().ToString() # must be a string
}

New-MgGroupEvent -GroupId $GroupId -BodyParameter $EventParams
New-MgGroupEvent_Create: were unable to deserialize

Status: 400 (BadRequest)
ErrorCode: UnableToDeserializePostBody
Date:

Headers:
Cache-Control : private
Strict-Transport-Security : max-age=31536000
request-id : 652b1bb1-6239-4a46-ad23-39c5c416ab40
client-request-id : 70562cc4-d138-4d85-b059-b77ec07f6696
x-ms-ags-diagnostic : {"ServerInfo":{"DataCenter":"North Europe","Slice":"E","Ring":"4","ScaleUnit":"001","RoleInstance":"DU2PEPF000105E6"}}
Date : Sun, 11 Jan 2026 20:38:24 GMT

Recommendation: See service error codes: https://learn.microsoft.com/graph/errors

Removing the channelIdentity information allows the cmdlet to run.

SDK Version

2.34

Latest version known to work for scenario above?

None

Known Workarounds

None. Invoke-MgGraphRequest doesn't work by Posting to the group events endpoint.

Debug output

Configuration

Name Value


PSVersion 7.5.4
PSEdition Core
GitCommitId 7.5.4
OS Microsoft Windows 10.0.26200
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0

Other information

No response

Activity

  1. gavinbarron commented on Jan 12, 2026

    @gavinbarron
    Member

    I don't think that there is currently any support for creating channel meetings via the Microsoft Graph APIs.
    I have asked internally to confirm.

  2. 12Knocksinna commented on Jan 13, 2026

    @12Knocksinna
    ContributorAuthor

    Hi Gavin, I suspect that you are right. However, a browse of the net shows that many people have tried to set up channel meetings with the Graph (and Graph SDK), so I thought it worthwhile to at least note the issue to see what can be done.

  3. gavinbarron commented on Jan 20, 2026

    @gavinbarron
    Member

    This is what I got back from my internal question to the owners of the Teams APIs

    the meeting API does not support creating channel meetings, but it should be possible to create the meeting (e.g., using the POST /v1.0/groups/{group-id}/events) and then post the link to the channel using POST /teams/{team-id}/channels/{channel-id}/messages.

  4. gavinbarron commented on Jan 20, 2026

    @gavinbarron
    Member

    Given that this change would need to be implemented by the API owners I'm going to close this as not actionable.

  5. 12Knocksinna commented on Jan 20, 2026

    @12Knocksinna
    ContributorAuthor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions