SkillHub

birthday-reminder

v1.0.0

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...

Sourced from ClawHub, Authored by Manantra

Installation

Please help me install the skill `birthday-reminder` from SkillHub official store. npx skills add Manantra/birthday-reminder

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: 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

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.