This action allows the organizer of a meeting to send a cancellation message and cancel the event.
The action moves the event to the Deleted Items folder. The organizer can also cancel an occurrence of a recurring meeting
by providing the occurrence event ID. An attendee calling this action gets an error (HTTP 400 Bad Request), with the following
error message:
"Your request can't be completed. You need to be an organizer to cancel a meeting."
This action differs from Delete in that Cancel is available to only the organizer, and lets
the organizer send a custom message to the attendees about the cancellation.
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)
Calendars.ReadWrite
Delegated (personal Microsoft account)
Calendars.ReadWrite
Application
Calendars.ReadWrite
HTTP request
POST /me/events/{id}/cancel
POST /users/{id | userPrincipalName}/events/{id}/cancel
POST /groups/{id}/events/{id}/cancel
POST /me/calendar/events/{id}/cancel
POST /users/{id | userPrincipalName}/calendar/events/{id}/cancel
POST /groups/{id}/calendar/events/{id}/cancel
POST /me/calendars/{id}/events/{id}/cancel
POST /users/{id | userPrincipalName}/calendars/{id}/events/{id}/cancel
POST /me/calendarGroups/{id}/calendars/{id}/events/{id}/cancel
POST /users/{id | userPrincipalName}/calendarGroups/{id}/calendars/{id}/events/{id}/cancel
Request headers
Name
Type
Description
Authorization
string
Bearer {token}. Required.
Content-Type
string
Nature of the data in the body of an entity. Required.
Request body
In the request body, provide a JSON object with the following parameters.
Parameter
Type
Description
comment
String
A comment about the cancellation sent to all the attendees. Optional.
Response
If successful, this method returns 202 Accepted response code. It does not return anything in the response body.
POST https://graph.microsoft.com/v1.0/me/events/{id}/cancel
Content-type: application/json
{
"Comment": "Cancelling for this week due to all hands"
}
// Code snippets are only available for the latest version. Current version is 5.x
var graphClient = new GraphServiceClient(requestAdapter);
var requestBody = new Microsoft.Graph.Me.Events.Item.Cancel.CancelPostRequestBody
{
Comment = "Cancelling for this week due to all hands",
};
await graphClient.Me.Events["{event-id}"].Cancel.PostAsync(requestBody);
// THE CLI IS IN PREVIEW. NON-PRODUCTION USE ONLY
mgc users events cancel post --user-id {user-id} --event-id {event-id} --body '{\
"Comment": "Cancelling for this week due to all hands"\
}\
'
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
String comment = "Cancelling for this week due to all hands";
graphClient.me().events("{id}")
.cancel(EventCancelParameterSet
.newBuilder()
.withComment(comment)
.build())
.buildRequest()
.post();
<?php
// THIS SNIPPET IS A PREVIEW VERSION OF THE SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new CancelPostRequestBody();
$requestBody->setComment('Cancelling for this week due to all hands');
$graphServiceClient->me()->events()->byEventId('event-id')->cancel()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Users.Actions
$params = @{
Comment = "Cancelling for this week due to all hands"
}
# A UPN can also be used as -UserId.
Stop-MgUserEvent -UserId $userId -EventId $eventId -BodyParameter $params
# THE PYTHON SDK IS IN PREVIEW. FOR NON-PRODUCTION USE ONLY
graph_client = GraphServiceClient(request_adapter)
request_body = CancelPostRequestBody(
comment = "Cancelling for this week due to all hands",
)
await graph_client.me.events.by_event_id('event-id').cancel.post(body = request_body)