On a schedule
Send personal emails on schedule from your Gmail
Birthday wishes, reminders or a small batch of personal emails go out from your own address on the right day.
- Runs
- On a schedule
- Apps
- Gmail
- AI
- Optional
- Access
- gmail.send
Send this to your assistant
Create a ClickRuntime automation: every day at 9am, send a short personal birthday email from my Gmail to anyone on this list whose birthday is today.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Some emails are worth sending but easy to forget: a birthday message to a long-standing client, a monthly check-in with a mentor, a reminder to yourself about a habit, or a small batch of personal invitations. Calendar alerts are easy to dismiss, and writing each message from scratch takes more effort than the occasion deserves, so the thoughtful gesture never happens.
On a schedule, a stored list or a list you post to the link is read and today's recipients are chosen, such as everyone with a birthday. If you like, ClickRuntime's built-in AI writes a personal line for each person. The messages are then sent from your own Gmail one by one, with spacing between them.
Relationship-driven professionals, community organizers and individuals with a short list of recurring messages find it a good match.
What you get out of it
Thoughtful messages are actually sent
A birthday note that arrives on the day, from your own address, strengthens relationships in a way that a missed calendar reminder never will. That small effort is a gesture people remember well.
Each message feels personal
Because it comes from your Gmail and can include a personal line for each person, recipients see a real message from you and not a generic blast. Recipients answer a message that feels written for them.
Spacing protects your account
Sending one at a time with gaps between messages looks like normal use, which avoids the spam flags that a burst of identical messages can trigger. A modest pace is better for deliverability as well.
Your list lives where you control it
A stored list that you edit by talking to your assistant means no spreadsheet or marketing tool is needed for a handful of recurring contacts. That is simple to update whenever your contacts change.
Habits are supported
The same approach sends reminders to yourself, such as a weekly review or a monthly check-in, turning intentions into scheduled prompts you cannot dismiss quietly. Reminders from your own address are hard to ignore.
How it works
What happens, step by step
Every day ClickRuntime checks your list of people and their birthdays.
It picks the people whose birthday is today.
Each one gets a personal birthday email sent from your own Gmail, addressed by name.
Before it runs live
- Connect Google through your own Google app (a one-time, 10-minute setup), so it works with your own Gmail
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Run it at a different time, more or less often, or only on weekdays
- Change what the AI looks for, or how it writes the result
- Add another app, for example also send it to Slack
- Combine it with other Gmail steps into one automation
Under the hood
The code that runs this automation
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
import base64
from datetime import date
from email.message import EmailMessage
from clickruntime import on_trigger, credentials
PEOPLE = [
{"name": "Sam", "email": "sam@example.com", "birthday": "03-14"},
{"name": "Riya", "email": "riya@example.com", "birthday": "10-19"},
]
@on_trigger
def run(event):
today = date.today().strftime("%m-%d")
gmail = build("gmail", "v1", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False)
sent = []
for p in PEOPLE:
if p["birthday"] != today:
continue
msg = EmailMessage()
msg["To"], msg["Subject"] = p["email"], f"Happy birthday, {p['name']}!"
msg.set_content(f"Hi {p['name']},\n\nHappy birthday! I hope you have a great day.\n\nAlex")
gmail.users().messages().send(userId="me", body={"raw": base64.urlsafe_b64encode(msg.as_bytes()).decode()}).execute()
sent.append(p["email"])
return {"sent": sent}FAQ
Common questions
How many emails can it send in a day?
How do I give it the list of people?
Is the AI personalization required?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Get an inbox summary twice a day
Twice a day you get one email listing what came in and what you need to act on.
See how it worksSend yourself a weekly newsletter from your feeds
Once a week your own newsletter arrives with the best posts from the blogs and sites you follow.
See how it worksClean up your inbox every night
Old promotions, social mail and spam go to trash and read mail is archived, so your inbox only holds what's current.
See how it worksKeep exploring
Set up “Send personal emails on schedule from your Gmail” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.