LABSCO SUMMARY
Bring your own Google credentials — there is deliberately no shared client.
Calendar API access is granted to a limited set of approved clients, so the author does not ship one: you create the Google project and hold the token, which lands in your platform's data directory. Both the project and the MCP mode are marked experimental, and the README says features may change without notice.
What it is
A Rust command-line tool that fetches your schedule through the Google Calendar API v3 and renders it with a Jinja2 template. cal2prompt mcp runs the same thing as an MCP server.
What you get
- The range you actually want —
--today,--this-week,--this-month,--next-week, or--sinceand--untilwith explicit dates - Several calendars merged into one chronological list
- Output shaped by your own template, with all-day events, timed events, location, description and attendees all available to it
- Inserting a new event into a calendar you nominate, through the MCP mode
- A timezone you set once —
settings.TZin IANA format, defaulting to UTC
Requirements
Your own Google OAuth 2.0 client — clientID, clientSecret and the calendar IDs — written into ~/.config/cal2prompt/config.lua. Install with brew install shuntaka9576/tap/cal2prompt or cargo install --path .. In Claude Desktop, set command to the full path from which cal2prompt, pass mcp as the argument, and set HOME explicitly because the app does not inherit it.
Setup effort
Follow the published steps — brew install shuntaka9576/tap/cal2prompt
USE CASES
Starting the day with your schedule already in context
Fetch today's events and hand the assistant a formatted summary instead of pasting a screenshot of the calendar.
Planning a week across several calendars
List the calendar IDs once; events from all of them come back merged in chronological order.
Making the output fit what you do with it
Edit the template — drop attendees, keep locations, group by day — without touching the fetch logic.
Adding an event without opening the web UI
The MCP mode inserts events into the calendar named in the config.
BEFORE YOU INSTALL
What to know first
Requires
Your own Google Cloud OAuth 2.0 client (Desktop app type, Google Calendar API enabled) — its client ID and secret, plus the IDs of the calendars to read, written into your cal2prompt Lua config
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
Install
brew install shuntaka9576/tap/cal2promptCreate your own Google OAuth client: a Google Cloud project with the Google Calendar API enabled, an OAuth consent screen with the email of the calendar you want to read added as a test user, and an OAuth client of type Desktop app. The repository's docs/setup-oauth.md walks through each screen.
Write ~/.config/cal2prompt/secrets.lua with that client ID, client secret and your calendar IDs, and ~/.config/cal2prompt/config.lua that reads them. The README's Initial setup section prints both files.
Launch it once: the Google sign-in begins automatically — follow the on-screen instructions
cal2prompt
MCP Clients
Claude Desktop
{
"mcpServers": {
"cal2prompt": {
"command": "/Users/<YOUR_USERNAME>/.cargo/bin/cal2prompt",
"args": [
"mcp"
],
"env": {
"HOME": "/Users/<YOUR_USERNAME>"
}
}
}
}The cal2prompt path is the full path that which cal2prompt prints — a Homebrew install does not put it in ~/.cargo/bin — and HOME is your own home directory. The block sets HOME because Claude Desktop may not inherit it.