Power Automate flow: on a daily schedule, check items due in 2 days, then send a reminder

How to Get an Automatic Reminder Before a Deadline (Power Automate, Step by Step)

  • TIPS & TRICKS/
  • How to Get an Automatic Reminder Before a Deadline (Power Automate, Step by Step)/

How to Get an Automatic Reminder Before a Deadline (Power Automate, Step by Step)

Every team has a list somewhere — contract renewals, DBS checks, policy reviews, project milestones — and every team has the same problem with it: nobody looks at it until the deadline has already passed. Someone has to remember to check, and “someone” usually forgets.

In about 15 minutes you'll build a Power Automate flow that checks that list for you, every day, and emails a reminder automatically when something's due in two days — before it's a problem, not after. No code, no daily scroll through a spreadsheet — just the tools already in your Microsoft 365 subscription.

This is the fourth in our build-along series of seven Power Automate guides — Flow 4, following Flow 1, Flow 2 and Flow 3. Where those flows react to something happening, this one is different: it runs on a schedule and goes looking for work itself — the pattern behind every automated check, reminder or report you'll ever build.

What you'll need before you start

  • A Microsoft 365 business account with SharePoint and Power Automate (standard business plans include both).
  • A SharePoint list with a due-date column — contract renewals, task tracker, whatever you're already tracking. Note the exact column name; you'll need it twice.
  • About 15 minutes.
Time-saver: if you don't have a list yet, create one with just three columns — Title, Due Date (Date column), Owner (Person column) — and add one test row due two days from today before you start.
A simple SharePoint list — Title, Due Date and Owner columns — with a few contract renewal rows

The flow at a glance

Power Automate flow: on a daily schedule, check items due in 2 days, then send a reminder

In plain English: on a schedule (once a day) → check the list for anything due in two days → send a reminder for each match. Three steps. The first one is what makes this flow different from Flows 1–3.

Step 1 — Create the flow and set the schedule

  1. Go to make.powerautomate.com, sign in with your work account, and choose Create → Scheduled cloud flow.
  2. Name it something like “Deadline reminder — daily check.”
  3. Set Starting: today, a sensible time (e.g. 08:00). Set Repeat every: 1 Day. Click Create.
The Build a scheduled cloud flow dialog: flow name, start date and time, and Repeat every 1 DayThe Recurrence trigger set to run every 1 Day at 08:00, with the preview reading "Runs at 8:00 every day"
This is the pattern that's new here. Flows 1–3 all react to something (an email arriving, a form being submitted). A scheduled flow does the opposite — it wakes up on its own and goes looking for work. Once this clicks, checks, reports and digests all become easy.

Step 2 — Get the items due in two days

  1. Click + New step, search Get items, and choose it under the SharePoint connector.
Searching for "Get items" in Add an action and choosing it under the SharePoint connector
  1. Set Site Address to your SharePoint site, and List Name to your list.
  2. Under Advanced parameters, click Show all (older guides call this "Show advanced options"), then fill in Filter Query:
The Get items action with Site Address and List Name set, and Advanced parameters expanded to reveal Filter Query

DueDate ge '@{formatDateTime(addDays(utcNow(), 2), 'yyyy-MM-dd')}T00:00:00Z' and DueDate lt '@{formatDateTime(addDays(utcNow(), 3), 'yyyy-MM-dd')}T00:00:00Z'

Why a range, not eq? A SharePoint date column stores a full timestamp (e.g. 2026-08-02T09:00:00Z), not just a date. So DueDate eq '2026-08-02' matches nothing — the stored value has a time on it, and nothing is due at exactly midnight. The range above ("on or after the start of that day, and before the start of the next") catches everything due that day, whatever time is attached. This is the single most common reason a "due in X days" flow silently sends no reminders.
The Filter Query field holding the two-part date range that matches anything due on the target day

Replace DueDate with your column's internal name — not necessarily what's shown in the list header (see the gotcha below).

This step is doing the actual thinking: it asks SharePoint for "everything due at any point on the day two days from now" and hands back only those rows.

Step 3 — Send a reminder for each match

Get items can return more than one row, so you need to loop over whatever comes back.

  1. Click + New step, search Apply to each, and set its input to value (the output of Get items).
Apply to each with its input set to the body/value output of Get items
  1. Inside the loop, add Send an email (V2) (Outlook) — or Post message in a chat or channel (Teams), if that's where your team actually looks.
  2. Fill it in with dynamic content from the current item.
    • To: the Owner column's email, if you added one — otherwise your team's shared inbox.
    • Subject: e.g. “Reminder: [Title] is due in 2 days.”
    • Body: the item's Title, Due Date and a link back to the list.
Send an email (V2) inside the loop with the To, Subject and Body fields filled in
  1. Click Save.

Step 4 — Test it

  1. Add a test row to your list with Due Date set to two days from today.
  2. Open the flow and click Test → Manually → Test (don't wait for the schedule).
  3. Check the run: a green tick on Get items means it found your row; a green tick on Apply to each means the reminder went out. Check the inbox or Teams channel to confirm.
A successful test run: green ticks on Recurrence, Get items and Apply to each, with the loop showing "1 of 2" and the email step succeeded

If Get items runs but returns nothing, the filter query is the first place to look — see the gotcha below.

Common gotchas (and the fixes)

  • Filter Query returns nothing, even though a row clearly matches. Two usual suspects. First, the comparison: use the date range shown in Step 2, not DueDate eq 'a-date' — a date column carries a time, so an exact-date match finds nothing. Second, the column's internal name: "Due Date" on screen is often DueDate or Due_x0020_Date underneath. Check it in List settings → click the column → look at the URL for the real name, and use that in the filter.
  • The flow “worked” in testing but never fires on its own. A scheduled flow only runs once it's turned On — check the flow's status after you finish building; new flows sometimes save as Off.
  • Dates are a day out. SharePoint stores dates in UTC; if your due dates are entered in local time, add or subtract the difference before comparing, or compare on the date only (as in the filter above) rather than the full timestamp.
  • Nobody got an email. Check the Owner column is actually a Person field with a real email address, not free text — free text has no email to send to.

Make it your own

  • Change addDays(utcNow(), 2) to 1 or 7 to remind a day before, or a week out — or add a second Get items step to send reminders at more than one interval.
  • Add a Condition that checks how many days overdue an item is (rather than just “due in 2 days”), so anything already missed gets escalated instead of silently reminded once.
  • Swap the SharePoint list for a Planner “Get tasks” step if your deadlines already live in Planner rather than a list.

You just built a flow that remembers so nobody has to

The pattern here — wake up on a schedule, go check something, act on what you find — is one of the most useful shapes in Power Automate, because it doesn't need a person to start it. Once you're comfortable building one scheduled check, you're most of the way to a daily report or a weekly digest.

If you'd rather build this hands-on, for your own list, with a trainer in the room, that's exactly what our Power Automate Introduction course is for. Want conditions, escalation logic and multi-step approvals next? Power Automate Advanced picks up where this leaves off.

Next in the series: Flow 5 — Route approvals in Teams without the email tennis.

Related Articles
  • Calculate Variance Using Excel
    Tips & Tricks

    Can you Calculate Variance Using Excel?

    In this guide, we explain variance as a measure of how widely data points deviate from the mean and shows why understanding this spread is useful for deeper insight and risk assessment. It walks readers through calculating variance in Excel, distinguishing between the VAR.S function for a sample and VAR.P for an entire population, then demonstrates each with a car-sales case study.

  • excel-lookup-multiple-criteria-team
    Tips & Tricks

    How to Use Excel Lookup with Multiple Criteria

    This blog explains how Excel’s LOOKUP functions—particularly XLOOKUP and VLOOKUP—can retrieve data based on multiple criteria. It walks through a step-by-step example of finding an employee’s sales in a specific region, showing both an XLOOKUP formula and a VLOOKUP alternative that uses a helper column.

  • excel_skills_assessment_questionnaire
    Tips & Tricks

    Excel Skills Self-Assessment Questionnaire

    This free, printable Excel Skills Self-Assessment helps you quickly gauge your level and pick the right next step in your learning path. It contains 15 multiple-choice questions spanning navigation, formulas, lookups, tables, PivotTables, charts, dynamic arrays, Power Query, and more. You’ll score yourself and interpret the result to see whether you’re Beginner, Intermediate, or Advanced - then follow tailored course recommendations based on your score.

image

Registered England and Wales: 11477692 VAT Number: GB 3123317 52All trademarks are owned by their respective owners. Click here for details.

  • image
  • iamge
  • image