Creating a Microsoft Power Automate cloud flow

blog 2

Creating a Microsoft Power Automate cloud flow to accomplish the described task involves several steps, mainly focusing on triggering the flow, searching the calendar, and sending a message through Teams. However, please note that detailed coding or scripting is not directly involved in creating Power Automate flows as they are primarily built through a graphical interface using pre-defined actions and triggers.

Here’s a step-by-step guide on how to set up this flow in Power Automate:

1. Schedule the Flow

– Trigger: Use the “Recurrence” trigger to schedule the flow to run every 30 minutes.

2. Search the Calendar for the Meeting

– Action: Add the “List events (V4)” action from the Outlook 365 suite of actions.

  – Mailbox Address: ``

  – Start Time: Use the expression `utcNow()` to define the current time as the start time for searching.

  – End Time: Use an expression to search for events up to 3 days ahead. For example, use `addDays(utcNow(), 3)` to calculate the end time.

3. Filter the Results for the Specific Meeting

– Condition: Add a condition to filter the events by subject or attendees.

  – Attendees: Check if `` is in the attendees’ list. This might involve parsing the attendees’ email addresses from the event details and comparing them.

4. Send a Teams Message if Criteria Met

– If the condition is met (meaning the meeting is within 3 days):

  – Action: Use the “Post a message (V3)” action from the Microsoft Teams suite of actions.

    – Team: Select the appropriate team where `` is a member.

    – Channel: Select the appropriate channel, or use a direct message if applicable.

    – Message: “Reminder: Create an email with an agenda for Life Chiro. The meeting is happening in 3 days.”

Implementation Notes:

– When configuring the “List events (V4)” action, ensure that you have the appropriate permissions to access ``’s calendar.

– The condition to filter events by attendee requires parsing the attendees object from the event details, which might involve using expressions to iterate through the attendees and check if `` is listed.

– The “Post a message (V3)” action in Teams may require setting up a bot or using a specific connection that has permission to post messages on behalf of users.

Since Power Automate’s interface and capabilities might change, it’s always a good idea to check the latest documentation for each action and trigger for any updated configurations or new features that could simplify the process or offer more precise control over the flow’s logic.

Creating a flow in Microsoft Power Automate using the code view involves writing JSON that represents the flow’s logic, triggers, and actions. Below is an example JSON structure that outlines the flow you described. This example assumes familiarity with Power Automate’s schema and may require adjustments based on the exact configurations of your Office 365 and Microsoft Teams environments.



  “type”: “Flow”,

  “schema”: ““,

  “triggers”: {

    “Recurrence”: {

      “type”: “Recurrence”,

      “recurrence”: {

        “frequency”: “Minute”,

        “interval”: 30




  “actions”: {

    “ListEvents”: {

      “type”: “ApiConnection”,

      “operationId”: “ListEvents”,

      “parameters”: {

        “userId”: ““,

        “StartDateTime”: “@{utcNow()}”,

        “EndDateTime”: “@{addDays(utcNow(), 3)}”


      “dependsOn”: []


    “Condition”: {

      “type”: “If”,

      “expression”: “@contains(actions(‘ListEvents’).outputs.body[‘value’], ‘‘)”,

      “actions”: {

        “Yes”: {

          “PostMessage”: {

            “type”: “ApiConnection”,

            “operationId”: “PostMessage”,

            “parameters”: {

              “id”: “/teams/{team-id}/channels/{channel-id}/messages”,

              “message”: “Reminder: Create an email with an agenda for Life Chiro. The meeting is happening in 3 days.”


            “dependsOn”: []



        “No”: {}




  “outputs”: {},

  “connections”: {

    “office365”: {

      “connectionId”: “{connection-id}”,

      “connectionName”: “office365”,

      “id”: “/providers/Microsoft.PowerApps/apis/shared_office365”


    “teams”: {

      “connectionId”: “{connection-id}”,

      “connectionName”: “teams”,

      “id”: “/providers/Microsoft.PowerApps/apis/shared_teams”





Notes for Adaptation:

– Replace `{team-id}`, `{channel-id}`, `{connection-id}` with the actual IDs relevant to your Teams setup and Power Automate connections.

– The condition `”@contains(actions(‘ListEvents’).outputs.body[‘value’], ‘‘)”` is a simplified example. In reality, you may need to iterate over the events’ attendees to find a match for ``. Adjust this logic based on your specific needs.

– This JSON is a template. Specifics like `userId`, `team-id`, `channel-id`, and `connectionId` values need to be replaced with actual values from your environment.

– Before using this JSON, ensure you have the necessary permissions and connections set up in Power Automate for accessing the Outlook calendar and posting messages in Teams.

Please be aware that Power Automate’s functionality and available operations might vary over time. Always refer to the latest documentation for the most current information and verify the syntax and parameters for each action in your flow.