Reads and writes Google Calendar: query and create events, analyze free/busy time, book focus time and schedule across accounts.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add calendar --env GOOGLE_CLIENT_ID='<GOOGLE_CLIENT_ID>' --env GOOGLE_CLIENT_SECRET='<GOOGLE_CLIENT_SECRET>' -- uvx calendar-mcp-server~/.codex/config.toml
[mcp_servers.calendar]
command = "uvx"
args = ["calendar-mcp-server"]
env = { GOOGLE_CLIENT_ID = "<GOOGLE_CLIENT_ID>", GOOGLE_CLIENT_SECRET = "<GOOGLE_CLIENT_SECRET>" }
# codex mcp add calendar --env GOOGLE_CLIENT_ID='<GOOGLE_CLIENT_ID>' --env GOOGLE_CLIENT_SECRET='<GOOGLE_CLIENT_SECRET>' -- uvx calendar-mcp-server~/.cursor/mcp.json
{
"mcpServers": {
"calendar": {
"command": "uvx",
"args": [
"calendar-mcp-server"
],
"env": {
"GOOGLE_CLIENT_ID": "<GOOGLE_CLIENT_ID>",
"GOOGLE_CLIENT_SECRET": "<GOOGLE_CLIENT_SECRET>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"calendar": {
"type": "stdio",
"command": "uvx",
"args": [
"calendar-mcp-server"
],
"env": {
"GOOGLE_CLIENT_ID": "<GOOGLE_CLIENT_ID>",
"GOOGLE_CLIENT_SECRET": "<GOOGLE_CLIENT_SECRET>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"calendar": {
"command": "uvx",
"args": [
"calendar-mcp-server"
],
"env": {
"GOOGLE_CLIENT_ID": "<GOOGLE_CLIENT_ID>",
"GOOGLE_CLIENT_SECRET": "<GOOGLE_CLIENT_SECRET>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"calendar": {
"command": "uvx",
"args": [
"calendar-mcp-server"
],
"env": {
"GOOGLE_CLIENT_ID": "<GOOGLE_CLIENT_ID>",
"GOOGLE_CLIENT_SECRET": "<GOOGLE_CLIENT_SECRET>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"calendar": {
"command": "uvx",
"args": [
"calendar-mcp-server"
],
"env": {
"GOOGLE_CLIENT_ID": "<GOOGLE_CLIENT_ID>",
"GOOGLE_CLIENT_SECRET": "<GOOGLE_CLIENT_SECRET>"
}
}
}
}Environment variables
GOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRET
Replace the placeholders with your own credentials and keep them out of version control.