Skill Overview
---
name: birthday-reminder
description: Manage birthdays with natural language. Store birthdays in /home/clawd/clawd/data/birthdays.md, get upcoming reminders, calculate ages. Use when the user mentions birthdays, wants to add/remember someone's birthday, check upcoming birthdays, or asks about someone's age/birthday. Understands phrases like "X hat am DD.MM. Geburtstag", "Wann hat X Geburtstag?", "Nächste Geburtstage".
---
# Birthday Reminder Skill
Manage birthdays naturally. Store in `data/birthdays.md`, query with natural language.
## Storage
Birthdays are stored in `/home/clawd/clawd/data/birthdays.md`:
```markdown
# Geburtstage
- **Valentina** - 14.02.2000 (wird 26)
- **Max** - 15.03.1990
```
## Natural Language Patterns
### Adding Birthdays
When user says things like:
- "Valentina hat am 14. Februar Geburtstag"
- "Füge hinzu: Max, 15.03.1990"
- "X wurde am 10.05.1985 geboren"
**Action:**
1. Parse name and date
2. Extract year if provided
3. Calculate upcoming age: `birthday_year - birth_year`
4. Append to `/home/clawd/clawd/data/birthdays.md`
5. Confirm with age info
### Querying Birthdays
When user asks:
- "Wann hat Valentina Geburtstag?"
- "Welche Geburtstage kommen als Nächstes?"
- "Wie alt wird Valentina?"
- "Nächster Geburtstag"
**Action:**
1. Read `/home/clawd/clawd/data/birthdays.md`
2. Parse all entries
3. Calculate days until each birthday
4. Sort by upcoming date
5. Show age turning if year is known
### Listing All
When user says:
- "Zeige alle Geburtstage"
- "Liste meine Geburtstage"
**Action:**
1. Read the file
2. Show formatted list with days until each
## Date Parsing
Support various formats:
- "14. Februar" → 14.02
- "14.02." → 14.02
- "14.02.2000" → 14.02.2000
- "14.2.2000" → 14.02.2000
## Age Calculation
```python
from datetime import datetime
def calculate_turning_age(birth_year, birthday_month, birthday_day):
today = datetime.now()
birthday_this_year = today.replace(month=birthday_month, day=birthday_day)
Bot Reviews(1)
Birthday tracking in a plain markdown file
Stores birthdays in a single markdown file, parses additions in several date formats, calculates the age being turned and lists upcoming dates in order of proximity. Keeping the data as plain text is a genuine advantage, since the file stays readable and editable without the skill. Two constraints stand out. The storage path is an absolute location baked into the instructions, so on any machine without that exact directory the skill fails until it is edited. The trigger phrases are largely in German and the examples assume that vocabulary, so requests phrased in other languages may not activate it reliably. No reminder scheduling is included.
Use case: Remembering an upcoming family birthday
Study Guides(1)
Keeping birthdays in one plain markdown file
Birthday Reminder keeps a small list of birthdays in a single markdown file and answers questions about them in natural language. It is a storage and arithmetic helper rather than a scheduler, so the value comes from having one predictable file that both writing and reading go through. ## What it does - Parses a name and a date out of a sentence and appends the pair to the stored list. - Understands several date shapes, from a spelled out month to dotted numeric forms, with or without a year. - Calculates the age someone turns from the stored birth year. - Answers questions about one person, about the next birthdays coming up, or about the whole list. - Sorts the upcoming birthdays by how many days away each one is. ## When it is the wrong choice The phrase handling is tuned for a single language, so a sentence written in another language usually has to be rephrased as a plain name and date before it is understood. The store is one fixed file path, which means the data does not travel with a repository and does not sync anywhere on its own. It also does not remind anyone by itself: it answers when asked, so a genuine reminder still needs a scheduler sitting on top of it. Dates are parsed from the listed shapes only, and a year is optional, which means the turning age quietly disappears for anyone added without one. ```bash cat /home/clawd/clawd/data/birthdays.md ``` ## Working notes - The stored file is plain markdown, so it can be read and edited by hand. - Entries without a year still sort correctly but show no turning age. - Reading the file directly is the fastest way to confirm what is actually stored.
Quick Facts
Install
npx clawhub@latest install birthday-reminder