English
Create an Outlook event
Puts an appointment into your Outlook calendar. Invitations are sent only if you ask.
This node creates an event in the Outlook calendar of the member running the workflow: a meeting confirmed by email, a deadline, a callback. Invitations are only sent when you ask for them.
It needs the calendar access of a Microsoft account, shown as the Calendar capability in Connections. See Microsoft.
To offer free slots first, use Find an Outlook slot: its slots are in the exact format this node expects. For Google Calendar, use Calendar — create an event.
At a glance
- Type:
outlook_calendar.create_event· version 1 - Category: Actions
- Kind: Step — one stage of a run
- Effect: Writes outside (
external_write) — writes outside Mankomail; described instead of performed during a test run - Needs a carrier email: No
- Connection: Microsoft (capability
calendar) - Inputs:
main - Outputs:
main
Connection
This node needs a Microsoft connection with the calendar capability granted.
Parameters
credential
Microsoft account — The account whose calendar is used. Connect it from Connections; the token is resolved by the server.
- Type: Connection (
credential) - Required: No
- Default:
""(empty)
calendar
Calendar — Left empty: your default calendar.
- Type: Remote resource (
resourceLocator) - Required: No
- Default:
{"mode":"id","value":""} - Ways to choose: pick from a list, type an ID (
outlook.calendar) - Listed with the connection in:
credential
title
Title
- Type: Text (
string) - Required: Yes
- Default:
""(empty) - 255 characters at most
- Example:
Project sync — {{ email.from.name }} - Expressions:
{{ }}accepted
start
Start — ISO date and time, without zone: 2026-04-02T14:00:00. Accepts {{ }} expressions — {{ data.find_free_1.slots.0.start }} plugs straight into the slot search.
- Type: Text (
string) - Required: Yes
- Default:
""(empty) - 64 characters at most
- Example:
2026-04-02T14:00:00 - Expressions:
{{ }}accepted
end
End — Same format as the start. For an all-day event, set both dates to midnight.
- Type: Text (
string) - Required: Yes
- Default:
""(empty) - 64 characters at most
- Example:
2026-04-02T15:00:00 - Expressions:
{{ }}accepted
allDay
All day — Graph then requires midnight boundaries — the service refuses the event rather than rounding behind your back.
- Type: Yes / no (
boolean) - Required: No
- Default:
false
timeZone
Time zone — IANA name (Europe/Paris, America/Montreal). It is what gives the typed hours their meaning.
- Type: Text (
string) - Required: No
- Default:
Europe/Paris - 80 characters at most
- Expressions:
{{ }}accepted
body
Description — The event body. Accepts {{ }} expressions.
- Type: Long text (
text) - Required: No
- Default:
""(empty) - 20000 characters at most
- Expressions:
{{ }}accepted
location
Location
- Type: Text (
string) - Required: No
- Default:
""(empty) - 255 characters at most
- Example:
Video call, North room… - Expressions:
{{ }}accepted
attendees
Attendees — Comma-separated addresses. {{ email.from.email }} invites the email sender.
- Type: Text (
string) - Required: No
- Default:
""(empty) - 2000 characters at most
- Example:
{{ email.from.email }} - Expressions:
{{ }}accepted
sendInvitations
Send invitations — Off, the event lands in your calendar with no email sent. On, Outlook notifies the attendees.
- Type: Yes / no (
boolean) - Required: No
- Default:
false - Shown when:
attendeesis filled in
Outputs
main
Data produced
What this node adds to the run data, and how to read it in an expression. <step> stands for the step key: the node name turned into an identifier (see Data and expressions).
{{ data.<step>.event }}—object { id, webLink, start, end, timeZone }. The event created, or found again on a replay.idis the Outlook event id,webLinkthe link that opens it in Outlook on the web,startandendthe bounds as Outlook recorded them,timeZonetheir time zone.{{ data.<step>.event.webLink }}—string. The Outlook link of the event. Empty in a test run.{{ data.<step>.reused }}—boolean.truewhen a replay found the event created by an earlier attempt of the same step: nothing was created again.{{ data.<step>.invited }}—number. The number of attendees Outlook was asked to invite.0when Send invitations is off or there is no attendee.{{ data.<step>.summary }}—string. A readable sentence giving the event title and start, and whether invitations were sent.
Example
After Find an Outlook slot (named Slots) and the client's reply, the node, named Book call, books the first slot:
calendar: (id mode) (empty: default calendar)
title: Project sync — {{ email.from.name }}
start: {{ data.slots.first.start }}
end: {{ data.slots.first.end }}
allDay: false
timeZone: Europe/Paris
location: Video call
attendees: {{ email.from.email }}
sendInvitations: trueThe step data reads:
json
{
"event": {
"id": "AAMkAGI2…",
"webLink": "https://outlook.office365.com/owa/?itemid=AAMkAGI2…",
"start": "2026-04-14T10:00:00.0000000",
"end": "2026-04-14T10:30:00.0000000",
"timeZone": "Europe/Paris"
},
"reused": false,
"invited": 1
}Tips
- Invitations are off by default. Send invitations appears once Attendees is filled in and defaults to off. Outlook emails attendees as soon as they are on an event, so when the option is off the node does not add them as attendees: the event is created in your calendar only, and a line listing their addresses is added to its description. Turn the option on to have Outlook invite them.
- No duplicate on replay. The node writes a hidden marker on the event and looks for it before creating, so a replay of the step returns the existing event with
reused: true. Some tenants refuse that lookup; there, a replay can create a second event. - Dates and time zone. Start and End are ISO date-times without zone (
2026-04-14T14:00:00), read in the Time zone field (IANA name,Europe/Parisby default). An unknown time zone fails withmicrosoft.rejected. - All day. With All day on, Start and End must both be at midnight in the time zone (for one day:
2026-04-14T00:00:00to2026-04-15T00:00:00). Any other time fails withmicrosoft.rejectedrather than being rounded. - Attendees. Comma-separated addresses. An entry that is not an email address (for instance an expression that did not resolve) fails with
node_invalid_param. Title, Start or End resolving to empty also fails withnode_invalid_param. - Calendar. Left empty, the member's default calendar. Pick another one from the list (read-only calendars are not offered) or type its id. There is no URL mode for this field.
- Test runs. In test runs nothing is created and nobody is invited: the event returned has an id starting with
simulated:, an emptywebLink, and the start and end as entered. - Errors.
credential.capability_missing: the Outlook calendar is not connected for the member running the workflow.microsoft.access_deniedormicrosoft.auth_failed: reconnect the account.microsoft.not_found: the calendar no longer exists.microsoft.unavailableis retried automatically. See Error handling.