Two comparisons on the same column are all a date range needs. To filter between dates in Power Automate, type a ge test for the start date and an le test for the end date in the Get items Filter Query, both as ISO dates:
DueDate ge '2026-10-01' and DueDate le '2026-10-31'
On our 620-item Service Requests list, that query returned the 22 requests due in October 2026.
In this tutorial, we’ll do a real power automate filter between dates build: the Filter Query syntax, date-only vs date-and-time columns, a dynamic last-7-days range, Filter array between two dates, and the mistakes that return nothing.
Filter Query Syntax for a Date Range
The Filter Query box in the SharePoint Get items action takes an OData filter. SharePoint runs it on the server, so only the matching rows come back to your flow.
For dates, you’ll use these comparison operators:
| Operator | Means | Example |
|---|---|---|
| ge | on or after | DueDate ge '2026-10-01' |
| gt | after | DueDate gt '2026-10-01' |
| le | on or before | DueDate le '2026-10-31' |
| lt | before | DueDate lt '2026-11-01' |
Join the two tests with a lowercase and, put each date in single quotes, and use the column’s internal name. More operators, like eq and startswith, are in our OData filter query guide.
Build the Demo Flow Step by Step
Our test list, Service Requests, lives on the SPGuides site. Its DueDate column is date-only, with due dates from 1/5/2026 to 10/11/2026. Here’s the flow, and more starters are on our Power Automate tutorials page:
- Go to make.powerautomate.com, select Create > Instant cloud flow, pick Manually trigger a flow and name it SPGuides Filter Dates demo.
- Add the SharePoint Get items action. Pick your Site Address and set List Name to Service Requests.
- Open Advanced parameters, add Filter Query and Top Count, then type the query and 1000.

Top Count matters. In the same list, Get items without it read only 100 of the 620 items.
Next, add a Compose action with length(body('Get_items_October')?['value']) to count the rows. Select Save, then Test > Manually > Run flow, and open the run:

The count was 22, including Password reset #1269 (due 10/1/2026) and Printer jam #1279 (due 10/11/2026).
Date-Only vs Date and Time Columns (and UTC)
Get items returned DueDate as 2026-10-01, with no time. The Created column came back as 2026-10-14T10:29:43Z. That trailing Z means UTC.
Here’s the catch. DueDate eq '2026-10-09' returned 0 items, although two requests are due that day. A one-day range found both:
DueDate ge '2026-10-09' and DueDate lt '2026-10-10'
So for a single day, use ge that day and lt the next day. Don’t use eq on dates.
For date-and-time columns, remember that utcNow() is UTC too. Someone in New York at 9 PM is already on tomorrow’s UTC date. Convert first with our guide on converting time zones in Power Automate.
How Do I Filter the Last 7 Days Dynamically?
Build both dates with expressions. In a Compose named Start date, addDays() in Power Automate goes back seven days, and formatDateTime() trims it to a date:

A second Compose, End date, holds formatDateTime(utcNow(), 'yyyy-MM-dd'). Our post on formatDateTime in Power Automate lists the other format codes.
Then drop both outputs into the Filter Query between single quotes:

On 10/18/2026, Start date was 2026-10-11 and End date was 2026-10-18. The query returned 2 items, the two due 10/11/2026.
You can also skip the Compose actions and write the expressions inline:
DueDate ge '@{formatDateTime(addDays(utcNow(), -7), 'yyyy-MM-dd')}' and DueDate le '@{formatDateTime(utcNow(), 'yyyy-MM-dd')}'
Change -7 to -30 for the last 30 days. Our 30-day version returned 48 items.
Filter Array Between Two Dates
Use the Power Automate Filter array action when the rows are already in your flow, or come from Excel or an HTTP call. Select Edit in advanced mode and paste:
@and(greaterOrEquals(item()?['DueDate'], '2026-10-01'), less(item()?['DueDate'], '2026-11-01'))

From was body('Get_all_items')?['value'], all 620 items. It kept 22, the same as the OData query.
It works because ISO dates sort like text: 2026-10-09 comes after 2026-10-01. If your values mix formats, compare ticks() on both sides instead. That version also returned 22.
Pro Tip: Filter at the source with the Filter Query when you can. SharePoint sends fewer rows, and the flow runs faster.
Why Does My Date Filter Return Nothing (or Everything)?
I reproduced the three most common mistakes in the same run.
1. US-style dates in Filter array. I swapped in '10/01/2026' and '10/31/2026'. The count dropped to 0, with no error:

Filter array compares text here, and “2026-10-01” is never less than “10/31/2026”. Keep both sides ISO, or see how to convert a string to a date.
2. Filtering the Created column. Created ge '2026-10-01' and Created le '2026-10-31' returned all 620 items, because every request was created 10/14/2026:

Created is when the row was added, not when work is due. Filter the date column that holds your business date.
3. Non-ISO strings in the Filter Query. DueDate ge '10-01-2026' still returned 22, since SharePoint read it as month-day-year. A day-first string like 01-10-2026 is ambiguous, so always use yyyy-MM-dd. The ISO 8601 format error is the other symptom to watch for.
Here are more date and SharePoint flow guides worth reading next:
Frequently Asked Questions
How do I filter SharePoint items between two dates in Power Automate?
In Get items, open Advanced parameters, add Filter Query and type DueDate ge ‘2026-10-01’ and DueDate le ‘2026-10-31’. Use the column’s internal name, ISO yyyy-MM-dd dates and a lowercase and.
Should I use le or lt for the end date?
For a date-only end date, le includes that day. For a date-and-time column or a single day, use lt with the next day, for example DueDate ge ‘2026-10-09’ and DueDate lt ‘2026-10-10’.
Why does my Filter Query with eq on a date return no items?
In our test, DueDate eq ‘2026-10-09’ returned 0 even though two items were due that day. A range from that day (ge) to the next day (lt) returned both.
Can I filter between dates with Filter array instead of OData?
Yes. In advanced mode use @and(greaterOrEquals(item()?[‘DueDate’], ‘2026-10-01’), less(item()?[‘DueDate’], ‘2026-11-01’)). Both sides must be ISO dates, or the comparison silently returns 0.
Where does Microsoft document the SharePoint filter operators?
Microsoft lists the supported comparison operators and date functions in Use OData query operations in SharePoint REST requests on Microsoft Learn.

Hey! I’m Bijay Kumar, founder of SPGuides.com and a Microsoft Business Applications MVP (Power Automate, Power Apps). I launched this site in 2020 because I truly enjoy working with SharePoint, Power Platform, and SharePoint Framework (SPFx), and wanted to share that passion through step-by-step tutorials, guides, and training videos. My mission is to help you learn these technologies so you can utilize SharePoint, enhance productivity, and potentially build business solutions along the way.