m365_create_draft
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
Use this when the user wants an email prepared in their Microsoft 365 / Outlook account without sending it: it saves a draft in that account's Drafts folder, for the person to review and send from Outlook. Never sends anything. A new message takes subject and body (to and cc optional); a draft reply takes reply_to_id (a message ID from m365_list_emails, m365_search_emails or m365_read_email) and body only — its recipients and subject come from the original. Shows a preview first — set confirm=true to save the draft; confirming twice saves two drafts. No attachments. Needs a connected Microsoft 365 account with the Mail.ReadWrite permission: an account connected before this tool existed answers consent_required until it is connected again. To send right away use m365_send_email or m365_reply_email; for a draft in the Mac's Mail app use create_draft.
Required inputs
body— The text of the draft, as plain text. Line breaks are kept.
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"
},
"body": {
"description": "The text of the draft, as plain text. Line breaks are kept.",
"type": "string"
},
"cc": {
"description": "CC email addresses, separated by commas (optional; not with reply_to_id).",
"type": "string"
},
"confirm": {
"description": "Set to true to save the draft (default: shows a preview only). Nothing is sent in either case.",
"type": "boolean"
},
"reply_to_id": {
"description": "Message ID to draft a reply to (from m365_list_emails, m365_search_emails or m365_read_email). Leave it out for a new message.",
"type": "string"
},
"subject": {
"description": "Subject, one line. Required for a new message; not with reply_to_id.",
"type": "string"
},
"to": {
"description": "Recipient email addresses, separated by commas (optional; not with reply_to_id).",
"type": "string"
}
},
"required": [
"body"
],
"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.
{
"body": "Can we review the launch checklist on Tuesday?",
"confirm": false,
"subject": "Planning meeting",
"to": "alex@example.com"
}Windows
Purpose
Create an email DRAFT in the Drafts folder of your Microsoft 365 account, for you to review and send yourself. It never sends. Shows a preview first — set confirm=true to create the draft; confirming twice creates two drafts. With reply_to_id the draft is a reply to that message and keeps its recipients and subject (leave to, cc and subject out). An account connected before this tool existed must be connected again (connect_m365_account) to allow drafts.
Required inputs
body— The text of the draft, as plain text. Line breaks are kept.
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"
},
"body": {
"description": "The text of the draft, as plain text. Line breaks are kept.",
"type": "string"
},
"cc": {
"description": "CC recipients (optional, comma-separated)",
"type": "string"
},
"confirm": {
"description": "Set to true to create the draft (default: shows preview only)",
"type": "boolean"
},
"reply_to_id": {
"description": "Message ID to draft a reply to (optional)",
"type": "string"
},
"subject": {
"description": "Subject. Required unless reply_to_id is given.",
"type": "string"
},
"to": {
"description": "Recipient email address (comma-separated for multiple). Optional: a draft may have no recipient yet.",
"type": "string"
}
},
"required": [
"body"
],
"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.
{
"body": "Can we review the launch checklist on Tuesday?",
"confirm": false,
"subject": "Planning meeting",
"to": "alex@example.com"
}