Daily birthday and anniversary digest from Google Contacts to Slack

Every weekday at 8am, get a Slack digest of today's birthdays and work anniversaries from your Google Contacts, with a personal draft message for each one.

Agentic Task
Google ContactsSlack BotPersonal ProductivitySalesDaily DigestsNotifications & Alerts

Every weekday at 8am in my timezone, post a personalized birthday and work anniversary digest to a Slack channel I configure, sourced from my Google Contacts address book. Trigger is cron.

What the agent should do on each run:

1. Call Google Contacts List Contacts and request the names, birthdays, organizations, and emailAddresses person fields. Page through results if there are more contacts than one page returns.

2. For each contact, check whether today's month and day match either (a) the contact's birthday, or (b) the joinedDate of any organization on their record. Treat (b) as a yearly work anniversary at that company. Compute years elapsed since the joinedDate so the message can say something like '5 years at Acme'.

3. For each match, draft a short Slack message I can copy and send. Warm, friendly tone, two or three sentences. Reference the person's company or role from the contact record. For anniversaries, include how many years it has been. End each draft with the person's email so I can reach out directly.

4. Build a single Slack message led by a one-line summary header like 'Today: 2 birthdays, 1 work anniversary'. Below the header, include each drafted note grouped under a clear label such as 'Birthday: Sam Chen' or 'Work anniversary: Priya Rao, 5 years at Acme'. Post that message into the Slack channel I configure using Slack Send a Message (the slackbot integration).

5. If there are zero matches today, do not post anything. The channel should stay silent.

Quiet-day rule: skip Saturdays and Sundays unless I explicitly enable weekend runs. Make 'include weekends' a toggle I can flip later.

Configurable inputs I should be asked for: the Slack channel to post into, my timezone, and whether to run on weekends.

Additional information

What does this prompt do?
  • Reads today's birthdays and work anniversaries straight from your Google Contacts address book, no spreadsheet or manual tracking required.
  • Drafts a warm, two or three sentence message for each person, with their company, role, and email already filled in so you can copy and send.
  • Posts a single Slack digest into a channel you pick, led by a one-line header like 'Today: 2 birthdays, 1 work anniversary'.
  • Stays quiet on weekends and on days where nothing is happening, so the digest never adds noise.
What do I need to use this?
  • A Google account with contacts that have birthdays and a current company filled in. Work anniversaries are read from each contact's 'joined date' on their company.
  • A Slack workspace and a channel you want the digest posted into. A private channel or a DM to yourself both work.
How can I customize it?
  • Change the time, switch to a different set of weekdays, or turn weekends on if you want them included.
  • Send the digest to a public channel, a private one, or a DM with yourself. You can also route it to a teammate who handles outreach.
  • Tune the message tone (warm, formal, short, playful), or change what details get pulled in such as role, company, mutual context, or anniversary years.

Frequently asked questions

Where do the birthdays and anniversaries come from?
Straight from your Google Contacts. Birthdays are read from each contact's birthday field. Work anniversaries are read from the 'joined date' on a contact's current company. If a contact has either filled in, the digest will catch it on the right day.
What happens on weekends?
By default, the digest is paused on Saturdays and Sundays so it does not interrupt your weekend. You can switch weekend runs on if you would rather see every day.
Does this send the message for me?
No. The digest drops a ready-to-send draft into Slack so you can copy it and send the actual outreach yourself. That keeps every birthday or anniversary note coming from you, not from a bot.
What if there are no birthdays or anniversaries today?
Then nothing gets posted. The workflow only speaks up when there is something to celebrate, so the channel stays clean.
Can I use this with my work contacts in Google Workspace?
Yes. As long as the contacts live in your Google Contacts (personal or saved from work mail), and the birthday or company joined date is filled in, the digest will pick them up.

Never miss a contact's birthday or work anniversary again.

Connect Google Contacts and Slack once, and Geni posts a fresh digest with ready-to-send drafts every weekday morning at 8am.