Auto Create Calendar Events from SharePoint is one of the most practical Power Automate use cases for teams that manage schedules inside SharePoint lists. Instead of manually copying event details into Outlook calendars, this automation keeps everything synchronized automatically.
In this tutorial, you will build a robust Power Automate flow that auto create calendar events from SharePoint list items and safely updates them without triggering endless loops.

π What You Will Achieve
By implementing this solution, you will be able to:
- Auto create calendar events from SharePoint list items
- Automatically update Outlook calendar events when list items change
- Prevent flow re-trigger loops using smart conditions
- Manage attendees dynamically from a Person column
- Maintain a clean Event ID reference between SharePoint and Outlook
π§° Prerequisites
Before you start, make sure you have:
- Microsoft 365 with Power Automate access
- A SharePoint site where you can create lists
- Access to an Outlook calendar
πΉ Step 1 – Create the SharePoint Event Schedule List
Create a SharePoint list named Event Schedule with the following columns:
- Title (Single line of text) – Event name
- Start Date (Date and Time)
- End Date (Date and Time)
- Attendees (Person)
- Location (Single line of text)
- Description (Multiple lines of text)
- Event ID (Single line of text)
This list will act as the trigger source to auto create calendar events from SharePoint list items.
πΉ Step 2 – Create a New Automated Cloud Flow
- Go to make.powerautomate.com
- Click Create
- Select Automated cloud flow
- Flow name: Auto-Generate Calendar Events from SharePoint
- Trigger: When an item is created or modified
- Click Create.
πΉ Step 3 – Configure the SharePoint Trigger
In the trigger When an item is created or modified, configure:
- Site Address: Select your SharePoint site
- List Name: Event Schedule

This ensures the flow runs whenever a new event is created or updated, enabling you to auto create calendar events efficiently.
πΉ Step 4 – Get Changes for an Item or a File (Properties Only)
To detect whether the trigger is caused by updating the Event ID, add the action:
Get changes for an item or a file (properties only)
Configure it as follows:
- Site Address: Your SharePoint site URL
- List or Library Name: Event Schedule
- Id: Id from the trigger
- Since: Trigger Window Start Token
- Until: Trigger Window End Token

This action tells you exactly which columns changed and helps prevent update loops.
πΉ Step 5 – Extract Attendee Email Addresses
Add the Select action to extract email addresses from the Attendees column.
Configure:
- From: Attendees (from trigger)
- Map:
@{item()?['Email']}

This prepares attendee emails for Outlook calendar events.
πΉ Step 6 – Check if Item Is Newly Created or Modified
Add a Condition action:
- Left value: Created
- Operator: is equal to
- Right value: Modified
Both values come from the trigger dynamic content.

This condition determines whether the flow should create a new calendar event or move to update logic.
πΉ Step 7 – Create Outlook Calendar Event
On the True side of the condition, add Create event (V4).
Configure:
- Calendar Id: Select your calendar
- Subject: Title
- Start time:
@{formatDateTime(triggerBody()?['StartDate'],'yyyy-MM-ddThh:mm:ss')} - End time:
@{formatDateTime(triggerBody()?['EndDate'],'yyyy-MM-ddThh:mm:ss')} - Time zone: Select your timezone
Advanced parameters:
- Required attendees:
@{join(body('Select'),';')} - Body: Description
- Location: Location

This step completes the core logic to auto create calendar events from SharePoint.
πΉ Step 8 – Update SharePoint Item with Event ID
Add Update item below the Create event action.
Configure:
- Site Address: SharePoint site URL
- List Name: Event Schedule
- Id: Id from trigger
- Event ID: Id from Create event (V4)

This stores the Outlook Event ID back in SharePoint for future updates.
πΉ Step 9 – Update Existing Calendar Event Safely
On the False side of the first condition, add another Condition:
- Left value: Has Column Changed: Event ID
- Operator: is equal to
- Right value: false

This ensures the flow does not re-run because of its own Event ID update.
πΉ Step 10 – Update Event (V4)
On the True side of this condition, add Update event (V4).
Configure:
- Calendar Id: Select your calendar
- Id: Event ID from SharePoint
- Subject: Title
- Start time:
@{formatDateTime(triggerBody()?['StartDate'],'yyyy-MM-ddThh:mm:ss')} - End time:
@{formatDateTime(triggerBody()?['EndDate'],'yyyy-MM-ddThh:mm:ss')} - Time zone: Select your timezone
Advanced parameters:
- Required attendees:
@{join(body('Select'),';')} - Body: Description
- Location: Location

This completes the update logic when event details change.
π Best Practices and Tips
- Always use Get changes for an item to avoid infinite loops
- Store external system IDs like Event ID in SharePoint
- Normalize date formats to prevent timezone issues
- Keep attendee mapping simple using the Select action
π Wrapping Up
You now have a complete solution to auto create calendar events from SharePoint using Power Automate. This approach ensures reliable event creation, and safe updates.
Once deployed, your SharePoint list becomes a powerful event management system fully synchronized with Outlook calendars.