✓ Verified 💻 Development ✓ Enhanced Data

Birthday Reminder

Manage birthdays with natural language.

Rating
4.1 (495 reviews)
Downloads
1,762 downloads
Version
1.0.0

Overview

Manage birthdays with natural language.

Complete Documentation

View Source →

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:
  • Parse name and date
  • Extract year if provided
  • Calculate upcoming age: birthday_year - birth_year
  • Append to /home/clawd/clawd/data/birthdays.md
  • 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:
  • Read /home/clawd/clawd/data/birthdays.md
  • Parse all entries
  • Calculate days until each birthday
  • Sort by upcoming date
  • Show age turning if year is known

Listing All

When user says:
  • "Zeige alle Geburtstage"
  • "Liste meine Geburtstage"
Action:
  • Read the file
  • 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)
    
    if today.date() <= birthday_this_year.date():
        birthday_year = today.year
    else:
        birthday_year = today.year + 1
    
    return birthday_year - birth_year

Days Until Birthday

python
def days_until(month, day):
    today = datetime.now()
    birthday = today.replace(month=month, day=day)
    if birthday < today:
        birthday = birthday.replace(year=today.year + 1)
    return (birthday - today).days

Automatic Reminders

For cron/reminders, check birthdays daily and notify if:

  • 7 days before
  • 1 day before
  • On the day
Use the check_reminders() logic from scripts/reminder.py.

File Format

Each line: - Name - DD.MM.YYYY (wird X) or - Name - DD.MM.

Keep the file sorted by date (month/day) for easier reading.

Installation

Terminal bash

openclaw install birthday-reminder
    
Copied!

💻Code Examples

- **Max** - 15.03.1990

--max---15031990.txt
## 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
example.md
# Geburtstage

- **Valentina** - 14.02.2000 (wird 26)
- **Max** - 15.03.1990
example.py
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)
    
    if today.date() <= birthday_this_year.date():
        birthday_year = today.year
    else:
        birthday_year = today.year + 1
    
    return birthday_year - birth_year
example.py
def days_until(month, day):
    today = datetime.now()
    birthday = today.replace(month=month, day=day)
    if birthday < today:
        birthday = birthday.replace(year=today.year + 1)
    return (birthday - today).days

Tags

#clawdbot_tools

Quick Info

Category Development
Model Claude 3.5
Complexity One-Click
Author manantra
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
🧠

Ready to Install?

Get started with this skill in seconds

openclaw install birthday-reminder