Install
openclaw skills install @voronindenis5/gift-occasion-plannerUse when birthdays, anniversaries, and holidays keep sneaking up on you every single year — maintains a registry of people and their gift occasions (birthday, anniversary, Mother's/Father's Day, etc.) with per-person gift profile (interests, sizes, favorites, taboo list, past gifts), generates a rolling 60-day lookahead of upcoming occasions, recommends what to give based on profile + past-gift history (never repeat, always evolve), budgets per person/occasion with running yearly totals, produces an actionable buying plan per occasion (what, budget, where, wrap, card), and exports ICS reminders at 21/7/1 days out so the era of gas-station flowers on the drive home ends.
openclaw skills install @voronindenis5/gift-occasion-plannerGift failure is a memory failure. Every year: the birthday that arrives the day after you remembered it, the anniversary dinner booked nowhere, Mother's Day creeping up between playoff games. The result is the gas-station-flower bailout — expensive, obviously last-minute, and quietly corrosive to relationships.
This skill runs a gift intelligence system:
add-person "Mom" --birthday 1958-03-14 --interests "gardening,opera" --taboo "no gadgets".radar shows the next 60 days: who, what occasion, days left, budget, recommendation, and status (IDEA / BOUGHT / WRAPPED / GIVEN).recommend <person> proposes 3-5 options from profile ∩ past-gift history with rationale; you confirm into the plan.plan <occasion-id> prints the actionable card: gift, budget, where to buy, wrap idea, card note suggestion, deadline chain (buy-by, wrap-by, mail-by dates).given <occasion-id> --gift "..." records history and moves on.# People
python3 scripts/gift_planner.py add-person "Mom" --birthday 1958-03-14 \
--interests "gardening,opera,birdwatching" --taboo "no gadgets,no sweets" --budget 75
python3 scripts/gift_planner.py add-person "Dad" --birthday 1955-11-02 \
--interests "woodworking,jazz vinyl" --budget 60
# Occasions (birthdays auto; others explicit)
python3 scripts/gift_planner.py add-occasion "Mom" --kind anniversary --month-day 04-22 --label "Wedding anniversary"
python3 scripts/gift_planner.py add-occasion "Dad" --kind fathers-day
# The radar: next 60 days
python3 scripts/gift_planner.py radar
# What to give?
python3 scripts/gift_planner.py recommend "Mom"
# Lock in a plan
python3 scripts/gift_planner.py plan mom-birthday-2026 --idea "Pruning set + garden kneeler"
# Status machine: IDEA → BOUGHT → WRAPPED → GIVEN
python3 scripts/gift_planner.py status mom-birthday-2026 --set bought
# Log what was given (feeds history so recommendations never repeat)
python3 scripts/gift_planner.py given mom-birthday-2026 --gift "Felco pruning set" --cost 68
# Budget overview
python3 scripts/gift_planner.py budget
# Calendar export: 60/21/7/1-day reminders per occasion
python3 scripts/gift_planner.py ics gifts.ics
$ python3 scripts/gift_planner.py radar
GIFT RADAR — next 60 days (as of 2026-09-20)
DUE IN 21 DAYS ────────────────────────────────
Mom — BIRTHDAY (Oct 11)
Budget: $75 Status: IDEA (nothing planned yet!)
Interests: gardening, opera, birdwatching
Recent gifts: bird feeder (2025), opera DVDs (2024)
Recommendation: rotate category → tool/equipment this year:
· Felco #2 pruners + holster (garden tool upgrade) ~$65
· Garden kneeler-stool ~$45
· Botanical garden season pass ~$70
DUE IN 47 DAYS ────────────────────────────────
Dad — FATHER'S DAY... no, wait: ANNIVERSARY (Nov 2 is birthday)
...
$ python3 scripts/gift_planner.py plan mom-birthday-2026 --idea "Felco pruners + holster"
PLAN: Mom's birthday 2026-10-11 (21 days out)
Gift: Felco #2 pruners + holster Budget: $75 (est. $65)
Where: local garden store or online 2-day ship
Buy by: 2026-10-04 (buffer for shipping)
Wrap by: 2026-10-10
Card angle: "for the rose bed that beat the neighbors again"
Status: IDEA → run `status --set bought` when purchased
The engine proposes; the human decides. Suggestions carry rationale strings so choices never look arbitrary in the plan card.
add-person each. Birthdays auto-create occasions.radar → recommend → present 3 options with rationale; user picks; plan it.given — history keeps future recommendations fresh and non-repeating.radar shows "no occasions in window" — that's the cue to check next year's one-offs.given) so history compounds