Skip to content

Commit 1523df8

Browse files
committed
feat: Google Calendar MCP
1 parent 3903192 commit 1523df8

File tree

2 files changed

+49
-1
lines changed

2 files changed

+49
-1
lines changed

docs/concepts/mcp.md

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ Enola will replace values of `${secret:XYZ}` with the [secret](../use/secret/ind
5454
TODO
5555
5656
Zapier
57-
Google Mail & Calendar & Drive!
57+
Google Mail & Drive!
5858
RAG with Pinecone, LlamaIndex?
5959
OpenAPI (HF)?
6060
-->
@@ -93,6 +93,28 @@ The [`search-brave`](https://github.com/brave/brave-search-mcp-server) tool uses
9393
enola ai --agents=test/agents/brave.agent.yaml --prompt="Use the brave_news_search tool to obtain what's new in world politics today and summarize the top 7 developments in bullet points of maximum 3 sentences each."
9494
```
9595

96+
### Google Calendar
97+
98+
Follow https://github.com/nspady/google-calendar-mcp#quick-start to obtain the GCP OAuth Key JSON file.
99+
100+
Edit `test/mcp/google-calendar.yaml` and set `GOOGLE_OAUTH_CREDENTIALS` to the path to this JSON file. Now run:
101+
102+
```shell
103+
./enola -vvvv mcp list-tools --mcp=test/mcp/google-calendar.yaml
104+
```
105+
106+
This will open a web-browser, where you need to authorize access to your Google account.
107+
The token from this authorization will be saved to `~/.config/google-calendar-mcp/tokens.json`.
108+
Re-run `mcp list-tools` and make sure that it prints the calendar MCP tools.
109+
If that's successful, then you can use it e.g. like this:
110+
111+
```shell
112+
./enola -vvvv ai --mcp=test/mcp/google-calendar.yaml --agents=test/agents/google-calendar.agent.yaml --prompt="What upcoming meetings do I have scheduled?"
113+
```
114+
115+
TODO Patch `nspady/google-calendar-mcp` so that JSON can be provided via env. var. directly, not just via file?!
116+
Then fix https://github.com/enola-dev/enola/issues/1862 and move `test/mcp/google-calendar.yaml` to `models/enola.dev/ai/mcp.yaml`.
117+
96118
### Git
97119

98120
```yaml

test/mcp/google-calendar.yaml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# SPDX-License-Identifier: Apache-2.0
2+
#
3+
# Copyright 2025 The Enola <https://enola.dev> Authors
4+
#
5+
# Licensed under the Apache License, Version 2.0 (the "License");
6+
# you may not use this file except in compliance with the License.
7+
# You may obtain a copy of the License at
8+
#
9+
# https://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
17+
# TODO Actually generate (!write) and publish a JSON Schema for McpServerConnectionConfig
18+
$schema: https://enola.dev/ai/mcp/server/connections
19+
20+
servers:
21+
google-calendar:
22+
command: npx
23+
args: ["-y", "@cocal/google-calendar-mcp"]
24+
docs: https://github.com/nspady/google-calendar-mcp
25+
env:
26+
GOOGLE_OAUTH_CREDENTIALS: /home/vorburger/cal.json

0 commit comments

Comments
 (0)