Use NeetoCal in Codex

Connect Codex to the NeetoCal MCP server and work with your schedule from your editor or terminal, with your NeetoCal sign-in or an API key.

Koppel NeetoCal aan Codex

  1. 1Add the server to ~/.codex/config.toml.
  2. 2Run codex mcp login neetocal and sign in to NeetoCal in the browser.
[mcp_servers.neetocal]
url = "https://connect.neetocal.com/mcp/messages"
Codex

> List my NeetoCal bookings for today

● neetocal - ListBookings · 4 found

You have 4 bookings today. The 3:00 PM Product Demo has no host assigned yet.

>

NeetoCal

Check requirements

  • Codex installed on your computer.
  • A NeetoCal account.

Connect NeetoCal to Codex

Add the server to ~/.codex/config.toml:

[mcp_servers.neetocal]
url = "https://connect.neetocal.com/mcp/messages"

Then run this command and sign in to NeetoCal in the browser:

codex mcp login neetocal
Terminal recording of Codex connected to NeetoCal. Codex is asked which Grooming Consultation slots are free next Tuesday afternoon. Codex calls ListMeetingSlots and lists the 9 open slots.
Codex answers from your NeetoCal data in the terminal.

Connect with an API key

An API key is not tied to a person. Every tool call reaches the whole workspace, and role checks do not run. Use a key for automation that must see every booking. Do not use one on a machine where the person should see only their own bookings.

It is the same key the REST API uses. Learn how to generate your API key. Create it in the workspace you want the assistant to reach. Every client sends it in this header:

Authorization: Bearer YOUR_API_KEY

Add the server to ~/.codex/config.toml:

[mcp_servers.neetocal]
url = "https://connect.neetocal.com/mcp/messages"
bearer_token_env_var = "NEETOCAL_API_KEY"

Then set NEETOCAL_API_KEY to your API key in the shell where you run Codex. Codex takes the name of the environment variable, not the key itself.

Try these prompts

Look things up:

What NeetoCal bookings do I have this week?

Show me open slots for my Product Demo meeting on May 15 in America/New_York.

List the meetings I host.

Book outside your working hours. Only a host of the meeting or an admin can do this:

Book Oliver Smith into my demo meeting on May 15 at 8pm America/New_York, even though it's outside my hours.

Set up a meeting and your calendar:

Create a 30-minute meeting called Product Demo, hosted by me, over Zoom.

Add bookings of my Product Demo meeting to my Work Google calendar, and check only that calendar for conflicts.

Troubleshooting

Your AI assistant shows no NeetoCal tools

Restart the client first. Every client reads its MCP config at startup. On Claude or ChatGPT, confirm that you added the connector and finished the sign-in. In ChatGPT, the plugin is created only after you tick I understand and want to continue.

On clients that read a config file, check these:

  1. The config key. Claude Code, Cursor, Devin, Antigravity, and Antigravity CLI use mcpServers. VS Code uses servers. Codex uses a [mcp_servers.<name>] section in TOML. A server under the wrong key is ignored silently.
  2. The URL key. Antigravity and Antigravity CLI expect serverUrl. Claude Code, Codex, Cursor, Devin, and VS Code expect url.
  3. The endpoint. It is https://connect.neetocal.com/mcp/messages, with no trailing slash.
  4. The syntax. In JSON, a trailing comma or an unclosed brace makes the whole file unreadable.

The connection is refused or unauthorized

With an API key, the header must read Bearer YOUR_API_KEY, with the word Bearer and one space before the key. Check that the key is not revoked and belongs to the workspace you expect. A key from one workspace does not work in another. With OAuth, remove the connector and add it again to start the sign-in over.

More fixes are in the NeetoCal MCP troubleshooting guide.

Use NeetoCal in other AI assistants

Prefer the terminal? The NeetoCal CLI reaches the same data from your shell, your scripts and your coding agent.

Zeg vaarwel tegen planningshoofdpijn — begin nu!