Skip to main content

Outlook Calendar Node

The Outlook Calendar node provides integration with Microsoft Outlook Calendar in SkyStudio workflows. You can list, create, update, and delete events; check availability; and run AI-powered calendar queries. The same Azure App Registration method used for the Teams node is also used for this connection.


Connection Setup and Management

To use the Outlook Calendar node, you must create an App Registration in the Azure Portal and enter the Tenant ID, Client ID, and Client Secret information into SkyStudio.

🎬 Click to watch the video →

Note: The connection setup process for this node is exactly the same as the Microsoft Teams node. If you have already created a Teams connection, you can use the same Azure App Registration information for Outlook Calendar as well.

Creating an Azure App Registration

1. Register a New Application

  1. Sign in to portal.azure.com.
  2. Type App registrations in the search bar and go to the related service.
  3. Click the + New registration button.
  4. Give the application a name, such as SkyStudio.
  5. Select Accounts in this organizational directory only (Single tenant).
  6. Click the Register button.

2. Copy Client ID and Tenant ID

After the application is created, go to the Overview page:

  • Application (client) ID → Your Client ID
  • Directory (tenant) ID → Your Tenant ID

Copy both values. You can access this information again later.

3. Create a Client Secret

  1. Go to Certificates & secrets from the left menu.
  2. Click the + New client secret button.
  3. Add a Description and Expiration Date, then click Add.
  4. Immediately copy the generated secret’s Value field.

Critical Note: The Client Secret value is displayed only at the time it is created. After you close the page, you will not be able to access the full value again.

4. Add API Permissions

  1. Go to API permissions from the left menu.
  2. Select + Add a permission → Microsoft Graph → Application permissions.
  3. Add the required permissions for Outlook Calendar:
PermissionDescription
Calendars.ReadUsed to read calendar events
Calendars.ReadWriteUsed to create, update, and delete events
User.Read.AllUsed to access user information for availability checks
  1. Click Grant admin consent to approve the permissions.

Adding the Connection to SkyStudio

  1. Go to Application Connections from the left menu in SkyStudio.
  2. Click the Add New Connection button.
  3. Select Outlook Calendar as the provider.
  4. Fill in the following fields:
FieldDescription
Connection NameA descriptive name, such as Company Outlook Calendar
Tenant IDThe Directory (tenant) ID copied from Azure
Client IDThe Application (client) ID copied from Azure
Client SecretThe secret value copied from Azure
User EmailThe email address of the user on whose behalf calendar operations will be performed
  1. Click the Save button.

Assigning the Connection to the Node

After adding the Outlook Calendar node to the canvas, select the saved connection from the Application Connections dropdown in the right panel.


Operations

The Outlook Calendar node provides 10 operations:

OperationCategoryDescription
Get EventsFeaturedRetrieves events from the calendar with filters
Today’s EventsFeaturedLists today’s events
Upcoming EventsFeaturedLists events within a specified number of days
Availability CheckFeaturedChecks users’ availability within a specific time range
Outlook Calendar AI AssistantFeaturedQueries calendar data using natural language
List CalendarsStandardLists all calendars in the account
Get EventStandardRetrieves the details of a specific event
Create EventStandardCreates a new calendar event
Update EventStandardUpdates an existing event
Delete EventStandardDeletes a specific event

Get Events

Retrieves events from the calendar using a date range and search filter.

Parameters

ParameterRequiredDescription
ConnectionYesThe Outlook Calendar connection to use
Calendar IDNoThe ID of the calendar from which events will be retrieved. If left empty, the primary calendar is used
Start DateNoStart date in YYYY-MM-DDTHH:MM:SS format
End DateNoEnd date in YYYY-MM-DDTHH:MM:SS format
Search QueryNoKeyword for searching in event titles
Max ResultsNoMaximum number of events to return
Order ByNoSorting criterion selected from the dropdown menu

Today’s Events

Returns today’s calendar events for the connected account.

Parameters

ParameterRequiredDescription
ConnectionYesThe Outlook Calendar connection to use
Calendar IDNoCalendar ID from which events will be retrieved. If left empty, the primary calendar is used

Upcoming Events

Lists upcoming events within the specified number of days.

Parameters

ParameterRequiredDescription
ConnectionYesThe Outlook Calendar connection to use
Calendar IDNoCalendar ID. If left empty, the primary calendar is used
Days AheadNoNumber of days ahead for retrieving events, such as 7
Max ResultsNoMaximum number of events to return

Availability Check

Checks the availability of specified users within a specific time range. It is used in appointment and meeting scheduling workflows.

Parameters

ParameterRequiredDescription
ConnectionYesThe Outlook Calendar connection to use
User EmailsYesEmail addresses of users whose availability will be checked, separated by commas
Start Date TimeYesAvailability check start time in YYYY-MM-DDTHH:MM:SS format
End Date TimeYesAvailability check end time in YYYY-MM-DDTHH:MM:SS format
TimezoneNoTime zone, such as Europe/Istanbul

Outlook Calendar AI Assistant

Queries Outlook calendar data using natural language. As shown in the video, users can easily access calendar data with questions such as “What are my meetings this week?”

Parameters

ParameterRequiredDescription
ConnectionYesThe Outlook Calendar connection to use
QueryYesCalendar query in natural language
System PromptNoSystem instruction that customizes the AI assistant’s behavior

Usage Example

Query: "Can you list my meetings for this week?"

System Prompt: "List only this week’s events. Respond in Turkish and show the title and time."


List Calendars

Lists all calendars and Calendar IDs in the account.

Parameters

ParameterRequiredDescription
ConnectionYesThe Outlook Calendar connection to use

Get Event

Retrieves all details of a specific event using its Event ID.

Parameters

ParameterRequiredDescription
ConnectionYesThe Outlook Calendar connection to use
Event IDYesThe ID of the event whose details will be retrieved

Create Event

Adds a new event to the Outlook calendar. Optionally, a Teams meeting link can also be created.

Parameters

ParameterRequiredDescription
ConnectionYesThe Outlook Calendar connection to use
Calendar IDNoThe calendar where the event will be created. If left empty, the primary calendar is used
SubjectYesEvent title
BodyNoEvent description
Start Date TimeYesStart time in YYYY-MM-DDTHH:MM:SS format
End Date TimeYesEnd time in YYYY-MM-DDTHH:MM:SS format
TimezoneNoTime zone, such as Europe/Istanbul
LocationNoEvent location
AttendeesNoEmail addresses of participants to invite, separated by commas
Teams MeetingNoIf enabled, a Teams meeting link is automatically added to the event
All Day EventNoIf enabled, the event is created as an all-day event

Update Event

Updates the information of an existing event.

Parameters

ParameterRequiredDescription
ConnectionYesThe Outlook Calendar connection to use
Event IDYesThe ID of the event to update
SubjectNoNew event title
BodyNoNew description
Start Date TimeNoNew start time in YYYY-MM-DDTHH:MM:SS format
End Date TimeNoNew end time in YYYY-MM-DDTHH:MM:SS format
TimezoneNoTime zone
LocationNoNew location
AttendeesNoUpdated participant list

Delete Event

Deletes the specified event from the calendar.

Parameters

ParameterRequiredDescription
ConnectionYesThe Outlook Calendar connection to use
Event IDYesThe ID of the event to delete

Quick Start Examples

Example 1: Daily Calendar Summary

A workflow that summarizes that day’s meetings every morning and sends them to Teams:

Schedule (Every morning at 08:00) → Today’s Events → LLM (summarize) → Send Channel Message (Teams)

Today’s Events settings:

  • Calendar ID: empty — primary calendar

Example 2: Automatic Meeting Scheduling

A workflow that checks availability when a form is submitted and creates a meeting at a suitable time:

Form Builder → Availability Check → LLM (select suitable time) → Create Event

Availability Check settings:

  • User Emails: {{form.email}}, manager@company.com
  • Start Date Time: {{form.date}}T09:00:00
  • End Date Time: {{form.date}}T18:00:00
  • Timezone: Europe/Istanbul

Create Event settings:

  • Subject: Meeting: {{form.topic}}
  • Start Date Time: {{llm.suitable_time}}
  • Attendees: {{form.email}}
  • Teams Meeting: Enabled

Example 3: Calendar AI Chatbot

A chatbot that answers calendar questions asked by the user in natural language:

Text Input → Outlook Calendar AI Assistant → Text Output

Outlook Calendar AI Assistant settings:

  • Query: {{input.text}}
  • System Prompt: "You are the user’s calendar assistant. Provide event information in Turkish and in a summarized format."

Example 4: Last Week’s Meeting Report

A workflow that retrieves last week’s meetings and creates a weekly report:

Schedule (Every Monday) → Get Events → LLM (create report) → Send Mail (Outlook)

Get Events settings:

  • Start Date: {{last_week_start}}
  • End Date: {{last_week_end}}
  • Max Results: 50
  • Order By: start

Common Errors

ErrorPossible CauseSolution
401 UnauthorizedClient Secret has expiredCreate a new Client Secret from the Azure Portal
403 ForbiddenCalendars.ReadWrite permission has not been grantedAdd the required permission from Azure → API Permissions and grant admin consent
Event not foundInvalid Event IDFind the correct Event ID using Get Events
Invalid datetime formatDate format is incorrectMake sure you use the YYYY-MM-DDTHH:MM:SS format, such as 2024-06-01T10:00:00
Empty event listCalendar ID is incorrect or there are no events on that dateVerify the Calendar ID using List Calendars

Notes

  • When the Calendar ID field is left empty, all operations automatically run on the primary calendar.
  • When Teams Meeting is enabled in the Create Event operation, a Teams meeting link is automatically created. For this feature to work, the Azure App Registration must also have the OnlineMeetings.ReadWrite.All permission.
  • Date and time fields must be entered in YYYY-MM-DDTHH:MM:SS format, such as 2024-06-01T10:00:00. Timezone is entered as a separate field.
  • The Availability Check operation can check the availability of multiple users at the same time. You can enter email addresses separated by commas.
  • When the Client Secret of the Azure App Registration expires, the connection stops working. It is recommended to create a new secret and update the SkyStudio connection before it expires.