aboutsummaryrefslogtreecommitdiff
path: root/teams/deepsat
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-07-18 18:22:32 -0500
committerCraig Jennings <c@cjennings.net>2026-07-18 18:22:32 -0500
commit80ebb74e4f3f35c2204ba5fee8c48bf5d18f0559 (patch)
treec2dec1849876aaab4384e2607321150351400e19 /teams/deepsat
parent6e487146470381424e520fd00dbe155856656e3f (diff)
downloadrulesets-80ebb74e4f3f35c2204ba5fee8c48bf5d18f0559.tar.gz
rulesets-80ebb74e4f3f35c2204ba5fee8c48bf5d18f0559.zip
feat(daily-prep): add upcoming-birthdays block from contacts.org
New stdlib-only upcoming_birthdays.py reads ~/sync/org/contacts.org for :BIRTHDAY: properties and prints a daily-prep block: name, date, days-away, and the age turned when the birth year is known (1900 is the org-contacts unknown-year placeholder, rendered date-only). Birthdays inside 7 days come back flagged so a gift or plan gets prompted. 19 pytest cases cover the window boundaries, leap-day fallback to Feb 28, the placeholder year, and the CLI. daily-prep gains a Phase A source that runs the script and a Heads-Up line that folds in the block, so contact birthdays the calendar doesn't carry still surface. Built and tested in the home project. Promoted here because the daily-prep hook lives in this synced workflow and the contacts file is present on every machine.
Diffstat (limited to 'teams/deepsat')
0 files changed, 0 insertions, 0 deletions