Here's my solution, it's a bit more flexible than the one created by Martin above as it retains all information from the original meeting, and you don't have to create an artificial location for it (which means you can use the location field to actually reserve an office conference room, etc.).
The usage in iCal is very simple:
- create a meeting as usual – add attendees, conference room, etc.
- add
*
to the end of the meeting's subject – I used star symbol, but this is customisable, see below.
- wait, and let the magic happen ;)
Ok, let's go:
In Power Automate, create an Automated cloud flow
In the modal that appears, set flow name, and search for the trigger as shown below (choose the version applicable to your Outlook, for me it's V3)
Flow builder page appears. Make sure it looks like shown below, scroll down to see steps explained.
- Pick the calendar that you're using
- Add the condition that checks if the meeting subject ends with the star symbol. As you can see, uou can configure this to be any unique symbol, such as #, @, or whatever. To me, a star felt simple and unobtrusive.
- ("If yes" section) Create an action which will create a new Teams meeting, using data from our iCal event (subject, body, time zone, start/end times).
- Create an action which will update our iCal event, using all the original data we provided BUT ALSO it will add the Teams link, taking it from the Teams meeting created in step 3. It's referring to the Teams meeting via the "joinUrl" attribute.
- Create an action which will delete the Teams meeting created in step 3, since we don't need it anymore. It's referring to the meeting via the "id" attribute.
When you click on any field in the flow builder, it will allow you to pick attributes ("dynamic content") from the list. You will find all the Outlook-related ones which are shown on the image, as well as the Teams-related ones. The list is long so make sure you scroll down or use the filter:
That's it, now just create an event in iCal, wait a bit, and there you go!