In my recent task, I encountered an interesting scenario where a user wanted to set up an automated email reminder for tasks due in the current month. The idea was to send a single, consolidated email to each assigned person, listing all their tasks with expiry dates within the month.
In this tutorial, I will tell you how to send monthly email reminder for a due date using Power Automate.
Send Monthly Email Reminder for a Due Date Using Power Automate
For example, I created a SharePoint list called Task Tracker with the below data:

If someone had three tasks due in December, they would receive one email on the first day of the month with a summary of all three tasks.
Now follow the below steps:
1. In the Power Automate, click the Scheduled Cloud flow, enter the Flow name, and provide the following:
- Starting: Provide the date you want to run your flow, like 1st December.
- at: Provide the time you want to run the flow, like 10:00 AM.
- Repeat every: We want to run the flow every Month, so here, select 1 Month.

2. Add a compose action and provide the below CSS, which we will use later:
<style>
table {
border: 1px solid #1C6EA4;
background-color: #EEEEEE;
width: 100%;
text-align: left;
border-collapse: collapse;
}
table td, table th {
border: 1px solid #AAAAAA;
padding: 3px 2px;
}
table tbody td {
font-size: 13px;
}
table thead {
background: #0602e1;
border-bottom: 2px solid #444444;
}
table thead th {
font-size: 15px;
font-weight: bold;
color: #FFFFFF;
border-left: 2px solid #D0E4F5;
}
table thead th:first-child {
border-left: none;
}
</style>
3. Add an Initialize variable action and provide the below parameters to store the current month:
- Name: varCurrentMonth
- Type: Select String
- Value: Provide the below expression:
formatDateTime(utcNow(),'MM')
4. Next, add an Initialize variable action and provide the below parameters to store the current year:
- Name: varCurrentYear
- Type: Select String
- Value: Provide the below expression:
formatDateTime(utcNow(),'yyyy')
5. Add again Initialize variable action and provide the below parameters to store Assigned To people email:
- Name: varAssignedTo
- Type: Select Array

6. Add Get items action and provide the below parameters to retrieve all tasks from the SharePoint list:
- Site address: Provide a specific site address from the drop-down.
- List Name: Select a specific list from the drop-down.
- Filter Query: Provide the below information:
ExpiryDate ge '@{utcNow()}'
7. Add the Filter array action. For the From field, use the below expression to filter this year data:
outputs('Get_items')?['body/value']Add a condition in the Filter array:
- Left-hand side: Use the expression:
formatDateTime(item()?['ExpiryDate'],'yyyy')- Right-hand side: Use the expression:
variables('varCurrentYear')
8. Add the Filter array action. For the From field, use the below expression to filter this month’s data:
body('Filter_array')Add a condition in the Filter array:
- Left-hand side: Use the expression:
formatDateTime(item()?['ExpiryDate'],'MM')- Right-hand side: Use the expression:
variables('varCurrentMonth')
9. Next, add Apply to each action and set the output of the above Filter array action in the Select an output from previous steps parameter.
body('Filter_array_1')Inside the action, add Append Array variable action to add the Assigned To people email address:
- Name: Provide the above array variable name(varAssignedTo).
- Value: Provide AssignedTo email from the dynamic content or below expression:
item()?['AssignedTo/Email']
10. Now, add a Compose action and use the following expression to get the unique email addresses assigned to people:
union(variables('varAssignedTo'),variables('varAssignedTo'))
11. Then, add an Apply to each action and set the output of the above Compose action in the Select an output from previous steps parameter.
outputs('Compose')
12. Add the Filter array action. For the From field, use the below expression to filter Assigned To person email:
body('Filter_array_1')Add a condition in the Filter array:
- Left-hand side: Use the expression:
items('Apply_to_each_1')- Right-hand side: Use the expression:
item()?['AssignedTo/Email']
13. Then add a Create HTML table action and provide the required fields:
- From: Provide the below expression from dynamic content.
body('Filter_array_2')Click Show all to display all the advanced parameters.
- Columns: Select Custom column from the drop-down options.
| Header | Value |
|---|---|
| Task ID | item()?[‘TaskID’] |
| Task Name | item()?[‘TaskName’] |
| Description | item()?[‘Description’] |
| Expiry Date | formatDateTime(item()?[‘ExpiryDate’],’dd/MM/yyyy’) |

14. Add a Send an email action and provide the below parameters:
- To: Provide below expression:
items('Apply_to_each_1')- Subject: Provide the below subject, or you can modify it according to the requirement:
Task Reminder: Upcoming Expiry Date in @{formatDateTime(utcNow(),'MMMM yyyy')}- Body: Provide below body:
Dear user,@{outputs('Compose_|_CSS')}
This is a reminder of the tasks assigned to you that are due in @{formatDateTime(utcNow(),'MMMM yyyy')}. Below is the list of tasks:
@{body('Create_HTML_table')}
Run the flow to Send Monthly Email Reminders
Save and test the flow manually. You will see that the assigned people whose tasks expire this month receive an email in Outlook, as shown in the screenshot below.

Conclusion
In this tutorial, we covered how to create a Power Automate flow to send monthly email reminders for tasks due in the current month. We started by setting up a scheduled flow to run on the first day of each month. Using filter actions, we filtered tasks based on their expiry dates. Finally, we created a personalized HTML email summarizing the tasks for each individual and sent it automatically.
Related Power Automate tutorials:
- Move Email to Folder Using Power Automate
- Create XML File From CSV in Power Automate
- Send Birthday Emails from Excel Using Power Automate
- Save an Email Message to SharePoint Using Power Automate
- Check if a field exists in SharePoint Using Power Automate

After working for more than 18 years in Microsoft technologies like SharePoint, Microsoft 365, and Power Platform (Power Apps, Power Automate, and Power BI), I thought will share my SharePoint expertise knowledge with the world. Our audiences are from the United States, Canada, the United Kingdom, Australia, New Zealand, etc. For my expertise knowledge and SharePoint tutorials, Microsoft has been awarded a Microsoft SharePoint MVP (12 times). I have also worked in companies like HP, TCS, KPIT, etc.