Never miss a birthday again
I didn't have anyone's birthday written down. I did have years of messages that said happy birthday. That turned out to be enough.
Tabled for now. Built, not on the homepage, still true.
The job I gave away
The birthday list I was always going to make. Every year the same three people got a text on the day, everyone else got a guilty one a week late, and I told myself I'd put them in the calendar this time.
What runs now
My system read my old messages once and looked for one phrase: happy birthday. The day I wished someone a happy birthday is a very good clue about when their birthday is. It built 143 birthdays from those clues, and it says so on every line. A clue isn't a record. When I learn a real date, I type it in and mine wins.
The list lives in exactly one place, and every morning the day's birthdays are on my list with a draft I can fix or send.
The free version, twenty minutes once
In your messages app, search happy birthday
Scroll through the results and, for each one, jot the name and the date you sent it. Twenty minutes, one time. Do the same in your email if you're a birthday-email person.
Paste the jottings into your chat app with this:
Turn these into a birthday list. Each line: name, month and day, and the word clue, because the date came from a message I sent, not from them. If the same person shows up twice with dates a day apart, keep the earlier one and note it. Then give me the list in calendar order starting from today.
Put them on your calendar as yearly repeats, with a reminder the day before
When someone tells you their real birthday, fix that one entry and change clue to real.
What it hands back
Where this goes wrong
Treating a clue as a record. A wish I sent a day late puts that birthday a day late forever if nothing labels it. Every line says clue or real, and a real date always wins.
The rule underneath
A guess that says it's a guess is useful. A guess that looks like a fact is a trap. Make your AI label which one it's handing you, on everything, forever.
Numbers on this page come from my own system, computed 2026-09-10: 143 birthdays inferred from happy-birthday messages · 10 of those, dates seen in two separate years.