outlook_create_event
Schedule a calendar event with subject, start, and end times; add attendees, recurrence, busy status, or online meeting details when needed.
Instructions
Create a calendar event with optional attendees, recurrence, busy status, online meeting.
Example: outlook_create_event(subject="Q3 review", start="2026-08-15T14:00:00Z",
end="2026-08-15T15:00:00Z", attendees=["alice@acme.com"])
is_online is accepted but has no effect on personal accounts — Graph silently ignores
isOnlineMeeting for consumer mailboxes (it returns isOnlineMeeting: False,
onlineMeetingProvider: "unknown"). Teams meetings require a work/school account.
start/end are ISO 8601. Passing recurrence creates a series, not a single event.
It takes either a shorthand — "daily", "weekdays", "weekly", "monthly", "yearly", all
anchored on start and open-ended — or a full Microsoft Graph recurrence object for
anything else, e.g. every other Mon+Fri for 10 occurrences:
{"pattern": {"type": "weekly", "interval": 2, "daysOfWeek": ["monday", "friday"]},
"range": {"type": "numbered", "numberOfOccurrences": 10}}
range.startDate defaults to the event's start date. Prefer a bounded range
("endDate"/"numbered") when the event has attendees — a "noEnd" series invites them
to every future occurrence.
timezone is the IANA zone the event is anchored in, which is what a recurring
series is expanded against (default: the configured zone). A zone name like
America/Los_Angeles, never an abbreviation like PDT.
show_as is Outlook's "Show as": "free", "tentative", "busy", "oof" (out of office),
"workingElsewhere", or "unknown". Omitted, Graph defaults the event to busy.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | ||
| body | No | ||
| start | Yes | ||
| show_as | No | ||
| subject | Yes | ||
| location | No | ||
| timezone | No | ||
| attendees | No | ||
| is_online | No | ||
| is_all_day | No | ||
| recurrence | No |