Meetup Planner
An intelligent assistant that helps you discover, track, and never miss events that match your interests.
One-time Setup
IMPORTANT: After installing this skill, the agent will automatically run the bootstrap setup process from BOOTSTRAP.md.
The bootstrap process:
- 1. Checks for web search and crawling capabilities
- Collects your event preferences
- Sets up automated daily searches (optional)
- Creates workspace structure
If you don't have search/crawling capabilities, I'll ask you to provide the necessary tools.
What This Skill Does
After setup:
- 1. Daily Search: Automatically searches for events matching your profile every morning (if enabled)
- Event Discovery: Uses available search and scraping tools to find events across the web
- Event Tracking: Saves and presents new events for your review
- Smart Reminders: Sets up notifications 24 hours and 2 hours before confirmed events
- Preference Management: Updates your interests and search criteria anytime
First Time Setup
When you first run this skill, I will guide you through setup by following BOOTSTRAP.md.
The setup process is interactive and friendly:
- 1. ✅ Check for web search and crawling capabilities
- 🎯 Learn your event preferences through a friendly conversation
- ⏰ Set up automated daily searches (optional)
- 📁 Create workspace structure with proper permissions
Setup takes 2-3 minutes. If you don't have search/crawling tools installed, I'll ask you to provide them.
How to Use
Initial Run
CODEBLOCK0
Daily Operations
Once set up, the skill will:
- - Search for events every morning automatically
- Save findings to INLINECODE2
- Present new events for your review
- Track events you're interested in
When You Find an Event You Like
Tell me "I'm interested in [event name]" and I will:
- - Mark it as confirmed
- Send you the registration link
- Set up reminders (24h and 2h before the event)
Commands
- -
update preferences - Modify your event preferences - INLINECODE4 - Display all tracked events
- INLINECODE5 - Stop tracking an event
- INLINECODE6 - Temporarily stop daily searches
- INLINECODE7 - Resume daily searches
Data Storage
The skill maintains:
- -
user-preferences.json - Your event preferences - INLINECODE9 - All discovered and tracked events
- INLINECODE10 - Scheduled reminders
Technical Details
Capabilities Required:
- - Web search capability (any search tool or skill)
- Web crawling/scraping capability (any scraping tool or skill)
Scheduling:
- - Uses system cron jobs (or equivalent) for daily searches
- Uses scheduled tasks for event reminders
Privacy Note
All data is stored locally on your machine. Your preferences and tracked events are never sent anywhere except to search for new events via the configured APIs.
Data Transmission & External API Usage
This skill makes external network requests to search and scrape event information. The exact services depend on what search/crawling tools you have installed.
What is sent:
- - Search query strings constructed from your preferences (e.g., "AI meetup San Francisco February 2026")
- URLs of event pages to scrape
- Your IP address (automatically sent by your network stack)
- Any authentication credentials required by the search/crawling tools you use
What is NOT sent:
- - Your complete preference profile
- Event registration status or history
- Personal notes or modifications
- Other tracked events
Purpose: To discover public events matching your interests and extract structured event details.
Data Minimization Practices
- - Only essential data is transmitted to accomplish the task
- All credentials are transmitted securely over HTTPS only
- No telemetry, analytics, or usage tracking is performed
- No data is sent to any services beyond your configured search/crawling tools
Agent Instructions
IMPORTANT: After installing this skill, ALWAYS run the bootstrap setup from BOOTSTRAP.md before first use.
When this skill is invoked:
Phase 0: Check Bootstrap Status (ALWAYS RUN THIS FIRST)
Before doing anything else, check if bootstrap is complete:
CODEBLOCK1
If file doesn't exist OR bootstrapComplete: false:
- - Tell human: "👋 Welcome to Meetup Planner! I need to set up a few things first. This will only take a couple of minutes."
- Follow BOOTSTRAP.md step-by-step (all steps in order)
- Do NOT proceed to Phase 1/2/3 until bootstrap is complete
If file exists AND bootstrapComplete: true:
- - Bootstrap is done, proceed to the appropriate phase based on what human asked for:
- "search now" → Phase 2 (Daily Search Routine)
- "show upcoming" → Phase 3 (Event Confirmation & Tracking)
- "update preferences" → Re-run the preference collection from BOOTSTRAP.md
- No specific request → Ask: "What would you like to do? I can search for events, show upcoming events, or update your preferences."
Phase 1: Setup
All setup is handled by BOOTSTRAP.md. See Phase 0 above.
Phase 2: Daily Search Routine
- 1. Load preferences:
- Read
~/.openclaw/workspace/meetup-planner/user-preferences.json
- Parse the human's interests, location, preferred event types, etc.
- 2. Search for events:
- Use your available
search tool or skill to search for events matching preferences
- Search queries should be constructed like:
- "{topic} meetup {location} {current_month}"
- "{topic} conference {location} upcoming"
- "{topic} workshop {location}"
- Run multiple searches covering all their topics of interest
- 3. Extract event details:
- For each promising search result, use your available
scraping tool or skill to scrape the event page
- Extract: event name, date, time, location, description, registration link, cost
- Look for: Eventbrite, Meetup.com, Luma, conference sites, etc.
- 4. Filter and save:
- Load existing events from
~/.openclaw/workspace/meetup-planner/events.json
- Filter out duplicates and events that don't match criteria
- Add new events to the file
- Mark each event with: INLINECODE15
- 5. Present to human:
- Format new events nicely with all key details
- Ask: "I found X new events that match your interests. Would you like to hear about them?"
- Share event details one by one or as a list
- For each event, ask if they're interested
Phase 3: Event Confirmation & Tracking
- 1. When human expresses interest:
- Update event status to "interested" in
events.json
- Provide the registration link: "Here's the link to register: {url}"
- Ask: "Let me know when you've registered!"
- 2. When human confirms registration:
- Update event status to "registered" in
events.json
- Schedule reminders in
~/.openclaw/workspace/meetup-planner/reminders.json:
{
"event_id": "abc123",
"event_name": "...",
"reminders": [
{"time": "24_hours_before", "sent": false},
{"time": "2_hours_before", "sent": false}
]
}
- Confirm: "Great! I'll remind you 24 hours before and 2 hours before the event."
Phase 4: Reminder System
- 1. Check for due reminders (run this check every hour):
- Load
~/.openclaw/workspace/meetup-planner/reminders.json
- Check current time against event time
- If within 24-25 hours before event and 24h reminder not sent:
- Notify human: "Reminder: {event_name} is tomorrow at {time}! Location: {location}"
- Mark 24h reminder as sent
- If within 2-3 hours before event and 2h reminder not sent:
- Notify human: "Heads up! {event_name} starts in 2 hours at {time}. Time to get ready!"
- Mark 2h reminder as sent
- 2. Post-event cleanup:
- After event date passes, move event to "past" status
- Optionally ask: "How was {event_name}? Would you like me to look for similar events?"
Phase 5: Ongoing Commands
Support these commands from your human:
- - "update preferences" / "change preferences": Re-run the preference collection interview
- "show upcoming": Display all events with status "interested" or "registered"
- "show new events": Display events with status "new" that haven't been reviewed
- "remove event [name]": Remove an event from tracking
- "pause search": Stop daily automated searches (update config)
- "resume search": Resume daily automated searches
- "search now": Run the search routine immediately
- "list past events": Show events that have already occurred
Error Handling
- - If skills fail to install: Provide manual instructions and the GitHub links
- If API keys are invalid: Ask human to verify and provide new keys
- If searches return no results: Try broader search terms or suggest different topics
- If cron setup fails: Offer to search manually when user requests
- If event scraping fails: Fall back to showing just the search result link
- Always preserve data: Never overwrite
events.json or preferences.json without backing up
File Structure
CODEBLOCK3
聚会活动规划师
一个智能助手,帮助您发现、追踪并确保不错过符合您兴趣的活动。
一次性设置
重要提示:安装此技能后,智能体将自动从 BOOTSTRAP.md 运行引导设置流程。
引导流程:
- 1. 检查网络搜索和爬取能力
- 收集您的活动偏好
- 设置自动每日搜索(可选)
- 创建工作区结构
如果您没有搜索/爬取能力,我会要求您提供必要的工具。
此技能的功能
设置完成后:
- 1. 每日搜索:每天早上自动搜索符合您个人资料的活动(如果启用)
- 活动发现:使用可用的搜索和爬取工具在网络上查找活动
- 活动追踪:保存并展示新活动供您查看
- 智能提醒:在已确认活动开始前24小时和2小时设置通知
- 偏好管理:随时更新您的兴趣和搜索条件
首次设置
当您首次运行此技能时,我将按照 BOOTSTRAP.md 引导您完成设置。
设置过程互动且友好:
- 1. ✅ 检查网络搜索和爬取能力
- 🎯 通过友好对话了解您的活动偏好
- ⏰ 设置自动每日搜索(可选)
- 📁 创建具有适当权限的工作区结构
设置需要2-3分钟。如果您没有安装搜索/爬取工具,我会要求您提供。
使用方法
首次运行
运行 meetup-planner 技能以开始设置
日常操作
设置完成后,该技能将:
- - 每天早上自动搜索活动
- 将结果保存到 events.json
- 展示新活动供您查看
- 追踪您感兴趣的活动
当您找到喜欢的活动时
告诉我我对[活动名称]感兴趣,我将:
- - 将其标记为已确认
- 发送注册链接给您
- 设置提醒(活动前24小时和2小时)
命令
- - 更新偏好 - 修改您的活动偏好
- 显示即将到来的活动 - 显示所有追踪的活动
- 移除活动 [名称] - 停止追踪某个活动
- 暂停搜索 - 暂时停止每日搜索
- 恢复搜索 - 恢复每日搜索
数据存储
该技能维护:
- - user-preferences.json - 您的活动偏好
- events.json - 所有发现和追踪的活动
- event-reminders.json - 已安排的提醒
技术细节
所需能力:
- - 网络搜索能力(任何搜索工具或技能)
- 网络爬取/抓取能力(任何爬取工具或技能)
调度:
- - 使用系统定时任务(或等效功能)进行每日搜索
- 使用计划任务进行活动提醒
隐私说明
所有数据都存储在您的本地机器上。您的偏好和追踪的活动绝不会被发送到任何地方,除非通过配置的API搜索新活动。
数据传输与外部API使用
此技能会发出外部网络请求以搜索和爬取活动信息。具体使用的服务取决于您安装的搜索/爬取工具。
发送的内容:
- - 根据您的偏好构建的搜索查询字符串(例如:AI meetup San Francisco February 2026)
- 要爬取的活动页面URL
- 您的IP地址(由您的网络堆栈自动发送)
- 您使用的搜索/爬取工具所需的任何身份验证凭据
不发送的内容:
- - 您的完整偏好档案
- 活动注册状态或历史
- 个人笔记或修改
- 其他追踪的活动
目的: 发现符合您兴趣的公开活动并提取结构化的活动详情。
数据最小化实践
- - 仅传输完成任务所必需的数据
- 所有凭据仅通过HTTPS安全传输
- 不执行任何遥测、分析或使用追踪
- 除您配置的搜索/爬取工具外,不向任何服务发送数据
智能体指令
重要提示:安装此技能后,首次使用前务必从 BOOTSTRAP.md 运行引导设置。
当此技能被调用时:
阶段0:检查引导状态(始终先运行此步骤)
在执行任何其他操作之前,检查引导是否完成:
bash
检查引导配置是否存在
cat ~/.openclaw/workspace/meetup-planner/config.json 2>/dev/null
如果文件不存在 或 bootstrapComplete: false:
- - 告知用户:👋 欢迎使用聚会活动规划师!我需要先设置一些内容。这只需要几分钟时间。
- 按照 BOOTSTRAP.md 逐步操作(按顺序执行所有步骤)
- 在引导完成之前,不要进入阶段1/2/3
如果文件存在 且 bootstrapComplete: true:
- 立即搜索 → 阶段2(每日搜索流程)
- 显示即将到来的活动 → 阶段3(活动确认与追踪)
- 更新偏好 → 重新运行 BOOTSTRAP.md 中的偏好收集
- 无特定要求 → 询问:您想做什么?我可以搜索活动、显示即将到来的活动或更新您的偏好。
阶段1:设置
所有设置均由 BOOTSTRAP.md 处理。请参见上面的阶段0。
阶段2:每日搜索流程
- 1. 加载偏好:
- 读取 ~/.openclaw/workspace/meetup-planner/user-preferences.json
- 解析用户的兴趣、位置、偏好的活动类型等
- 2. 搜索活动:
- 使用您可用的
搜索工具或技能搜索符合偏好的活动
- 搜索查询应构建为:
- {主题} meetup {位置} {当前月份}
- {主题} conference {位置} upcoming
- {主题} workshop {位置}
- 运行多次搜索,覆盖他们所有感兴趣的主题
- 3. 提取活动详情:
- 对于每个有希望的搜索结果,使用您可用的
爬取工具或技能爬取活动页面
- 提取:活动名称、日期、时间、地点、描述、注册链接、费用
- 查找:Eventbrite、Meetup.com、Luma、会议网站等
- 4. 筛选并保存:
- 从 ~/.openclaw/workspace/meetup-planner/events.json 加载现有活动
- 筛选掉重复项和不符合条件的活动
- 将新活动添加到文件中
- 标记每个活动:{id, name, date, time, location, url, description, cost, added_date, status: new}
- 5. 展示给用户:
- 以美观的格式展示新活动及其所有关键详情
- 询问:我找到了X个符合您兴趣的新活动。您想了解它们吗?
- 逐个或作为列表分享活动详情
- 对每个活动,询问他们是否感兴趣
阶段3:活动确认与追踪
- 1. 当用户表示感兴趣时:
- 在 events.json 中将活动状态更新为interested
- 提供注册链接:这是注册链接:{url}
- 询问:注册后请告诉我!
- 2. 当用户确认注册时:
- 在 events.json 中将活动状态更新为registered
- 在 ~/.openclaw/workspace/meetup-planner/reminders.json 中安排提醒:
json
{
event_id: abc123,
event_name: ...,
reminders: [
{time: 24
hoursbefore, sent: false},
{time: 2
hoursbefore, sent: false}
]
}
- 确认:太好了!我会在活动开始前24小时和2小时提醒您。
阶段4:提醒系统
- 1. 检查到期的提醒(每小时运行此检查):
- 加载 ~/.openclaw/workspace/meetup-planner/reminders.json
- 将当前时间与活动时间进行比较
- 如果在活动前24-25小时内且24小时提醒尚未发送:
- 通知用户:提醒:{活动名称} 明天 {时间} 举行!地点:{地点}
- 将24小时提醒标记为已发送
- 如果在活动前2-3小时内且2小时提醒尚未发送:
- 通知用户:注意!{活动名称} 将在2小时后于 {时间} 开始。该准备出发了!
- 将2小时提醒标记为已发送
- 2. 活动后清理:
- 活动日期过后,将活动状态改为past
- 可选询问:{活动名称} 怎么样?需要我寻找类似的活动吗?
阶段5:持续命令
支持来自用户的以下命令: