Google Calendar
Add Google Calendar as an MCP tool. The agent can list calendars, search events, create events, and run free/busy queries.
What it does
- List calendars, list/search/create/update events, check free-busy
- Multi-account and multi-calendar support
- OAuth managed by OneCLI — no raw credentials reach the container
- Per-agent-group enablement via container.json
- Pairs cleanly with /add-gmail-tool (sibling skill, same pattern)
What you'll need
- NanoClaw installed and running
- OneCLI Agent Vault initialized (run /init-onecli first)
- Google Calendar connected in OneCLI
- calendar.readonly + calendar.events scopes (minimum)
Install
/add-gcal-tool How it works
The /add-gcal-tool skill wires @cocal/google-calendar-mcp into selected agent groups as an MCP tool. The agent gets calendar capabilities — listing calendars, searching events, creating events, free/busy queries, and so on.
The MCP server reads stub credentials at ~/.calendar-mcp/ containing the onecli-managed placeholder. OneCLI’s gateway intercepts outbound calls to calendar.googleapis.com and oauth2.googleapis.com and swaps the placeholder for the real OAuth token from its vault. Containers never receive raw API keys — that’s the v2 invariant.
Setup
Three steps, mostly automated:
- Connect Google Calendar in OneCLI. The skill checks
onecli apps get --provider google-calendarand tells you to open the OneCLI web UI (http://127.0.0.1:10254) to authorize if it isn’t already connected. - Write stub credentials at
~/.calendar-mcp/gcp-oauth.keys.jsonand~/.calendar-mcp/credentials.json— both contain theonecli-managedplaceholder. - Wire per agent group. The skill adds the calendar MCP server to
groups/<folder>/container.jsonand adds~/.calendar-mcptoadditionalMountsfor each group that should have calendar access.
Then it pins CALENDAR_MCP_VERSION in the Dockerfile, adds mcp__calendar__* to the tool allowlist, and rebuilds.
What you get
The agent can call (tool names surface as mcp__calendar__<name>):
list_calendars— every calendar visible to the connected accountlist_events,search_events,get_event— read eventscreate_event,update_event,delete_event— write eventsget_freebusy— query availabilityget_current_time,list_colors— utilities
Use natural language: “What’s on my work calendar next Monday?”, “Schedule a 30-minute focus block at 2pm”, “Am I free Thursday afternoon?”.
Tips
- This skill mirrors
/add-gmail-tool. If both are installed, they share the OneCLI-managed pattern and the same Dockerfile pnpm install block — the skill detects an existing gmail install and merges into it. - Why not the gongrzhe MCP server? The earlier
@gongrzhe/server-calendar-autoauth-mcponly supports the primary calendar with 5 event-level tools. The cocal package supports multi-calendar and multi-account. - First call is 2–3 seconds while the MCP server boots and OneCLI does the token exchange. Subsequent calls are fast.
- If the agent says “I don’t have calendar tools,” the most common cause is
mcp__calendar__*missing from theTOOL_ALLOWLIST— re-run the skill, it’s idempotent.