1. Home
  2. Guides
  3. Google Workspace
  4. How to send automated birthday emails from Google Sheets with Lido
Google Workspace

How to send automated birthday emails from Google Sheets with Lido

Use a Google Sheet of contacts and Lido to check birthdays every day and send a personalized birthday email from Gmail to anyone whose birthday is today.

  • By Nur Islam
  • 12:31 video
  • 9 steps
  • 2K views
Jump to a step (9)
Who this is for

Small businesses that want to send customers or staff a birthday greeting usually rely on someone remembering to check a list. Birthdays get missed, and writing each email by hand takes time.

Your contacts live in a Google Sheet with first name, last name, email and birthday. Lido connects to that sheet and keeps it in sync. A formula column checks whether each birthday matches today's day and month, and a send column uses Lido's Gmail function to email only the rows where that check is true.

Lido then runs the send column on a daily schedule, so birthday emails go out without anyone touching the sheet.

What you need

  • A Google account with Gmail and Google Sheets
  • A Google Sheet with First Name, Last Name, Email and Birthday columns
  • A Lido account (the video signs in with Google)

Step by step

0 of 9 done
  1. 01

    Build the birthday list in Google Sheets

    Create a Google Sheet with the columns First Name, Last Name, Email and Birthday.

    To fill it quickly from Google Contacts, select your contacts, choose More actions > Export, keep the Google CSV format and select Export. Delete the columns you do not need and paste the rest into your sheet. If your contacts do not have a date of birth, add a birthday column by hand.

  2. 02

    Sign in to Lido and create a file

    Sign in to Lido with your Google account. Select the icon at the top left to see your files, open the new untitled spreadsheet and rename it Automated Birthday Emails.

  3. 03

    Connect your Google Sheet

    Copy the link of your Google Sheet. In Lido, select Connect data > Google Sheets, paste the link and select Connect to Google Sheets. Choose your Google account, continue through the permissions, then select Next, check the preview and select Add data.

    The connection stays in sync. Edits and new rows in the Google Sheet show up in Lido after a refresh.

  4. 04

    Add a birthday check column

    Add a computed column and enter a formula that compares the day and month of the birthday with today's day and month. One formula that does this, with the birthday in column D, is:

    =AND(DAY(D2)=DAY(TODAY()),MONTH(D2)=MONTH(TODAY()))

    Rows with a birthday today show TRUE, all others show FALSE. Use Edit column to rename the header to Check Birthday.

  5. 05

    Write the email subject and body

    On a second worksheet, type the email subject and the email body in their own cells.

    Back on the data sheet, add a computed column that points to the subject cell. Lock the reference with $ signs (or press F4) so every row uses the same cell, for example =Sheet2!$B$1. Rename it Email Subject.

    In the body text, add the person's name as a placeholder in square brackets, such as Hi [First Name], followed by your message. Press Ctrl+Enter to add line breaks. Then add another computed column that uses Lido's string template function on the body cell. Accept Lido's suggestion to lock the cell and apply the formula to all rows. Each row now has a personalized body. Rename it Email Body.

  6. 06

    Connect Gmail and add the send column

    Add a computed column and start typing send. Choose the Gmail send function. The first time, select Add credentials > Connect to Gmail and sign in.

    Fill in the arguments the function hint asks for: your connected Gmail address, the recipient (the Email cell, such as C2), the Email Subject cell and the Email Body cell. You can also add CC, BCC or an attachment. Rename the column Send Emails.

  7. 07

    Only send when it is their birthday

    Wrap the send function in an IF that checks the birthday column, for example =IF(E2=TRUE, ...) with the send function in place of the dots. Now the send action only appears on rows where Check Birthday is TRUE.

    Add a Status column, then add the status cell (such as I2) as the argument after the body in the send function. Lido writes the send result there. Use Preview email from the column menu to check how the email looks.

  8. 08

    Test the send manually

    Right-click a send cell and select Run action. The status column shows Success and the email appears in your Gmail Sent folder.

    The free email includes a Lido branding line at the bottom. The video turns it off in Lido Settings.

  9. 09

    Schedule the column to run daily

    Open the menu on the Send Emails header and select Run column on a schedule. Set it to run every day so it checks for birthdays once a day. (The video uses every 5 minutes only to demonstrate.)

    Lido refreshes the Google Sheet data on its own. If you change a birthday to today, the check turns TRUE after the next sync and the email is sent on the next run. You can also select Refresh data and run the action manually.

Tips and common problems

  • Set the schedule to daily for birthday emails. A shorter interval could send the same person more than one email on their birthday.
  • Lock the subject and body template cells with $ (or F4) so every row reads the same template.
  • Put the first name in square brackets inside the body template, like [First Name], so each email is personalized.
  • Add a status cell argument to the send function so you can see which rows were emailed and whether it worked.
Still stuck? Ask AI to help you fix itChatGPTClaudeGeminiCopilotPerplexityGrok

Questions

Can Google Sheets send birthday emails automatically?

Not on its own without a script. In this video, Lido connects to the Google Sheet, checks each birthday against today's date, and sends the emails through your Gmail account on a daily schedule.

How do I check if a birthday is today in a spreadsheet?

Compare the day and month of the birthday with today's, ignoring the year. For example =AND(DAY(D2)=DAY(TODAY()),MONTH(D2)=MONTH(TODAY())) returns TRUE when the date in D2 is someone's birthday today.

Can I personalize each birthday email with the person's name?

Yes. Put [First Name] in the body template and use Lido's string template function so each row fills in that person's first name.

Video chapters
Ask a question in the comments Last checked 26 Sep 2026. Screens change: if a step looks different, tell me in the comments.