Token导航 LogoToken导航

Agent Skill · 研究检索

limehouse-calendar(莱姆豪斯日历)

limehouse-calendar 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

limehouse-calendar 是研究检索类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为接触敏感数据;许可证为 MIT-0,第三方扫描已通过,按安装量在研究检索类的 73,675 个 Skill 里排第 20,616。

总安装 5,151周安装 219GitHub Stars 公开资料未说明下载 1,805核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
1.0.1

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:limehouse-calendar(莱姆豪斯日历)
来源仓库:https://github.com/madeleinenakada/limehouse-calendar
安装命令:
openclaw skills install limehouse-calendar
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install limehouse-calendar

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

limehouse-calendar 实现精细化日历事件读写控制。支持多日历权限分配:读、创建、更新、删除。适用于团队协作日程自动化管理需求。需明确各日历资源的访问授权范围。安装时按仓库提供的命令执行,建议先在测试环境验证依赖、命令权限和文件改动范围。

适用宿主包括 OpenClaw,接入前应确认版本、权限和运行环境要求。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install limehouse-calendar;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

limehouse-calendar 怎么安装?

在终端执行 openclaw skills install limehouse-calendar。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

limehouse-calendar 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

limehouse-calendar 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

limehouse-calendar 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

limehouse-calendar 用的人多吗?

公开数据是累计安装 5,151 次,近一周安装 219 次,下载 1,805 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

limehouse-calendar 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。
  • 需要许可证清楚、并且有第三方扫描结果的团队项目。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
limehouse-calendar

莱姆豪斯日历 · 本页

5,151—接触敏感数据MIT-0通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
limehouse-calendar
description
Read and write calendar events with granular per-calendar permissions. Users control which calendars an agent can access and whether it can read, create, update, or delete events.
metadata
openclaw
requires
env
bins
primaryEnv
CAL_API_KEY

Calendar API

Authenticate every request with your API key:

Authorization: Bearer cal_<your-api-key>

API keys are created from the Agents tab in the dashboard, or via the setup flow below. Each key is scoped to specific calendars with granular permissions: can_read, can_create, can_update, can_delete, can_create_invitees, and can_update_invitees.


Setup (getting an API key)

If you don't have a cal_ API key yet, use the setup flow to let the user authorize access:

  1. Create a setup session (no auth required):
POST https://cal.limehouse.io/api/v1/setup/sessions

Response: { "token": "...", "setup_url": "https://...", "expires_at": "..." }

  1. Direct the user to open setup_url in their browser. They will sign in, choose calendars, and

configure permissions.

  1. Poll for completion (every 3 seconds):
GET https://cal.limehouse.io/api/v1/setup/sessions/{token}/poll

Response while pending: { "status": "pending" } Response when complete: { "status": "completed", "agent_token": "cal_..." }

  1. Store the agent_token value. This is your API key for all subsequent requests.

The setup session expires after 30 minutes. If the agent cannot make HTTP requests, direct the user to https://cal.limehouse.io/connect where they can create a key and copy it manually.


Get agent info

GET /api/v1/agent/me

Get metadata about the current agent, including its name, description, permitted calendars with per-calendar permissions, and calendars the user owns that the agent does not yet have access to (connected_calendars_without_access).

Response

{
  "id": 1,
  "name": "My Agent",
  "description": "optional description",
  "created_at": "2024-01-01T00:00:00",
  "last_used": "2024-01-02T12:00:00",
  "permitted_calendars": [
    {
      "calendar_id": 3,
      "calendar_name": "Work",
      "can_read": true,
      "can_create": false,
      "can_update": false,
      "can_delete": false,
      "can_create_invitees": false,
      "can_update_invitees": false
    }
  ],
  "connected_calendars_without_access": [
    {
      "calendar_id": 5,
      "calendar_name": "Side Projects"
    }
  ]
}

Use connected_calendars_without_access to discover calendars the agent could request access to via POST /api/v1/agent/request-permission-change.


List accessible calendars

GET /api/v1/agent/calendars

List all calendars the agent has access to, along with read/write permissions.

Response — array of calendar objects:

[
  { "id": 3, "name": "Work", "color": "#4285F4", "timezone": "America/New_York" }
]

List events

GET /api/v1/agent/events
GET /api/v1/agent/calendars/{calendar_id}/events

List events on a calendar, optionally filtered by a time range. If no calendar_id is provided, returns events from all calendars the agent has read access to. start and end accept either a full ISO 8601 datetime (e.g. "2026-03-05T00:00:00-08:00") or a date-only string (e.g. "2026-03-05") which is expanded to the full day in the user's timezone. Requires can_read. Filter results with optional query parameters.

ParameterTypeRequiredDescription
calendar_idintegerNoFilter to a specific calendar. If omitted, returns events from all readable calendars.
startISO 8601 datetime or dateNoISO 8601 datetime for the event start. When a timezone parameter is provided, the datetime is interpreted as wall-clock time in that timezone (any UTC offset is ignored). Otherwise, include a UTC offset for non-UTC times, e.g. "2026-02-26T17:30:00-08:00". Naive datetimes (without offset) are treated as UTC. Also accepts a date-only string (e.g. "2026-03-05") which expands to start of day in the user's timezone.
endISO 8601 datetime or dateNoISO 8601 datetime for the event end. Same timezone rules as start_time. Also accepts a date-only string which expands to end of day in the user's timezone.

Response — array of event objects:

[
  {
    "id": 42,
    "uid": "abc123",
    "calendar_id": 3,
    "summary": "Team standup",
    "description": "Daily sync",
    "location": "Conference Room A",
    "start_time": "2024-01-15T09:00:00Z",
    "end_time": "2024-01-15T09:30:00Z",
    "all_day": false,
    "recurrence_rule": null,
    "invitees": [
      {"email": "alice@example.com", "name": "Alice", "rsvp": "ACCEPTED"},
      {"email": "bob@example.com", "name": null, "rsvp": "NEEDS-ACTION"}
    ],
    "etag": "v1",
    "created_at": "2024-01-01T00:00:00Z",
    "updated_at": "2024-01-01T00:00:00Z"
  }
]

Create an event

POST /api/v1/agent/calendars/{calendar_id}/events

Create a new event on a calendar. Requires can_create. Returns 201 Created with the new event object. If invitees is non-empty, also requires can_create_invitees.

FieldTypeRequiredDescription
summarystringYesEvent title (1–255 chars)
descriptionstringNoEvent description
locationstringNoPhysical address or virtual meeting link for the event.
start_timeISO 8601 datetimeYesISO 8601 datetime for the event start. When a timezone parameter is provided, the datetime is interpreted as wall-clock time in that timezone (any UTC offset is ignored). Otherwise, include a UTC offset for non-UTC times, e.g. "2026-02-26T17:30:00-08:00". Naive datetimes (without offset) are treated as UTC.
end_timeISO 8601 datetimeYesISO 8601 datetime for the event end. Same timezone rules as start_time.
all_daybooleanNoDefault: false
timezonestringNoIANA timezone name (e.g. "America/Los_Angeles"). When provided, start_time and end_time are interpreted as wall-clock times in this timezone, and DST is handled automatically.
recurrence_rulestringNoRRULE string for recurring events (e.g. "FREQ=WEEKLY;BYDAY=MO").
inviteesarrayNoList of attendees. Each item: {"email": "...", "name": "..."}. For Google-connected calendars, Google will send invite emails (sendUpdates=all).

Example request body

{
  "summary": "Team standup",
  "description": "Daily sync",
  "location": "Conference Room A",
  "start_time": "2024-01-15T09:00:00",
  "end_time": "2024-01-15T09:30:00",
  "timezone": "America/Los_Angeles",
  "invitees": [
    {"email": "alice@example.com", "name": "Alice"},
    {"email": "bob@example.com"}
  ]
}

Update an event

PUT /api/v1/agent/calendars/{calendar_id}/events/{event_id}

Update an existing event on a calendar. Only include the fields you want to change — omitted fields are left untouched. Never include start_time or end_time unless you are explicitly changing the time. Requires can_update. Returns 200 OK with the updated event object. If invitees is included in the request body, also requires can_update_invitees.

Sending invitees replaces the full attendee list (pass [] to remove all invitees).

FieldTypeDescription
summarystringEvent title (1–255 chars)
descriptionstringEvent description
locationstringPhysical address or virtual meeting link for the event.
start_timeISO 8601 datetimeISO 8601 datetime for the event start. When a timezone parameter is provided, the datetime is interpreted as wall-clock time in that timezone (any UTC offset is ignored). Otherwise, include a UTC offset for non-UTC times, e.g. "2026-02-26T17:30:00-08:00". Naive datetimes (without offset) are treated as UTC.
end_timeISO 8601 datetimeISO 8601 datetime for the event end. Same timezone rules as start_time.
all_daybooleanWhether the event spans the full day
timezonestringIANA timezone name (e.g. "America/Los_Angeles"). When provided, start_time and end_time are interpreted as wall-clock times in this timezone, and DST is handled automatically.
recurrence_rulestringRRULE string for recurring events (e.g. "FREQ=WEEKLY;BYDAY=MO").
inviteesarrayReplace full attendee list (pass [] to clear)

Example — rename an event (only send the field that changes):

{ "summary": "Coffee with Alice" }

Example — reschedule (only when intentionally changing the time):

{
  "start_time": "2024-01-15T10:00:00",
  "end_time": "2024-01-15T10:30:00",
  "timezone": "America/Los_Angeles"
}

Delete an event

DELETE /api/v1/agent/calendars/{calendar_id}/events/{event_id}

Delete an event from a calendar. Requires can_delete. Returns 204 No Content.


Add travel time

POST /api/v1/agent/calendars/{calendar_id}/events/{event_id}/travel-time

Add a travel time buffer event before an existing event using Google Maps directions. Creates a new event that ends when the target event starts, with duration based on the calculated travel time. Requires can_read + can_create. The target event must have a location set.

FieldTypeRequiredDescription
modestringYesTravel mode — one of "walking", "driving", "biking", or "transit". For transit, the route is planned to arrive by the event's start time.
start_location_typestringNoWhere the user is traveling from — "home", "work", or "custom". If not specified, uses the location of the previous event on the same day, or falls back to the user's home address.
start_location_addressstringNoCustom start address. Required when start_location_type is "custom".

Example request body

{
  "mode": "transit",
  "start_location_type": "home"
}

Response — 201 Created:

{
  "event_id": 42,
  "travel_event_id": 43,
  "duration_seconds": 1800,
  "duration_text": "30 mins",
  "distance_text": "5.2 km",
  "origin": "123 Home St, City",
  "destination": "456 Office Ave, City",
  "mode": "transit"
}

The user's home and work addresses are set via PUT /api/v1/auth/me/preferences with home_address and/or work_address fields.


Request a calendar connection

POST /api/v1/agent/request-calendar-connection

Request the user to connect a new calendar provider. Returns a confirmation URL that the user must visit to authorize the connection. The agent cannot connect the calendar directly — the user must click the link and approve.

FieldTypeRequiredDescription
providerstringYesThe calendar provider to connect — "google" or "microsoft".

Response — 201 Created:

{
  "confirmation_url": "https://cal.limehouse.io/confirm/abc123",
  "expires_at": "2026-03-09T15:10:00"
}

Surface the confirmation_url in chat so the user can click it.


Request a permission change

POST /api/v1/agent/request-permission-change

Request the user to grant or change this agent's permissions on a calendar. Returns a confirmation URL that the user must visit to approve the change. The requested permissions are suggestions — the user can adjust them before confirming.

FieldTypeRequiredDescription
calendar_idintegerYesThe ID of the calendar.
requested_permissionsobjectYesPermission flags (see below)

requested_permissions fields (all boolean, all optional — defaults to current value):

KeyDescription
can_readRequest read access to events on this calendar.
can_createRequest permission to create events on this calendar.
can_updateRequest permission to update events on this calendar.
can_deleteRequest permission to delete events on this calendar.
can_create_inviteesAdd invitees when creating events
can_update_inviteesModify invitees when updating

Response — 201 Created:

{
  "confirmation_url": "https://cal.limehouse.io/confirm/def456",
  "expires_at": "2026-03-09T15:10:00"
}

If a matching pending request already exists, returns 409 with the existing URL.

Tip: Call GET /api/v1/agent/me first to see which calendars the agent already has access to and which ones it doesn't (connected_calendars_without_access).


Error responses

StatusMeaning
401 UnauthorizedMissing or invalid API key
403 ForbiddenKey exists but lacks permission — use request-permission-change
404 Not FoundCalendar or event does not exist
409 ConflictA pending confirmation already exists (returns the existing URL)

Quick-start (curl)

KEY="cal_your_api_key_here"
BASE="https://cal.limehouse.io/api/v1"

# Discover accessible calendars
curl -H "Authorization: Bearer $KEY" "$BASE/agent/calendars"

# List events for calendar 3 in January 2024
curl -H "Authorization: Bearer $KEY" \
  "$BASE/agent/calendars/3/events?start=2024-01-01T00:00:00&end=2024-01-31T23:59:59"

# Create an event
curl -X POST -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
  -d '{"summary":"My event","start_time":"2024-01-20T14:00:00","end_time":"2024-01-20T15:00:00"}' \
  "$BASE/agent/calendars/3/events"

平台分布

OpenClaw

86.45%
按下载量换算1,560

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills