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

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Automate / Notification on overdu...
Power Automate
Suggested Answer

Notification on overdue items

(1) ShareShare
ReportReport
Posted on by 6
Hi,
 
I have a list created within my SharePoint. The list contains a number of task which includes column like Reference #, Key Contact, Due Date, Status, etc. I built a flow in Power Automate where an email is sent to the Key Contact person listed in the column when the task is 7 days before due date, 3 days before due date, and 1 days before due date. After it will continue to send an alert 1 day after, 3 days after, and 7 days after the due date. However, the flow I created counts only calendar dates and I want to change it to count Business dates. This has becoming a challenge and would like some assistant on this.
 
i have included my flow so far.
 
Thanks
Last part of the ...
Middle part of th...
Top part of the f...

Your file is currently under scan for potential threats. Please wait while we review it for any viruses or malicious content.

Categories:
I have the same question (0)
  • Suggested answer
    11manish Profile Picture
    1,973 on at
    Power Automate does not natively support business-day calculations, so the recommended approach is to maintain a separate business calendar (including weekends and holidays) and calculate reminder dates by selecting the nth business day relative to the due date.
     
    This ensures accurate and scalable handling of business-day-based reminders.
     
    My recommendation for you
    Go with:
    • Business Calendar list (best approach)
    • Daily scheduled flow
    • Lookup-based calculation
  • Suggested answer
    Sunil Kumar Pashikanti Profile Picture
    2,058 Moderator on at
     
    One of the most common challenges in Power Automate is sending notifications based on business days. Since the platform does not have a built-in function to skip weekends or holidays, we often end up with calendar-based logic that sends a “3-day reminder” on a Monday for a task due on Wednesday.
     
    The most reliable way to handle this is to run a daily flow that “walks” through the calendar day by day to calculate a true business-day gap.
     
    How it works
    Instead of pre-calculating dates, this flow runs every day, checks each active task, and calculates how many business days exist between today and the due date. If that count matches 1, 3, or 7, the email is triggered.
     
    Step-by-step build guide
    1. Global setup (top of flow)
    Start with a Recurrence trigger set to run every 1 day. Before entering any loops, initialize your variables at the top level:
    • varCount (Integer) – to store the business day count
    • varToday (String) – current date without time
    • varDate (String) – working date used in the loop
    • varDueDate (String) – due date of the task
    • varDirection (Integer) – controls forward or backward movement
    • varIsBefore (Boolean) – indicates if task is upcoming or overdue
    2. Get your tasks
    Add a Get items action from SharePoint. Use a filter query such as: Status eq 'Active'. This ensures you only process relevant tasks.
     
    3. Apply to each (process each task)
    Inside the loop, reset variables for the current item:
    • Set varCount = 0
    • Set varToday = startOfDay(utcNow())
    • Set varDate = variables('varToday')
    • Set varDueDate = startOfDay(item()?['DueDate'])
    • Set varDirection = if(less(variables('varToday'), variables('varDueDate')), 1, -1)
    • Set varIsBefore = less(variables('varToday'), variables('varDueDate'))
    4. Business day calculation (Do Until loop)
    Add a Do Until loop with the condition:
         equals(variables('varDate'), variables('varDueDate')) OR greaterOrEquals(variables('varCount'), 30)
    Inside the loop:
    Step A: Move date: Set varDate = addDays(variables('varDate'), variables('varDirection'))
    Step B: Check if working day: Use a condition to check dayOfWeek(variables('varDate')). If the day is not 0 (Sunday) and not 6 (Saturday), then Increment varCount by 1.
     
    5. Triggering the email
    Now apply your conditions.
    Before due date: Send email when varIsBefore is true AND varCount is 1, 3, or 7.
    After due date: Send email when varIsBefore is false AND varCount is 1, 3, or 7.
     
    Optional improvement (recommended)
    To prevent duplicate emails during retries or re-runs, add a SharePoint column (e.g., LastReminderKey). Before sending an email, check if the key (like BEFORE_3) already matches. After sending, update the column.
     
    Why this approach works well
    Accuracy: It correctly treats a Friday-to-Monday gap as 1 business day, not 3 calendar days.
    Flexibility: You can easily extend this to include holidays by checking against a holiday list.
    Simplicity: No need for complex wait actions. The flow simply asks: “Is today a milestone day for this task?” and acts accordingly.
     
    Let me know if it works!
     
    ✅ If this answer helped resolve your issue, please mark it as Accepted so it can help others with the same problem.
    👍 Feel free to Like the post if you found it useful.

    Sunil Kumar Pashikanti, Moderator
    Blog:
     https://sunilpashikanti.com/posts/

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

Introducing the 2026 Season 1 community Super Users

Congratulations to our 2026 Super Users!

Kudos to our 2025 Community Spotlight Honorees

Congratulations to our 2025 community superstars!

Congratulations to the March Top 10 Community Leaders!

These are the community rock stars!

Leaderboard > Power Automate

#1
Vish WR Profile Picture

Vish WR 873

#2
Valantis Profile Picture

Valantis 820

#3
Haque Profile Picture

Haque 505

Last 30 days Overall leaderboard