date-night
Your AI date night concierge — plans, books, and coordinates an entire evening out through browser automation. Say "plan a date night" and it handles everything: restaurant reservations (OpenTable, Resy), movie tickets (Fandango, Megaplex, AMC), event tickets with price comparison (SeatGeek, Ticketmaster, StubHub), weather checks, drive-time estimates, budget totals, calendar events, and partner notifications. Configurable dietary preferences, childcare reminders, favorite theaters, and babysitter-rate budgeting. First run walks through a friendly onboarding — after that, just tell it what kind of night you want. Triggers: date night, dinner reservation, book a table, OpenTable, Resy, find restaurants, movie tickets, what's playing, concert tickets, sports tickets, events near me, dinner and a movie, plan a date, date ideas, cancel reservation, modify reservation, reconfigure date night preferences.
What this skill does
# Date Night Skill (Published)
End-to-end date night planning: restaurants, movies, events, logistics, and notifications. Powered by `playwright-cli` browser automation.
---
## User Preferences
This skill uses `~/.openclaw/skills/date-night/config.json`. **Run onboarding on first use** (see below). After that, load config silently at the start of every session.
```bash
cat ~/.openclaw/skills/date-night/config.json 2>/dev/null
```
Config schema:
```json
{
"name": "string",
"first_name": "string",
"last_name": "string",
"user_email": "string",
"user_phone": "string (digits only, e.g. 8015550155)",
"partner": "string | null",
"notify_channel": "iMessage | Telegram | Discord | Signal | SMS",
"dietary": ["no alcohol", "vegetarian", "..."],
"has_children": false,
"children_count": 0,
"children_ages": "string | null",
"location": "City, ST",
"zip": "00000",
"preferred_theater": "string | null",
"babysitter_rate": 18,
"calendar_tool": "gog | gcal | ical",
"onboarded_at": "ISO timestamp"
}
```
**PII note:** `user_email`, `user_phone`, `first_name`, and `last_name` are used to auto-fill reservation and ticket forms. They are stored locally in `config.json` and never transmitted except to the booking site during form submission.
---
## First Run Onboarding
**Check at every skill invocation:**
```bash
CONFIG=~/.openclaw/skills/date-night/config.json
if [ ! -f "$CONFIG" ]; then
echo "ONBOARDING_NEEDED"
fi
```
If `ONBOARDING_NEEDED`: run the onboarding flow **before** doing anything else.
### Onboarding Flow
Ask questions **one at a time**, conversationally. This is a date night skill — make it feel warm and fun, not like filling out a DMV form.
**Opening:**
> "Hey! Looks like it's your first time using the Date Night skill — exciting. Let me grab a few quick things so I can make it feel personal. Won't take long."
**Question sequence** (ask naturally, wait for each answer):
1. **Name:**
> "First — what's your name?"
— Collect first name and last name (needed for reservation forms).
2. **Email & Phone:**
> "What email and phone number should I use for reservations? These go directly into booking forms — I store them locally and nowhere else."
3. **Partner:**
> "Planning these with a partner, or flying solo? (Solo date nights are completely valid.)"
— If partner: "What's their name?"
3. **Partner notification:**
> "What's the best way to reach {partner}? Like, if I wanted to send them a heads-up about a reservation — iMessage, Telegram, Signal, Discord, something else?"
— Skip if solo.
4. **Dietary / lifestyle:**
> "Any food preferences or restrictions I should know about? Things like no alcohol, vegetarian, gluten-free, shellfish allergy — or just 'none, we eat everything'?"
5. **Kids:**
> "Do you have kids at home? (I ask because I'll remind you about childcare after every booking.)"
— If yes: "How many, and roughly what ages?"
6. **Location:**
> "What city or zip code are you in? I'll use this for finding nearby restaurants, theaters, and venues."
7. **Theater preference (optional):**
> "Any favorite movie theater chain, or a go-to theater near you? I can default to that when searching showtimes. (Skip if you don't have one.)"
8. **Babysitter rate (optional, only if has_children):**
> "What's your babysitter rate — roughly? I use it for budget estimates. Default is $18/hr if you're not sure."
9. **Calendar tool:**
> "Last one — how do you manage your calendar? I can add events automatically. Options: `gog` (Google), `gcal`, `ical`, or tell me what you use."
**Closing:**
> "Perfect — you're all set! 🎉 Just say 'plan a date night,' 'find us a restaurant,' or 'get us tickets' anytime. I've got the rest."
### Save Config
After collecting all answers, write the file:
```bash
mkdir -p ~/.openclaw/skills/date-night
cat > ~/.openclaw/skills/date-night/config.json << 'EOF'
{
"name": "{name}",
"first_name": "{first_name}",
"last_name": "{last_name}",
"user_email": "{email}",
"user_phone": "{phone_digits}",
"partner": "{partner_or_null}",
"notify_channel": "{channel}",
"dietary": ["{pref1}", "{pref2}"],
"has_children": {true|false},
"children_count": {N},
"children_ages": "{ages_or_null}",
"location": "{City, ST}",
"zip": "{zip}",
"preferred_theater": "{theater_or_null}",
"babysitter_rate": {rate},
"calendar_tool": "{tool}",
"onboarded_at": "{ISO_TIMESTAMP}"
}
EOF
```
### Applying Config Throughout the Skill
After loading config, substitute into all references:
| Config field | Used in |
|-------------|---------|
| `first_name` / `last_name` | Auto-fill reservation and ticket forms |
| `user_email` | Auto-fill booking forms, account lookups |
| `user_phone` | Auto-fill booking forms, SMS verification |
| `dietary` | Restaurant recommendations (filter per preferences) |
| `location` / `zip` | All nearby searches, drive time estimates |
| `partner` | Notification drafts, calendar events |
| `notify_channel` | How to send partner notifications |
| `has_children` | Childcare prompt after every booking |
| `babysitter_rate` | Budget estimates |
| `preferred_theater` | Default theater for movie searches |
| `calendar_tool` | All calendar event creation commands |
**Dietary preference enforcement:**
If `dietary` includes `"no alcohol"`: never highlight wine lists, cocktail programs, bar scenes, or alcohol features when recommending restaurants or events. Focus on food, ambiance, service.
---
## Reconfigure
If user says **"update my date night preferences"**, **"reconfigure date night"**, or **"change my date night settings"**:
```bash
# Back up existing config
cp ~/.openclaw/skills/date-night/config.json \
~/.openclaw/skills/date-night/config.backup.json 2>/dev/null || true
```
Then re-run the onboarding flow with current values shown as defaults:
> "Sure — let's update your preferences. I'll show what you have now and you can change anything. Hit Enter to keep the current value."
After re-running, overwrite config.json. Confirm:
> "Updated! Changes are live for the next date night."
---
## Requirements
### External Binaries (must be installed separately)
| Binary | Install | Required? |
|--------|---------|-----------|
| `playwright-cli` | `npm install -g @playwright/cli@latest` | **Yes** |
| Chromium | `npx playwright install chromium` | **Yes** (used by playwright-cli) |
| `goplaces` | `brew install steipete/tap/goplaces` | Optional — enhanced restaurant search |
PATH setup: `export PATH="$HOME/.npm-global/bin:$PATH"`
### Environment Variables
| Variable | Purpose | Required? |
|----------|---------|-----------|
| `GOOGLE_PLACES_API_KEY` | Google Places API for `goplaces` CLI | Only if using `goplaces` |
### OpenClaw Built-in Capabilities Used
These are **standard OpenClaw agent tools** — not external dependencies. They require no separate installation; they are available to any OpenClaw agent with the appropriate tool policies enabled.
| OpenClaw Tool | Purpose in This Skill |
|---------------|----------------------|
| `web_search` | Find restaurants, events, movies, reviews (public web) |
| `web_fetch` | Extract menus, reviews, showtimes from URLs (public web) |
| `message` (send) | Draft partner notifications — **always shown for approval before sending** |
| Calendar skills (`gog`/`ical`) | Create calendar events after booking |
| SMS/iMessage skill (`imsg`) | Retrieve booking verification codes (see Sensitive Access below) |
**No additional credentials or API tokens are needed** for these built-in tools — they use whatever channels and connectors the user has already configured in their OpenClaw instance.
### Sensitive Access Declaration
**SMS verification codes:** OpenTable and Resy send 6-digit verification codes via SMS during booking. This skill retrieves them by reading the **most recent 1–2 messages from the specific sender** (e.g., short code `22395` for OpenTable). It does NOT perform broad inboRelated in Productivity
gitea-workflow
IncludedOrchestrate agile development workflows for Gitea repositories using the tea CLI. Use when working with Gitea-hosted repos and asking to 'run the workflow', 'continue working', 'what's next', 'complete the task cycle', 'start my day', 'end the sprint', 'implement the next task', or wanting guided step-by-step development assistance. Keywords: workflow, orchestrate, agile, task cycle, sprint, daily, implement, review, PR, standup, retrospective, gitea, tea.
microsoft-graph-gateway
IncludedRoute Microsoft Graph work in this workspace. Use when users want to read or write Outlook mail, calendar events, contacts, OneDrive or SharePoint files, Teams, Planner, To Do, users, groups, directory data, or arbitrary Microsoft Graph endpoints from VS Code. Prefer WorkIQ for common read scenarios. Use Microsoft Graph for write actions and gap-read scenarios that need exact Graph properties, filters, permissions, or endpoints.
copilotkit
IncludedUse when building with CopilotKit — setup, development, integrations, debugging, upgrading, or contributing. Routes to the appropriate specialized skill based on the task.
wordly-wisdom
IncludedProvides calibrated decision analysis using Charlie Munger-style multiple mental models, inversion, incentive mapping, circle-of-competence checks, misjudgment audits, second-order effects, and forecast updates. Use when the user asks for an oracle take, a hard call, a decision memo, a premortem, an outside view, a red-team, a sanity-check, what am I missing, think this through, or wants a strategy, hire, investment, plan, product, partnership, or major life choice analysed. Avoid for simple factual lookups or time-sensitive legal, medical, or market questions without fresh evidence.
swain-session
IncludedSession management and project status dashboard. Owns the full session lifecycle (start/work/close/resume), focus lane, bookmarks, worktree detection, and tab naming. Also serves as the project status dashboard — shows active epics, progress, actionable next steps, blocked items, tasks, GitHub issues, and recommendations. Worktree creation is deferred to swain-do task dispatch (SPEC-195). Triggers on: 'session', 'status', 'what's next', 'dashboard', 'overview', 'where are we', 'what should I work on', 'show me priorities', 'bookmark', 'focus on', 'session info'.
gandi
IncludedComprehensive Gandi domain registrar integration for domain and DNS management. Register and manage domains, create/update/delete DNS records (A, AAAA, CNAME, MX, TXT, SRV, and more), configure email forwarding and aliases, check SSL certificate status, create DNS snapshots for safe rollback, bulk update zone files, and monitor domain expiration. Supports multi-domain management, zone file import/export, and automated DNS backups. Includes both read-only and destructive operations with safety controls.