skills/occasion-reminders/SKILL.md
# Occasion Reminders Skill Track birthdays and anniversaries with gift planning timeline. ## Usage ```typescript import { OccasionRemindersSkill } from '@openclaw/occasion-reminders'; const skill = new OccasionRemindersSkill(); // Add a contact const contact = await skill.addContact({ name: 'Sarah Johnson', email: '[email protected]', relationship: 'friend', notes: 'Likes hiking and photography' }); // Add a birthday with advance notice const birthday = await skill.addOccasion({
npx skillsauth add ticruz38/skills skills/occasion-remindersInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Track birthdays and anniversaries with gift planning timeline.
import { OccasionRemindersSkill } from '@openclaw/occasion-reminders';
const skill = new OccasionRemindersSkill();
// Add a contact
const contact = await skill.addContact({
name: 'Sarah Johnson',
email: '[email protected]',
relationship: 'friend',
notes: 'Likes hiking and photography'
});
// Add a birthday with advance notice
const birthday = await skill.addOccasion({
contactId: contact.id,
type: 'birthday',
name: "Sarah's Birthday",
month: 3,
day: 15,
year: 1990, // Optional - for age calculation
advanceNotice: { weeks: 2, days: 0 },
budget: 100,
giftIdeas: 'Hiking gear, camera accessories, book'
});
// Get upcoming occasions
const upcoming = await skill.getUpcomingOccasions(30);
for (const occasion of upcoming) {
console.log(`${occasion.name} in ${occasion.daysUntil} days`);
if (occasion.isAdvanceNotice) {
console.log('🎁 Time to start gift planning!');
}
}
// Get gift planning timeline
const timeline = await skill.getGiftPlanningTimeline(60);
for (const item of timeline) {
console.log(`Start shopping for ${item.occasion.name} by ${item.timeline.startShopping}`);
}
# Add contacts
occasion-reminders add-contact "Sarah Johnson" --email [email protected] --relationship "friend"
occasion-reminders add-contact "Mom" --relationship "family" --notes "Likes gardening"
# Add occasions
occasion-reminders add-occasion 1 birthday "Sarah's Birthday" 3 15 --year 1990 --budget 100
occasion-reminders add-occasion 2 anniversary "Parents Anniversary" 6 12 --year 1985 --advance-weeks 3
# View upcoming occasions
occasion-reminders upcoming 30
occasion-reminders birthdays
occasion-reminders anniversaries
# Gift planning timeline
occasion-reminders timeline 90
# Manage contacts and occasions
occasion-reminders list-contacts
occasion-reminders list-occasions
occasion-reminders get-contact 1
occasion-reminders delete-occasion 3
# Import contacts
occasion-reminders import contacts.json --format json
occasion-reminders import contacts.csv --format csv
# Search
occasion-reminders search "birthday"
occasion-reminders search "mom"
# Statistics
occasion-reminders stats
occasion-reminders health
id - Primary keyname - Contact nameemail - Optional emailphone - Optional phonenotes - Free-form notesrelationship - Relationship typecreated_at - Timestampid - Primary keycontact_id - Reference to contacttype - birthday, anniversary, holiday, customname - Occasion namemonth - Month (1-12)day - Day (1-31)year - Optional year (for age/years calculation)advance_weeks - Weeks of advance noticeadvance_days - Days of advance noticegift_ideas - Gift ideas/descriptionbudget - Gift budgetreminder_id - Reference to reminders skillcreated_at - TimestampThis skill depends on the reminders skill to create advance notice reminders. When you add an occasion, it automatically creates a reminder in the reminders skill that will trigger at the configured advance notice time.
[
{
"name": "Sarah Johnson",
"email": "[email protected]",
"phone": "555-1234",
"relationship": "friend",
"notes": "Likes hiking"
}
]
name,email,phone,relationship,notes
Sarah Johnson,[email protected],555-1234,friend,Likes hiking
testing
Suggest recipes based on dietary preferences, available ingredients, and cuisine preferences
development
Extract data from receipt photos using Google Vision API
business
QuickBooks Online integration for accounting sync - sync customers, invoices, and transactions with two-way sync and conflict resolution
testing
QuickBooks OAuth adapter for QuickBooks Online accounting integration. Built on top of auth-provider for secure token management with automatic refresh, multi-profile support, sandbox/production toggle, and health checks.