Schedule smarter - create, search, and manage Google Calendar events through AI.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"io-github-ammar-62-mewcp-google-calendar": {
"command": "<see-readme>",
"args": []
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Schedule smarter — create, search, and manage Google Calendar events through AI.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in productivity
MCP Security Weekly
Get CVE alerts and security updates for io.github.AMMAR-62/mewcp-google-calendar and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Schedule smarter — create, search, and manage Google Calendar events through AI.
A Model Context Protocol (MCP) server that exposes Google Calendar's API for creating, reading, updating, and deleting events and calendars.
The Google Calendar MCP Server provides full calendar management directly from AI workflows:
Perfect for:
list_events — List events from a calendarLists events from a calendar within an optional time range. Returns events in start-time order. Recurring events are expanded into individual instances. Use ISO 8601 for time_min/time_max: 'YYYY-MM-DDTHH:MM:SSZ' (e.g. '2026-01-08T00:00:00Z'). Defaults to events from now onwards if time_min is not specified.
Inputs:
- `calendar_id` (string, optional, default: "primary") — Calendar ID. Use 'primary' for the user's main calendar
- `max_results` (int, optional, default: 10) — Maximum number of events to return (1–2500)
- `time_min` (string, optional, default: "") — Start of time range in ISO 8601 format, e.g. '2026-01-08T00:00:00Z'. Defaults to now
- `time_max` (string, optional, default: "") — End of time range in ISO 8601 format, e.g. '2026-01-15T23:59:59Z'. Omit for open-ended
- `query` (string, optional, default: "") — Free-text search query to filter events by title, description, or location
- `show_deleted` (bool, optional, default: false) — Include cancelled events in results
- `page_token` (string, optional, default: "") — Pagination token from a previous response's next_page_token to fetch the next page
Output data schema:
{
count: number;
events: {
id: string;
summary: string | null;
start: { date: string | null; dateTime: string | null; timeZone: string | null; };
end: { date: string | null; dateTime: string | null; timeZone: string | null; };
status: string | null;
htmlLink: string | null;
created: string | null;
updated: string | null;
description: string | null;
location: string | null;
colorId: string | null;
creator: { id: string | null; email: string | null; displayName: string | null; self: boolean | null; } | null;
organizer: { id: string | null; email: string | null; displayName: string | null; self: boolean | null; } | null;
recurrence: string[] | null;
recurringEventId: string | null;
originalStartTime: { date: string | null; dateTime: string | null; timeZone: string | null; } | null;
transparency: string | null;
visibility: string | null;
iCalUID: string | null;
sequence: number | null;
attendees: {
email: string;
id: string | null;
displayName: string | null;
organizer: boolean | null;
self: boolean | null;
resource: boolean | null;
optional: boolean | null;
responseStatus: string | null;
comment: string | null;
additionalGuests: number | null;
}[] | null;
attendeesOmitted: boolean | null;
guestsCanInviteOthers: boolean | null;
guestsCanModify: boolean | null;
guestsCanSeeOtherGuests: boolean | null;
hangoutLink: string | null;
conferenceData: object | null;
reminders: { useDefault: boolean; overrides: { method: string; minutes: number; }[] | null; } | null;
eventType: string | null;
}[];
next_page_token: string | null;
}
<detail