Google Calendar Meeting Setup
Enables creating Google Calendar meeting invites with automated authentication via OAuth. Supports scheduling meetings with customizable title, duration, notes, and attendees through a simple command-line or MCP tool interface.
README
Google Calendar Meeting Setup
Automation script for creating Google Calendar meeting invites with minimal input. The script authenticates via OAuth, then creates an event on your primary calendar using the Google Calendar API.
Demo Video
Watch the setup walkthrough on YouTube.
Prerequisites
- Python 3.11 (or use the provided Conda instructions).
- Google Cloud project with the Calendar API enabled.
- OAuth client credentials (
credentials.json) downloaded to this folder.
Recommended Conda Environment
conda create -n meeting_setup python=3.11
conda activate meeting_setup
pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib mcp
Obtain credentials.json
- Visit the Google Cloud Console and sign in.
- Create/select a project.
- Enable Google Calendar API under APIs & Services → Library.
- Configure the OAuth consent screen (External is fine for testing) and add the Google accounts that will run this script as test users.
- Navigate to APIs & Services → Credentials and create an OAuth client ID of type Desktop app.
- Download the client configuration JSON, rename it to
credentials.json, and place it besidecreate_meeting_invite.py. - (First run only) When the script opens a browser window, approve access—
token.jsonwill be saved for subsequent runs.
Usage
python create_meeting_invite.py \
--meeting-time "2025-11-09 17:00" \
--other-email "karan.xyz@gmail.com" \
--meeting-title "Karan <> Arjun | Intro call" \
--meeting-notes "https://example.com/agenda"
--meeting-timeis required (IST timezone, formatYYYY-MM-DD HH:MMorYYYY-MM-DDTHH:MM).--other-emailis required.- Optional flags:
--meeting-title(default:Meeting)--host-email(default:arjuntheprogrammer@gmail.com)--meeting-notes(default: empty)--duration-minutes(default: 60)
The script prints the event details, including a link to view it in Google Calendar.
MCP Server
This project also exposes a Model Context Protocol (MCP) server so MCP-capable assistants can call the meeting tool directly.
conda activate meeting_setup
python mcp_server.py
The server currently runs over stdio transport. When connected, call the create_meeting_invite tool with the same argument names used by the CLI flags (e.g. meeting_time, other_email, meeting_title, meeting_notes, duration_minutes, host_email). The tool responds with key event details (summary, start, end, htmlLink, etc.).
Configure Codex to Use This MCP Server
- Ensure the MCP environment is active (step above) and Codex CLI is installed.
- Register the server once with Codex:
codex mcp add calendar_meeting /Users/arjungupta/anaconda3/envs/meeting_setup/bin/python /Users/arjungupta/Development/extra/google_calendar_meeting_setup/mcp_server.py - Verify the registration:
You should seecodex mcp listcalendar_meetingwith transportstdioand the Python command. - Launch Codex normally (
codex,codex exec, etc.). When Codex needs MCP tools it will start this server automatically. - Inside Codex, invoke the
create_meeting_invitetool by supplying the same arguments as the CLI flags, for example:create_meeting_invite meeting_time="2025-11-16 16:00" other_email="partner@example.com" meeting_title="Strategy Sync"
Remove or reconfigure the server any time with codex mcp remove calendar_meeting.
Configure Claude Desktop
- Launch Claude Desktop once so it generates
claude_desktop_config.jsonat~/Library/Application Support/Claude/. - Add (or merge) this entry inside the
"mcpServers"object:{ "calendar-meeting": { "command": "/Users/arjungupta/anaconda3/envs/meeting_setup/bin/python", "args": [ "/Users/arjungupta/Development/extra/google_calendar_meeting_setup/mcp_server.py" ] } } - Restart Claude Desktop (or toggle MCP servers in its settings) so it picks up the new server. The
create_meeting_invitetool is then available directly within Claude.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.