Clawdbot ToolsDocumentedScanned

birthday-reminder

Manage birthdays with natural language.

Share:

Installation

npx clawhub@latest install birthday-reminder

View the full skill documentation and source below.

Documentation

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:

# 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

    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

    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.