m365_create_event
Microsoft 365 · macOS · Windows
Effect: write (strongest supported action). Status: gated.
Gated means the tool requires an installed app, a connected account, permission, or runtime availability. Check those requirements on the listed platform before using it.
macOS
Purpose
Creates an event in the connected Microsoft 365 / Outlook calendar. If `attendees` is set, Microsoft 365 emails each of them a meeting invitation as soon as the event is created: creating with attendees IS sending invitations, so check the list with the user first. Times are read in `timezone`, which defaults to UTC — pass the user's timezone or the event lands at the wrong hour. Uses the primary calendar unless `calendar` names another. Called without confirm it returns a preview of every field and touches nothing; pass confirm=true to create. Returns the event id. For the Mac's Calendar app use create_calendar_event instead.
Required inputs
subject— Event titlestart— Start time in ISO 8601, e.g. '2026-05-20T10:00:00'end— End time in ISO 8601, e.g. '2026-05-20T11:00:00'
Permissions and confirmation
Explicit confirmation parameter: inspect the schema and tool description before any real call. The documentation example keeps confirm false. Obtain user authorization before performing the action.
- Use only the apps, accounts and resources authorized by the user on this platform. Consult this tool's platform-specific description for its connection and permission requirements; this catalog does not assert additional OAuth scopes or OS entitlements.
Full input schema — macOS
{
"properties": {
"account": {
"description": "Which connected Microsoft 365 account to use: its email (UPN), its id from list_m365_accounts, or its display name when unique. Leave it out to use the default account.",
"type": "string"
},
"attendees": {
"description": "Comma-separated email addresses to invite (optional)",
"type": "string"
},
"body": {
"description": "Event description (optional)",
"type": "string"
},
"calendar": {
"description": "Calendar name to create the event in — partial, case-insensitive match (optional). Omit to use the primary calendar.",
"type": "string"
},
"confirm": {
"description": "Must be true to create the event",
"type": "boolean"
},
"end": {
"description": "End time in ISO 8601, e.g. '2026-05-20T11:00:00'",
"type": "string"
},
"location": {
"description": "Location (optional)",
"type": "string"
},
"start": {
"description": "Start time in ISO 8601, e.g. '2026-05-20T10:00:00'",
"type": "string"
},
"subject": {
"description": "Event title",
"type": "string"
},
"timezone": {
"description": "IANA timezone, e.g. 'America/New_York' (default: UTC)",
"type": "string"
}
},
"required": [
"subject",
"start",
"end"
],
"type": "object"
}Documentation example
Do not execute this example. These concrete inputs refer to a fictional demonstration dataset. Resolve real handles and obtain user authorization before any real call.
{
"confirm": false,
"end": "2026-10-06T11:00:00",
"start": "2026-10-06T10:00:00",
"subject": "Planning meeting"
}Windows
Purpose
Creates an event in the default calendar of the Microsoft 365 account connected with connect_m365_account, through Microsoft Graph (for the Outlook desktop app use outlook_calendar_create_event). Without confirm=true nothing is created and nothing is sent: the call returns a preview of every field, without contacting Microsoft 365, so show it to the user. With confirm=true the event is created, each address in `attendees` is added as a required attendee, and Microsoft 365 sends each one a meeting invitation. `start` and `end` are read in `timezone`, which defaults to UTC, not the user's local zone: pass it. Nothing checks for an existing event, so confirming twice creates two. The reply carries the event ID, which m365_delete_event takes to remove the event; this server has no tool to edit one.
Required inputs
subject— Event titlestart— Start time ISO 8601, e.g. '2026-05-20T10:00:00'end— End time ISO 8601, e.g. '2026-05-20T11:00:00'
Permissions and confirmation
Explicit confirmation parameter: inspect the schema and tool description before any real call. The documentation example keeps confirm false. Obtain user authorization before performing the action.
- Use only the apps, accounts and resources authorized by the user on this platform. Consult this tool's platform-specific description for its connection and permission requirements; this catalog does not assert additional OAuth scopes or OS entitlements.
Full input schema — Windows
{
"properties": {
"account": {
"description": "Which connected Microsoft 365 account to use: its email (UPN), its id from list_m365_accounts, or its display name when unique. Leave it out to use the default account.",
"type": "string"
},
"attendees": {
"description": "Comma-separated email addresses to invite (optional)",
"type": "string"
},
"body": {
"description": "Event description (optional)",
"type": "string"
},
"confirm": {
"description": "Must be true to create the event. Without it the call returns a preview and creates nothing.",
"type": "boolean"
},
"end": {
"description": "End time ISO 8601, e.g. '2026-05-20T11:00:00'",
"type": "string"
},
"location": {
"description": "Location (optional)",
"type": "string"
},
"start": {
"description": "Start time ISO 8601, e.g. '2026-05-20T10:00:00'",
"type": "string"
},
"subject": {
"description": "Event title",
"type": "string"
},
"timezone": {
"description": "IANA timezone, e.g. 'America/New_York' (default: UTC)",
"type": "string"
}
},
"required": [
"subject",
"start",
"end"
],
"type": "object"
}Documentation example
Do not execute this example. These concrete inputs refer to a fictional demonstration dataset. Resolve real handles and obtain user authorization before any real call.
{
"confirm": false,
"end": "2026-10-06T11:00:00",
"start": "2026-10-06T10:00:00",
"subject": "Planning meeting"
}