name: date-plan description: Plan a date — find real events, restaurants, and activities personalized to your relationship
Date Plan Skill
Generate concrete, personalized date plans with real venues, food pairings, and timing.
Usage
/date-plan- Interactive planning (asks questions)/date-plan this weekend- Plans for this weekend/date-plan tonight low-energy- Quick low-energy options/date-plan adventure- Adventure category focus/date-plan rate- Rate your last date/date-plan history- View date history and category balance/date-plan setup- First-time setup or update preferences
Workflow
Step 0: Setup Check
Read data/preferences.json. If metadata.setup_complete is false:
- Say: "Welcome to date-planner! Let's get you set up (~2 min)."
- Run the First-Time Onboarding flow (see below)
- After setup completes, continue to the requested command
Step 1: Gather Context
Read these files for personalization:
data/preferences.json- user info, partners, city, shared preferences, things to trydata/date-history.json- recent dates and category balancedata/venues.json- known venues in their city
Determine which partner this date is for:
- If 1 partner: use them automatically
- If 2+ partners: ask "Who are you planning for?" and list partner names
Step 2: Parse Input or Ask
If user provided arguments, parse:
- Timeframe: "tonight", "tomorrow", "this weekend", "next week", specific date
- Energy level: "low", "medium", "high" (default from preferences)
- Category: "adventure", "creative", "explore", "nourish", "recharge"
- Budget: "free", "budget" (<$30), "moderate" ($30-80), "splurge" ($80+)
If no arguments or just /date-plan, ask:
Let's plan a date!
- When? (tonight / tomorrow / this weekend / next week / specific date)
- Energy level? (low / medium / high)
- Category? (adventure / creative / explore / nourish / recharge / surprise me)
- Budget? (free / budget / moderate / splurge)
Step 3: Analyze Variety
Check data/date-history.json for the last 5 dates:
- Which categories have been done recently?
- Which neighborhoods visited?
- Any patterns to break?
If a category hasn't been used in the last 3 dates, suggest it:
"You haven't done a Creative date recently - want me to include some creative options?"
Step 4: Query Data Sources
Read city from data/preferences.json. Use {city} in all searches below.
Data Source Priority:
- WebSearch (always available, no setup required)
- Ticketmaster API (optional — only if
TICKETMASTER_API_KEYin~/.config/datekit/.env)- Run:
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/fetch_events.py --city "{city}" --category {cat} --days {N}
- Run:
- Google Places API (optional — only if
GOOGLE_PLACES_API_KEYin~/.config/datekit/.env)
By category:
Adventure:
- WebSearch: "concerts {city} this weekend", "outdoor activities {city}", "sports events {city}"
- If Ticketmaster available:
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/fetch_events.py --city "{city}" --category music --days {N} - Check
things_to_trylist from preferences
Creative:
- WebSearch: "couples classes {city}", "pottery class {city}", "cooking class {city}"
- Run:
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/fetch_classes.py --city "{city}" --category {type} - Check
things_to_trylist
Explore:
- WebSearch: "estate sales {city} this weekend", "pop-up events {city}", "flea markets {city}"
- Check
data/venues.jsonmuseums for current exhibitions (WebSearch museum names)
Nourish:
- WebSearch: "best new restaurants {city}", "food festivals {city}", "{partner's favorite cuisines} restaurant {city}"
- If Google Places available: use for restaurant discovery
- Reference
favorite_cuisinesfrom preferences (both shared and partner-specific)
Recharge:
- WebSearch: "couples spa {city}", "scenic drives near {city}", "botanical gardens {city}"
- Cozy at-home ideas (cooking together, movie night)
Surprise Me:
- Pick the most neglected category from date history
- Mix in something from
things_to_try
Step 5: Generate Options
Present 3-5 concrete date plans. Each option MUST include:
**Option N: [Creative Name]** (Category: [X])
**The Plan:**
- [Time] — [Activity] at [Venue/Location]
- [Time] — [Food/drinks] at [Restaurant/spot]
- [Optional: additional activity]
**Details:**
- Neighborhood: [Area]
- Estimated cost: $XX-XX
- Book/reserve: [Link or instructions]
- Why this works: [1-line connection to shared preferences]
**[Partner name] will love this because:** [Specific thing tied to their preferences]
Step 6: Confirm and Log
After user picks an option (or modifies one):
- Summarize the final plan
- Ask: "Want me to log this to your date history?"
- If yes, add to
data/date-history.json:
{
"id": "date-NNN",
"date": "YYYY-MM-DD",
"partner": "Partner Name",
"category": "Adventure",
"activity": "Concert at The Metro + dinner at Thai place",
"venues": ["venue-slug-if-applicable"],
"neighborhood": "Neighborhood",
"rating": null,
"notes": "",
"cost_estimate": 60,
"planned_via": "date-plan"
}
- Git commit:
git add data/date-history.json && git commit -m "date-planner: plan date for YYYY-MM-DD" - Remind: "After the date, run
/date-plan rateto log how it went!"
Sub-commands
/date-plan rate
Rate the last unrated date:
- Read
data/date-history.json, find last entry withrating: null - If none found: "All dates are rated! Nothing to rate."
- Show the date details and ask:
How was [activity] on [date]? Rating (1-10): Any notes? (or skip)
- Update the entry with rating and notes
- Commit:
git add data/date-history.json && git commit -m "date-planner: rate date-NNN"
/date-plan history
Show date history and category analysis:
**Date History**
| Date | Partner | Category | Activity | Rating |
|------|---------|----------|----------|--------|
| 2026-02-08 | Jordan | Adventure | Concert + Thai food | 8/10 |
| 2026-02-02 | Sam | Explore | Estate sales + coffee | 7/10 |
**Category Balance (last 10 dates):**
- Adventure: 2 ████████
- Creative: 0
- Explore: 1 ████
- Nourish: 1 ████
- Recharge: 0
**Suggestion:** Try a Creative or Recharge date next!
/date-plan setup
Run the onboarding flow (also re-runnable to update preferences):
Step 1: The Basics
Let's set up date-planner!
What's your name?
Step 2: Partners
Who are you dating? Tell me their name and anything useful — food preferences, interests, things they love or hate.
(Allow multiple partners. After each one, ask "Anyone else? Say 'done' if that's it.")
Store each partner as:
{
"name": "Jordan",
"preferences": {
"favorite_cuisines": ["Thai", "sushi"],
"interests": ["hiking", "live music"],
"notes": "Loves surprises, hates being cold"
}
}
Step 3: Location
What city are you in?
Step 4: Shared Preferences
How do you like your dates? (e.g., "spontaneous", "planned around food", "loose plan with an anchor activity")
Typical budget for a date night? (free / under $30 / $30-80 / $80+)
Favorite types of food?
Step 5: Aspirations
Anything on your date bucket list? (things you've been wanting to try)
What makes a date feel special for you? (e.g., novelty, deep conversation, physical activity, trying new food)
Step 6: Seed Venues
After collecting city, automatically discover venues:
- WebSearch: "best music venues {city}", "comedy clubs {city}", "museums {city}", "popular theaters {city}"
- For each venue found, create an entry in
data/venues.json:
{
"slug": "venue-name-slugified",
"name": "Venue Name",
"category": "music|comedy|theater|museum|food",
"subcategory": "",
"neighborhood": "Neighborhood",
"address": "Address if found",
"website": "URL if found",
"ticketing_platform": "ticketmaster|axs|direct",
"ticketmaster_venue_id": null,
"notes": ""
}
- Add discovered venues to
data/watchlist.jsonwatched_venues - Report: "Found N venues in {city}!" with a summary list
Step 7: Save
- Populate
data/preferences.jsonwith all collected data - Set
metadata.setup_completeto true,metadata.lastUpdatedto today - Git commit all data files
- Show summary of what was saved
- Suggest next steps:
You're all set! Try:
/date-plan this weekend— plan your next date/events— see what's happening in {city}/find-class cooking— find a cooking class
Category Definitions
| Category | Description | Energy | Examples |
|---|---|---|---|
| Adventure | Physical, exciting, new experiences | High | Hiking, concerts, martial arts, sports |
| Creative | Making things, learning together | Medium | Pottery, cooking class, stained glass |
| Explore | Wandering, discovering new places | Medium | Estate sales, neighborhoods, markets, museums |
| Nourish | Food-focused quality time | Low-Med | Restaurant discovery, food tours, cooking at home |
| Recharge | Relaxing, low-key connection | Low | Spa, beach, movie night, scenic drives |