360 Secure SkillHub
360 安全技能中心

Caly: Finding Meeting Times

该 Skill 通过 Caly MCP 连接器读取账户时区、会议事件类型、工作时间表和可用时段,按指定日期范围与会议时长返回按时区分组的可选时间。它仅做只读查询,不创建、改期或取消预约,并在无可用时段时结合时间表说明原因。

devino
热度 7.64
最近更新 2026-10-06 09:14:59
分类:协作依赖:MCP 服务 / 第三方 API应用场景:日程安排

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add caly-finding-meeting-times
Metadata
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:<tool>.

  • 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_<tool> (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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.