Update Event and Hide Attendees

join us scrabbles letters

It would appear that the standard actions for Events in Power Automate will send your attendees an email each time a new attendee is added or updated. In addition to this, attendees are visible to all. Using the Graph API and the Update Event call it is possible to add attendees without notifying others. It is also possible to hide all other attendees from each other.

I’ve previously blogged about managing events using Microsoft Forms. Put simply, enable users to register for a specific event using Microsoft Forms and Power Automate. But unfortunately this resulted in all attendees receiving an update when someone new completed the form. If you combine this blog with my solution above or watch my video on my YouTube, you can build yourself a very handy event registration system using Power Automate.

Hiding Attendees

The first challenge is to hide attendees. This can be run either as soon as a new event has been created OR each time a new attendee is added. There doesn’t appear to be a side effect of doing the latter. It’s one action, using the graph connector Send an HTTP request. Note that I have a compose containing the Event ID to simplify the URL in all of the following actions.

hide attendees on an outlook event

In order to hide the attendees, we must set the parameter hideAttendees to true. By default this is set to false on any new event. When I view the event in my personal calendar as an attendee, I can only see my own attendance. As the event organiser I can see the status of all individuals invited and I will continue to get updates when users accept or reject.

only one attendee visible in new calendar event

Adding new attendees to an event using the API

First of all, we need to send an HTTP request to GET the details of the existing event. This includes a response with the existing attendees. According to the documentation, if we then send a request to update the attendees, only those that have been added will get an email and this is certainly my experience during testing – unlike the native Outlook Connector experience.

We then need to create a new array that includes an object for a new attendee. We can specify if they are required or optional and of course their email address. I have built this using a compose action. The Microsoft documentation has further details and examples of settings that you could consider updating using this endpoint.

Now that we have the new attendee in an array, we need to merge the existing attendees with the new one. We can do this with the union expression. **Note** that I have retrieved the Attendees array by extending the default expression for the body of the HTTP request with ?[‘attendees’]. We then must place this into an Attendees object. Using a compose, we can insert the object squirly brackets {} insert the key “Attendees” and use the union expression below to join the existing and new attendee.

union(outputs('Send_an_HTTP_request_Get_Attendees')?['body']?['attendees'],outputs('Compose_New_Attendee'))

Finally we can PATCH the updated attendee object back to the event. This will ensure that the new attendee is added and sent an email, existing attendees will not receive an email and if you have implemented the hideAttendees parameter, they won’t see how many other users are attending the event.

I would love to hear if this solution has worked for you? Have you previously encountered this issue yourself in your own development? Let me know in the comments below.

Share