Add a Meeting Attendee Silently with Power Automate and the Graph API
Learn how to add a new participant to an Outlook calendar event without sending update notices to the entire group, using the ‘Send an HTTP request’ action and the Microsoft Graph API.
One frequent requirement when managing dynamic meetings is adding a new participant to an existing appointment without notifying every existing attendee. The built-in Office 365 Outlook – Update Event action in Power Automate always triggers an update email to all invited people, which can be disruptive. By using the Office 365 Outlook – Send an HTTP request action and calling the Microsoft Graph API directly, you can update the attendee list while suppressing notifications for everyone except the newly added person. This article walks through a complete, business-focused example.
Scenario: Adding an External Consultant to a Pre-scheduled Review
Your organization, Contoso Ltd., has a weekly Quarterly Review Meeting on the personal calendar of a team member, Alex. An external consultant, Jamie (j.rodriguez@external.contoso.com), needs to be added to the upcoming meeting. The rest of the team (about ten internal employees) has already accepted the invitation and should not receive another email about this specific change. You decide to build a Power Automate flow that adds Jamie silently.
To keep this guide focused, we assume the meeting already exists and you have the Calendar ID and Event ID for the event. One way to obtain these is to use the Get Events (V4) action with a filter query such as subject eq 'Quarterly Review Meeting'. The Calendar ID is found in the table parameter of the action inputs, and the Event ID comes from the id field of the first returned event.
The Core Technique: Read, Modify, Patch
The flow follows a three‑step pattern:
- Retrieve the current attendees list from the meeting with a GET request.
- Add the new attendee to the list using array operations.
- Patch the meeting with the updated list, using a carefully crafted HTTP request that prevents broadcasting to all existing attendees.
Step 1: Store the Meeting’s Current Attendees
After you have the varCalendarId and varEventId variables, make a Send an HTTP request action to retrieve the event:
Method: GET
URI: https://graph.microsoft.com/v1.0/me/calendars/@{variables('varCalendarId')}/events/@{variables('varEventId')}
Headers:
Content-Type: application/jsonThe response’s attendees array contains all current participants with their status and type. Store this array in a new variable of type Array, for example varCurrentAttendees.
body('Send_an_HTTP_request_1')?['attendees']Step 2: Append the New Attendee
Create an Initialize variable action for the new attendee object. You can use a Compose action to build the object and then append it to varCurrentAttendees with Append to array variable.
{
"type": "required",
"status": {
"response": "none",
"time": "0001-01-01T00:00:00Z"
},
"emailAddress": {
"name": "Jamie Rodriguez",
"address": "j.rodriguez@external.contoso.com"
}
}After the append step, varCurrentAttendees contains the original list plus the new participant.
Step 3: Update the Meeting with the Modified Attendee List
Now send a PATCH request to the same URI. Do not use the standard Update Event action – it always triggers notifications. The Graph API PATCH operation, when performed with this specific body, only sends an invitation to the newly added attendee.
Method: PATCH
URI: https://graph.microsoft.com/v1.0/me/calendars/@{variables('varCalendarId')}/events/@{variables('varEventId')}
Headers:
Content-Type: application/json
Body:
{
"attendees": @{variables('varCurrentAttendees')}
}The Graph API does not send update emails to existing attendees for a PATCH that only modifies the attendee list, as long as you don’t include the sendExistingAttendees parameter set to true (which would force notifications). The Power Automate HTTP request sends the request without that flag, resulting in a silent update for all except the new person.
Testing the Flow
Trigger the flow manually. After a successful run, check the meeting in Outlook. You should see that Jamie Rodriguez has been added, and only he receives an invitation email. No other participant receives a meeting update notification.
- New attendee (Jamie): receives a standard meeting invitation.
- Existing attendees: no notification is generated.
Important Considerations
Permissions
The Office 365 Outlook connector (and its HTTP request action) requires the Calendars.ReadWrite delegated permission. If you are using a service principal (application permissions), the behavior may differ, and you might need to manage notification settings explicitly. For most personal calendar scenarios, the delegated permission is sufficient.
Calendar Type
This approach works with the user’s default calendar (/me/calendars/{id}). If the meeting is on a shared or group calendar, replace me with the appropriate user or group identifier.
Error Responses
If you receive a 400 Bad Request, double‑check the JSON syntax. The attendees array must be a valid JSON array. Also ensure the time field in the status uses the exact format "0001-01-01T00:00:00Z" (the default “none” time).
Common Mistakes and How to Avoid Them
| Mistake | Consequence | Prevention |
|---|---|---|
| Using Update Event (V4) action | All attendees receive an update email | Use Send an HTTP request with PATCH instead |
Forgetting to include type (required/optional) | The attendee is not added correctly | Always specify type in the attendee object |
Using a malformed calendarId or eventId | The HTTP request fails with 404 | Verify the IDs by first retrieving the event |
| Not appending the attendee to the existing array | The patch body contains only the new attendee, removing all others | Always start with the current attendees array from the GET response |
Final Recommendation
For any scenario where you need to add an attendee to a meeting without notifying the entire group, the Office 365 Outlook – Send an HTTP request action paired with the Graph API PATCH method is the reliable, low‑code approach. It keeps existing participants undisturbed while seamlessly adding the new person. Remember to store the existing attendees array before appending, and always test in a non‑production environment first.
References
- Original article by Matthew Devaney: Power Automate Add Attendee To Meeting And Don't Email Others
- Microsoft Graph API – Update event: Learn more
Core principles for resilient, maintainable, and efficient cloud flows, distilled from real-world implementations.
Build flows that gracefully handle failures and automatically notify you with run details.
Discover the trade-offs between Content-ID, Base64, and the Microsoft Graph API for embedding images in Power Automate emails. This guide covers which method works best for Outlook, Gmail, and more.