安装与下载
1 ClawHub CLI
从源直接安装技能的最快方式。
npx clawhub@latest install caly-finding-meeting-times
2 手动安装
将技能文件夹复制到以下位置之一
~/.openclaw/skills/
{'/skills/'}
优先级:工作区 › 全局 › 内置
3 提示词安装
将此提示词复制到 Openclaw 即可自动安装。
请帮我使用 Clawhub 安装 skill-caly-finding-meeting-times。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
更倾向于下载?
获取包含原生技能文件的ZIP压缩包。
基本信息
caly-finding-meeting-times
安装指南
- ClawHub CLI
从源直接安装技能的最快方式。
npx clawhub@latest install caly-finding-meeting-times - 手动安装
将技能文件夹复制到以下位置之一
全局模式
~/.openclaw/skills/
工作区
/skills/
优先级:工作区 > 本地 > 内置 - 提示词安装
将此提示词复制到 OpenClaw 即可自动安装。
请帮我使用 Clawhub 安装 caly-finding-meeting-times。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
更倾向于下载?
获取包含原生技能文件的ZIP压缩包。
下载技能 (.zip)
什么是
Caly 会议空闲时间查找器会检查已连接的 Caly 账户中的活动类型和实时空闲时段,帮助 AI 代理回答“我什么时候有空?”之类的问题。默认使用账户时区,也支持用户指定时区和符合条件的会议时长选项,并按日期分组显示结果。
作为用于日历排程的 Openclaw Skills 之一,它刻意设为只读:可以查找并说明可用时间,但不会创建、更改或取消预约。用户可以通过分享活动的预约 URL,或使用单独的预约技能继续操作。
应用场景
查找下周 30 分钟通话的可用时间。
查看特定日期或指定时段内的可用会议时间。
查看 Caly 活动类型,并按标题或时长确定合适的会议类型。
查看工作时间安排,或说明为什么指定日期没有可用时段。
预约前向他人提供可选时间,或分享活动类型的预约 URL。
工作原理
使用 caly:whoami 检查已连接的 Caly 账户,并使用 caly:list_event_types 获取活动类型。
选择符合所请求会议的活动类型。如果请求含糊不清或没有匹配类型,则显示可用类型并请用户选择。
将所请求的日期范围转换为所选时区中的开始和结束日期。除非用户指定其他时区,否则使用账户时区;如果未提供日期范围,则默认使用接下来的七天。
使用 caly:find_available_slots 请求实时空闲情况,并传入活动类型 ID、日期范围、时区,以及用户要求时传入允许的时长。
按日期分组,简洁展示返回的时段;适用时筛选出符合所请求时段的选项。每个时间旁都注明时区。
如果没有可用时段,则查看日程安排和相关活动类型详情,说明可能的限制,并提供最近的空闲日期。
提供后续选项:分享活动的预约 URL,或将预约交由单独的 booking-meetings 技能处理。
配置指南
使用此技能前,请连接 Caly MCP 服务器。连接器会在首次使用时通过 OAuth 登录。请遵循 Caly 服务器安装说明:
git clone https://github.com/DevinoSolutions/mcp-servers.git
按照仓库中 Caly 安装指南的说明配置并添加 caly MCP 服务器:https://github.com/DevinoSolutions/mcp-servers/tree/main/caly#install。连接后,首次使用时通过 OAuth 流程完成身份验证。
工具调用支持两种模式:
如果直接列出了 Caly 工具,请按名称调用,例如 caly:find_available_slots。
在 Code Mode 中,先调用 caly:search_tools,然后使用 caly:execute_typescript,以 external_ 名称调用发现的工具。程序必须返回其结果;可以使用 Promise.all 批量执行相互独立的读取操作。
如果直接调用返回“Tool not found”,请改用 Code Mode。如果没有可用的 Caly 工具,请完成 MCP 服务器设置。
Caly 会议空闲时间查找器 数据架构与分类体系
此技能读取 Caly 账户和排程的实时数据;它不定义本地数据存储,也不生成文件。
数据源 使用的信息
caly:whoami 已连接账户的身份、时区、每周起始日和默认日程安排。无需输入。
caly:list_event_types 可预约的活动类型 ID、别名、标题、时长、预约 URL 和隐藏的活动类型。
caly:get_event_type 完整的活动类型详情,包括允许的时长、地点、预约问题、缓冲时间、最短提前通知时间和日程安排。
caly:list_schedules 按星期几划分的工作时间、日期例外设置、日程时区和默认日程安排。
caly:find_available_slots 按日期分组的活动类型和日期范围内可用开始时间;接受可选时区和时长。
空闲情况结果具有权威性,而不能只依据日程工作时间,因为已有预约和缓冲时间可能会占用原本开放的时段。此技能只会报告 caly:find_available_slots 返回的时段。调用遭拒时会引发错误,错误消息以类似 INVALID_INPUT: 的代码开头。
高级特性
支持直接调用 MCP 工具,也支持通过
caly:search_tools
caly:execute_typescript
在 Code Mode 中发现并执行工具。
可在 Code Mode 中使用
Promise.all
批量执行相互独立的读取操作。
默认遵循账户时区,也允许用户指定时区。
请求的时长受支持时,会使用活动类型的时长选项。
根据实时空闲情况而非工作时间推断空闲时段,帮助避免与预约和缓冲时间冲突。
可以检查日程例外设置和活动类型的最短提前通知时间,帮助解释为何没有可用时段。
严格遵循只读原则:预约、改期和取消必须由其他工具或技能处理。
可通过活动类型的预约 URL 或单独的
booking-meetings
技能移交后续操作。
name: finding-meeting-times description: "Finds open times to meet in Caly: lists the user's event types, reads their working-hours schedules, and returns the free slots for an event type over a date range, in the right time zone. Use when the user asks 'when am I free', 'find a time for a 30 minute call next week', 'what slots do I have on Thursday', 'which meeting types do I have', 'what are my working hours', or wants options to offer someone before booking. Read-only." Caly: finding meeting times
Answer "when can this meeting happen" from the user's live Caly event types, schedules and availability.
Connecting and calling the tools
Every tool in this skill comes from the caly MCP server, the Caly connector, and is written here as caly:.
Tools listed by name: call them directly, for example caly:find_available_slots.
Only caly:search_tools and caly:execute_typescript listed (Code Mode, the default): call caly:search_tools first, then call each tool inside caly:execute_typescript as external_ (for example external_find_available_slots); the program must return its result. Batch independent reads with Promise.all.
"Tool not found": switch to the Code Mode route instead of retrying the direct call.
No caly tools at all: Caly is not connected yet. Add the server as shown in https://github.com/DevinoSolutions/mcp-servers/tree/main/caly#install; it signs in with OAuth on first use.
A refused call throws an Error whose message starts with its code, for example INVALID_INPUT:.
Tools you will use
caly:whoami: the account this connection acts as, with its time zone, week start and default schedule. Takes no input.
caly:list_event_types: the user's event types (the bookable meeting kinds) with id, slug, title, length and booking URL, hidden ones included.
caly:get_event_type: one event type in full: lengths, locations, booking questions, buffers, minimum notice and schedule.
caly:list_schedules: the user's availability schedules: working hours per weekday, date overrides, time zone, and which one is the default.
caly:find_available_slots: the free start times for an event type between two dates (eventTypeId, start, end, optional timeZone and duration), grouped by date.
Workflow
Call caly:whoami and caly:list_event_types together. Use the account's timeZone unless the user names another one, and say which time zone you are using.
Pick the event type. Match the user's words to a title or length ("30 minute call" → the 30-minute type). If two could fit, or none does, list the event types and ask which one.
Turn the user's range ("next week", "Thursday afternoon") into concrete start and end dates in that time zone. If no range is given, use the next 7 days.
Call caly:find_available_slots with the event type id, the range and the time zone. If the user wants a length the event type allows (lengthInMinutesOptions), pass it as duration.
Present a short list of options grouped by day, in the user's time zone, not every slot. If the user asked for a part of the day, filter to it.
If there are no slots, call caly:list_schedules and explain why (outside working hours, a date override, minimum notice from caly:get_event_type), then offer the nearest free day.
Offer next steps: book one of the slots with the booking-meetings skill, or share the event type's bookingUrl so the other person picks a time.
Rules
This skill only reads. Never call caly:create_booking, caly:reschedule_booking or caly:cancel_booking from it.
Report only slots that caly:find_available_slots returned. Never infer free time from the schedule alone; bookings and buffers can block it.
Always state the time zone next to every time you show.
每日報告至微信