web
You’re offline. This is a read only version of the page.
close
Skip to main content
Community site session details

Community site session details

Session Id :
Power Automate - Using Flows
Suggested answer

findmeetingtimes randomly ignores meetings already in Outlook calendar.

(0) ShareShare
ReportReport
Posted on by 29
Hi Folks,
 
A little hard to explain this one. I have a flow that involves find meeting times to do a double check on a time requested via PowerApps that is added to a SharePoint list and worked through in order of receipt so that the required attendee isn't double booked.
 
Most of the time this works perfectly, however every now and then the required attendee will get a second meeting at the same time as one already in their calendar. 
 
I have set the findmeetingtimes action like so:
 
 
The meeting duration, Start and End Times are all dynamic based on data earlier in the flow, and I have ensured that the time checked is accurate in terms of timezone. Potential meeting durations are: 15, 30, 45, 60, 75, 90, 105 and 120.
 
I can't seem to pin down a pattern for why it happens, and thought it may be some sort of delay between the first meeting hitting the required users local outlook calendar and syncing with the cloud version of their calendar maybe, however have instructed all potential required attendees to set up a second sync for 1 minute in their outlook, and those who I have confirmed have done this still intermittently get this issue.
 
I have the subsequent create event action set to show the required attendee as busy.
 
Sometimes the overbooking can come through 30 minutes or more after the previous one, and most users tend to mark as accepted, so I don't believe it's a tentative acceptance issue.
 
I've looked for variations on my problem in these forums, but can't seem to find anyone experiencing the same issue.
 
As noted, it works fine most of the time, when it returns that the required attendee is already busy at that time, the flow diverts to send the requestor an email that the meeting time has been taken and to raise a new request.
I have the same question (0)
  • Suggested answer
    Ninjasabi Profile Picture
    122 on at
    findmeetingtimes randomly ignores meetings already in Outlook calendar.

    Your flow is encountering occasional overbooking issues, likely due to delays in calendar synchronization or timing conflicts between actions in your Power Automate flow. Here's a systematic way to address this issue and improve reliability:


    Analysis of the Issue

    1. Potential Causes:

      • Calendar Sync Delay: There could be a lag between adding the first meeting to the attendee's calendar and its reflection in the cloud (or availability through the Graph API).
      • Race Condition: If multiple requests are processed nearly simultaneously, both might see the attendee as available before the first booking is fully confirmed.
      • Tentative vs. Confirmed Events: Some calendar systems might treat newly created events as "tentative" for a short period, which can confuse availability checks.
    2. Why It Happens Intermittently:

      • Calendar sync and latency are variable and influenced by factors like network performance and user settings.
      • Timing inconsistencies in flow execution can occasionally create overlaps.

    Steps to Resolve

    1. Add a Delay Before Availability Check

    • Add a small delay (e.g., 1-2 minutes) after creating the first meeting and before the flow checks for availability of subsequent meetings.

    • This allows time for the event to sync across Outlook's systems.

      Action:

      • Add a Delay action:
        • Duration: PT2M (2 minutes).
      • Position: After the meeting creation step and before checking for availability.

    2. Increase the Window for "Find Meeting Times"

    • Adjust the "Start and End Time" range in the Find Meeting Times action to allow for slight timing overlaps. For instance, extend the check range by a minute before and after the requested time.

      Example Expression for Start Time:

      addMinutes(<StartTime>, -1)

      Example Expression for End Time:

      addMinutes(<EndTime>, 1)

    3. Validate the Busy Status Explicitly

    • Use an explicit Get calendar view of events (V3) action to cross-check if the attendee is marked as "Busy" during the requested time.

    • Steps:

      1. Retrieve the attendee's calendar for the specific time window.
      2. Use a Filter array to check if any event overlaps with the requested meeting time.
      3. If the array contains events, divert the flow to inform the requestor.

      Filter Expression:

      and(
      greaterOrEquals(items('Apply_to_each')?['start']['dateTime'], <RequestedStartTime>),
      lessOrEquals(items('Apply_to_each')?['end']['dateTime'], <RequestedEndTime>)
      )

    4. Log the Issue for Analysis

    • Add a logging mechanism (e.g., append data to a SharePoint list or Excel file) whenever the flow detects overlapping bookings.

    • Include:

      • Requested time.
      • Attendee.
      • Calendar data from the availability check.

      This can help identify patterns, such as specific attendees or timeframes where the issue is more frequent.


    5. Use Graph API for Precision

    • The FindMeetingTimes action might not account for the most recent updates due to sync delays. If possible, use the Microsoft Graph API directly to check availability:
      • Use the Get schedule endpoint:
        POST https://graph.microsoft.com/v1.0/me/calendar/getSchedule
      • Request availability for the attendee(s) for the specific timeframe.

    Flow Example Outline

    1. Trigger: Process meeting request.
    2. Find Meeting Times: Use the FindMeetingTimes action to check availability.
    3. Delay: Add a 1-2 minute delay after creating the first meeting.
    4. Get Calendar View: Use Get calendar view of events to validate the "Busy" status explicitly.
    5. Condition:
      • If available, proceed with creating the event.
      • If busy, notify the requestor.
    6. Log Data: Record any detected overlaps for further analysis.

    Testing and Monitoring

    1. Test the flow with multiple simultaneous meeting requests to simulate the problem scenario.
    2. Analyze the logs to identify specific patterns or gaps in the flow's logic.

    Let me know if you need help implementing these changes or testing your updated flow! 😊

  • cjbaguley Profile Picture
    29 on at
    findmeetingtimes randomly ignores meetings already in Outlook calendar.
    Thanks for the replay @Ninjasabi,
     
    I did already have a delay built in, this is part of a parent/child flow pair, with the parent only allowing one run at a time and awaiting a response from the child before running the next.
     
    From your suggestions, I have modified the "Get Calendar View of Events" suggestion, as to my knowledge, we can't use that within power automate to view another users calendar without having the calendar ID, and that calendar being shared with the flow run owner. 
     
    What I have done instead is use the Service Account that runs this flow (which is also the organizer of these meetings) and used the "search" parameter built into "Get Calendar View of Events v3" to search for the relevant required users email in the output array
     
    and then using an if empty = true condition to compose a free/busy status:
     
     
    Have tested in a separate dummy flow, and currently testing without the response emails in the main real flow before committing to it. 
     
    Thank you so much for the direction, I'll check back in the New Year to report on the solutions efficacy. 
     
    Cheers
    Chris

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Responsible AI policies

As AI tools become more common, we’re introducing a Responsible AI Use…

Chiara Carbone – Community Spotlight

We are honored to recognize Chiara Carbone as our Community Spotlight for November…

Leaderboard > Power Automate

#1
Michael E. Gernaey Profile Picture

Michael E. Gernaey 535 Super User 2025 Season 2

#2
Tomac Profile Picture

Tomac 348 Moderator

#3
developerAJ Profile Picture

developerAJ 262

Last 30 days Overall leaderboard

Featured topics

Restore a deleted flow