WireCat Google Calendar

dev.wirecat由 wirecat.dev 發布v0.20.0更新於 Nov 5, 2026

Your Google Calendar for agents: sync, search and change events. Sign in with the gcal CLI first.

發布方自己的服務:Wire Cash: bank wire fees and transfer costs

已驗證STDIO僅桌面效率與工作流檔案與儲存

概覽

AI 產生的概覽

給代理用的本機 Google 日曆伺服器:把日曆同步到本機儲存,再依你設定的權限搜尋、檢視與修改行程。

可以做什麼
  • 列出、檢視與搜尋已同步的行程、參與者及其 Drive 檔案,同步後可離線使用
  • 找出多人多日曆的共同空檔,並找出跨帳號時間衝突的會議
  • 建立、修改、移動與刪除行程(含重複行程),並回覆邀請
  • 把聯絡人連結到 Telegram、WhatsApp 或 MAX 身分,並跨其他 WireCat 資料搜尋
  • 依名稱呼叫任一 Google Calendar API v3 方法,提供 JSON 輸出與可供腳本判斷的錯誤碼
適用情境
適合讓代理回答日曆問題、尋找會議時間,或在你的 Google 日曆中預訂與修改行程,特別適用於無法自行執行 CLI 的 Claude Desktop、Cursor 等 MCP 用戶端。
執行需求
透過 npx 在本機執行,需要 Node.js 22.16 以上的 22.x 或 24 以上版本,也可使用 Bun。須先透過 gcal CLI,以你自己的 Google OAuth 桌面應用程式 JSON 檔在瀏覽器登入;每個 Google 帳號是一個具名設定檔。寫入需以寫入授權重新登入。
安裝前請注意
此伺服器提供寫入工具,加入時必須明確帶上允許寫入的參數才會繼續;權限決定代理能改動什麼。在 MCP 下「詢問」類權限不會真的跳出確認,代理可能未經確認就共用日曆或刪除行程,除非設為拒絕或唯讀。行程資料會傳送給 Google;登入憑證保存在系統鑰匙圈或只有你能讀取的檔案中。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 WireCat Google Calendar,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[Google Calendar for your AI agents]

gcal — Google Calendar CLI for AI agents

Your Google Calendar in the terminal, searchable on your computer, and ready for Claude Code, Codex, Gemini CLI or any agent — within limits you set.

Docs · Use it · WireCat

[npm] [CI] [Node] [Bun] [npm downloads] [License: Apache 2.0]

gcal copies the calendars you own into the local WireCat store. Then you list, show and search events, the people in them and their Drive files, with no network. With write access it also creates, changes, moves and deletes events and answers invitations. A delete asks first. Mailing other people is off until you allow it.

An example conversation (invented people and events, illustrative output):

text
You:    Use gcal. When can I meet Ana for 30 minutes this week?Agent:  (runs gcal personal calendars busy person:[email protected] --duration-minutes 30)        You both are free on Tuesday 10:00–10:30, Wednesday 14:00–15:00 and Thursday 10:00–12:00.You:    Book Tuesday, 30 minutes, "Example planning". Do not email her.Agent:  Draft: "Example planning", Tuesday 10:00–10:30, with [email protected], no email sent. Create it?You:    Yes.

Quick start

You need a Google sign-in client of your own for now. Make one in Google Cloud Console, as a Desktop app, and save its JSON file as ~/client_secret.json with chmod 600.

sh
npm install -g @wirecat/gcal-cligcal skill install                                            # the agent skill, for Claude Code, Codex and Gemini CLIgcal personal session start --client-file ~/client_secret.json   # sign in to Google in the browser, read-onlygcal personal sync                                            # copy the calendars you own, then only what changedgcal personal events list                                     # your events from today on, earliest first

personal is a profile: a name you choose for one Google account. It is the first word of every command that uses an account. A first sync lists a year back and three months ahead. A big one goes on over several runs: run sync again when it says partial.

You need Node.js 22.16 or a later 22.x, or Node.js 24 or later, on macOS, Linux or Windows. Bun also works. Try it without installing: npx @wirecat/gcal-cli --help. If gcal is not found, run gcal doctor. It needs no network and shows what is set up. gcal guide gives step-by-step scenarios.

More: installation (wirecat.dev).

What you can do

See what is coming. "Use gcal. What is on my calendar this week?"

sh
gcal personal events list

Find an event. "When did we plan the roadmap review?" Search runs on the local copy. It matches words, and meaning too once you download a model.

sh
gcal personal search events roadmap planning

Find a time for everyone. Ask Google when people are busy, and get the stretches free for all of them. Nothing is stored.

sh
gcal personal calendars busy person:[email protected] --duration-minutes 30 --hours 10:00-16:00

More:

  • Show one event with its attendees, Drive files and history: gcal personal events show event:42.
  • Link a person to the same person in Telegram, WhatsApp or MAX: gcal personal people link email:[email protected] telegram:12345.
  • Create, change and delete events, repeating ones included, and answer invitations. Sign in again with session start --grant write first.
  • Call any Google Calendar API v3 method by name with gcal api.

More: use it (wirecat.dev).

For AI agents

Your agent. Your calendar. Your rules.

  • An agent with a terminal — Claude Code, Codex, Gemini CLI, OpenClaw or Hermes Agent. It runs gcal itself. The skill is the agent's instruction sheet: it explains the commands and the limits. gcal skill install writes it.
  • An app with no terminal — Claude Desktop, Cursor and other MCP clients. Connect the profile's MCP server, gcal personal mcp serve. gcal personal mcp config prints the entry to paste.
  • ChatGPT or Claude in a browser or on your phone — through your own HTTPS tunnel: gcal personal mcp serve --http. Step by step (wirecat.dev).
sh
gcal skill install                               # for Claude Code, Codex, Gemini CLI and OpenClawgcal personal mcp add claude-code --allow-writes   # or: codexgcal personal mcp check                          # start the server once, as the agent will

The server offers writing tools, so mcp add stops until you pass --allow-writes. The profile's permissions decide what an agent may change; gcal personal config set permissions.api readonly keeps it to reads. Text from an invitation is marked untrusted: it is data for the agent, never instructions. Commands that set up the sign-in or the agent link, api call and emptying a calendar are never offered to an agent.

With --json, every command prints one JSON value, and an error comes as JSON with a code to branch on.

More: agents (wirecat.dev), settings and permissions (wirecat.dev).

Why this tool

  • Your calendar is on your computer. It sits in the same store as the messages, documents and meetings of the other WireCat tools. An agent can answer "what did we agree with Ana" across all of them.
  • Reads need no network after a sync. A meeting's passcode or PIN is never stored or printed.
  • Every write is guarded. It never overwrites a change made in Google since the last sync. A delete asks first. It never mails attendees unless you allow it.
  • Built for agents. A skill, an MCP server, one JSON form and exit codes a script can branch on.

Main features

  • Incremental sync. After the first sync, sync asks Google only for what changed. gcal personal store status shows how far each calendar is.
  • Repeating events. Each occurrence is stored one by one, cancelled ones included.
  • What changed. events list changed_at>=2026-10-25 lists the events that are new, moved or cancelled since a date.
  • All accounts in one list. events list --source all lists the events of every Google account you signed in to, and says which accounts it read.
  • Meetings that overlap. events list overlapping:true --source all finds the meetings that clash, also across accounts.
  • Search by meaning. gcal models download e5-small fetches a small model once. sync --embed then indexes new events with it.
  • Search in Google. search events --backend server asks Google's own search. It also finds events outside the synced span. --backend both asks the store and Google together.
  • One search over everything. search all roadmap finds your meetings beside the chats that other WireCat tools stored and your notes, and says which accounts it read.
  • Every Google Calendar method. gcal api reaches each one, under its own permission key.

Sign-in and profiles

Each profile is one Google account. No command ever picks a profile for you; gcal session list lists them.

sh
gcal personal session start --client-file ~/client_secret.json   # read-onlygcal personal session start --grant write                         # also create, change and delete eventsgcal personal session start --grant write,sharing                 # also see and change who can see a calendargcal personal session status --check                              # ask Google whether the sign-in still works

GCAL_PROFILE=personal names the profile for a whole shell session. The sign-in is kept in the system keyring. Where the keyring fails, gcal uses a private file and says so once. It never asks.

More: sign in (wirecat.dev).

Settings and permissions

Settings live in one config.json; gcal personal config show lists them. Permissions say what each command may do: allow, ask, readonly or deny.

PermissionWhat it coversDefault
events.create, update, move, respondthe event writes that are easy to undoallow
events.deletedeleting an eventask
events.notifyGoogle mails the other attendeesdeny
events.delete.seriesdeleting every occurrence of a repeating eventdeny
sharing.notifyGoogle mails the person a calendar is shared withdeny

Sharing a calendar asks first. Over MCP nobody can answer a question, so ask lets a command run. An agent can then share a calendar without asking you. To stop it, run gcal personal config set permissions.api.calendar.acl deny.

sh
gcal personal config set permissions.api readonly                    # reads only, every methodgcal personal config set permissions.events.create ask               # ask before each new eventgcal personal events create 3 --title 'Example planning' --start-time 2026-11-02T10:00 --end-time 2026-11-02T10:30 --dry-run

--dry-run shows the permission a command needs and does nothing. GCAL_READ_ONLY=1 refuses every write.

More: settings (wirecat.dev).

Limits

  • Only the calendars you own sync at first. gcal personal calendars list shows the rest, and gcal personal calendars sync 3 adds calendar 3.
  • gcal has no Google app of its own yet. Sign-in needs your own client.
  • A Google app in Testing mode ends sign-ins after seven days. Sign in again, or publish the app.
  • calendars busy shows a person's busy times only when their calendar is shared with you or your organization.
  • Google's change notifications (watch) are not offered: they need a public web address.

What is planned is on the roadmap (wirecat.dev).

Security

  • Your event data goes only to Google. The sign-in is kept in the system keyring, or in a file only you can read.
  • No command, error, log or run record shows a token or the client secret.
  • A meeting's passcode or PIN is never stored. A join link is kept without its query string.
  • A write never mails attendees, and a delete never runs unasked, unless you allow it.
  • gcal refuses an OAuth client file that other users of the computer can read.
  • Permissions guard against an agent that a message talked into a change. They do not stop an agent that wants to get around them: for that, use a sandbox or a separate user.

More: security (wirecat.dev). Report a vulnerability as SECURITY.md says.

When it does not work

sh
gcal doctor                        # what is set up; no network, no keyringgcal personal session status --check   # does Google still accept the sign-ingcal personal sync --trace         # the connection log, never contentgcal personal runs list            # failed runs are kept

More: when something goes wrong (wirecat.dev).

Documentation

Each page is also on wirecat.dev/en/docs/gcal. Below are the sources in this repository.

For developers: design, tests and the rules for agents in AGENTS.md.

Development

sh
pnpm installpnpm lint && pnpm typecheck && pnpm testpnpm build && pnpm smoke:node          # the built command: the bundle users installpnpm build && pnpm smoke:bun           # the same under Bunpnpm generate                          # rewrite the generated filespnpm release:check                     # every check CI runs

The shared part — output streams, error codes, the keyring, the store, search and MCP — lives in @wirecat/cli-base and its sibling library cli-core.

Part of WireCat

gcal is part of WireCat, an open-source, local-first context layer for AI agents. tg-cli and max-cli bring Telegram and MAX into the same local store. Start with one tool. Add more context when you need it. Your context. Any agent.

Questions and setup help: join the WireCat Discord. Bugs go to this repository's issues.

Contributing and license

Pull requests, bug reports and ideas go to issues.

Apache License 2.0 — LICENSE.

來源:README.md,提交 aa5953f

工具

0
SourceWeft 曾在隔離沙箱中以無憑證方式啟動該軟體包一次,以列出其工具,但未能完成:伺服器未能啟動。

版本歷史

2
  1. v0.20.0最新Nov 5, 2026
  2. v0.19.0Nov 3, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Wire 整合