Sending birthday emails is a great way to make someone feel unique and valued, whether it’s for colleagues, clients, or friends. However, remembering everyone’s birthday can be challenging. That’s where Power Automate comes in!
In this tutorial, we will create a SharePoint list to store individuals’ names and birth dates. Power Automate will check the list daily; if it’s someone’s birthday, it will automatically send them an email.
I will also guide you on how to send birthday emails using data stored in an Excel file using Power Automate.
Send Birthday Email Using Power Automate
Imagine you are part of an HR team and want to ensure all employees receive a personalized birthday email on their special day.
To achieve this, we will maintain a SharePoint list called “Birthday Tracker,” where we can store the details of all employees, including their names and birthdates. Power Automate will check this list daily and email employees celebrating their birthdays.

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 day, so here, select 1 Day.

2. Add a Get items action to provide the Site Address and List Name where the employee details are stored.

This fetches all the items (employee records) from the SharePoint list, including their DOBs.
3. Add an Apply to each control action and set its input to the output of the Get items action.

4. Inside this control, Add a Compose action and use this expression to extract only the month and day from the DOB:
formatDateTime(item()?['DateofBirth'],'MM-dd')The Compose formats the DOB to “MM-dd” (month and day), which helps us match it to today’s date.

5. Add a Condition control to compare the formatted DOB with today’s date. Use this expression to get today’s date in “MM-dd” format:
formatDateTime(utcNow(),'MM-dd') 
6. Inside the Ture branch of the condition, Add a Send an email (V2) action and provide below parameters:
- To: Employee’s email address (map it from dynamic content).
- Subject: “Happy Birthday!” or a custom subject line.
- Body: Write a personalized birthday wish.

Save and test the flow manually. You will see if any employee has today their birth date that employee receives an email.

Patti Fernandez received a birthday email because her birthdate is already stored as today’s date in the SharePoint list.
Send Birthday Emails From Excel Using Power Automate
In the above example, we explored how to send birthday emails using Power Automate with data stored in a SharePoint list. But what if the birthday information is stored in an Excel file instead? No worries, with the help of Power Automate, we can handle that.
If your birthday data is saved in an Excel file, whether in OneDrive or a SharePoint document library, Power Automate can still be used to create an automated flow. Connecting to your Excel file, Power Automate can automatically retrieve data, check for today’s birthdays, and send personalized emails.
In this tutorial, I will show you how to set up a Power Automate flow that sends birthday emails using data from an Excel file.
I created an Excel file named “Birthday Records,” stored in a SharePoint document library, and formatted it as a table. The table includes columns like Name, Email, and Date of Birth:

Now follow the below steps:
1. Log in to Power Automate and select + Create -> Scheduled cloud flow. Enter the flow name, choose the starting date and time, and set the repeat frequency to Every 1 Day. Click Create.

This ensures the flow runs daily to check for birthdays.
2. Add a List rows present in a table action and provide below parameters:
- Location: Select the location where the Excel file is stored.
- Document Library: Choose the document library (SharePoint site).
- File: Select the Excel file (Employee’s Birthday).
- Table: Choose the table name from the dropdown.

3. Add Initialize variable actions Name: DOB, Type: String, Value: (leave blank).

4. Add an Apply to each action and set the input as the Value dynamic content for the List rows present in a table action.
Inside the loop, Add Set variable actions. Set the variable to the dynamic content of the DOB column.

5. Add a Compose action with the following expression to format the DOB into MM-dd format:
addDays('1900-01-01', sub(int(variables('DOB')), 2), 'MM-dd')
6. Add a Condition action inside the Apply to each loop, like the first example.

7. Add Send an email (V2) action to send the birthday email. Provide:
- To: The Email ID variable.
- Subject: A personalized subject, such as “Happy Birthday, [Name]!”
- Body: Add your custom message. Use dynamic content to personalize it further.

Save the flow, then test it by triggering it manually to ensure it sends the email as expected.

Conclusion
This tutorial taught us how to use Power Automate to send automated birthday emails from a SharePoint list or an Excel file. First, we created a SharePoint list to store employee details, including their birthdates, and set up a scheduled flow to check the list daily and send an email if it’s someone’s birthday.
Then, we explored how to achieve the same goal with data stored in an Excel file, using Power Automate to retrieve the birthdate, compare it with today’s date, and send a personalized email.
You may also like:
- Send Email Using If Condition in Power Automate
- Convert a String to an Integer in Power Automate
- Add Condition Based On Form Response Using Power Automate
- Send an Email When an Item is Deleted from the SharePoint List Using Power Automate
- Send Monthly Email Reminder for a Due Date Using Power Automate
- Export SharePoint List to Excel and Send an Email Using Power Automate
- Send Emails to Multiple Recipients from a SharePoint List 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.
Hi – is there a way to include an attachment to the email in this flow? I’ve created a branded e-card and would like it to be attached – its saved on sharepoint, and also in the list but I can’t seem to add it to the flow (even using the ‘attachment’ section when composing the email..
HELP!
Thanks!
Please can you add screen shot of step 7 or a more definite way one can understand that particular line
you seem to compare the DOB to today’s date, but it will always return false as the year will always be different, no? I believe you only have to compare Month and Day with Today()
Good day,
How do I send a Birthday message to multiple people on the same day. Currently, my flow only send a message to the first person where the condition is true and fails on the rest where the condition is true.