{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"google-calendar-mcp-server","slug":"google-calendar-mcp-server","name":"Google Calendar MCP Server","type":"mcp","url":"https://github.com/nspady/google-calendar-mcp","page_url":"https://unfragile.ai/google-calendar-mcp-server","categories":["mcp-servers"],"tags":["google-calendar","scheduling","community"],"pricing":{"model":"free","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"google-calendar-mcp-server__cap_0","uri":"capability://tool.use.integration.oauth2.authenticated.google.calendar.api.bridge.via.mcp.protocol","name":"oauth2-authenticated google calendar api bridge via mcp protocol","description":"Implements a stateful OAuth2 authentication system that spawns a temporary HTTP server (runAuthServer() in src/auth-server.ts) to handle Google's authorization flow, persists tokens to the user's config directory, and automatically refreshes credentials during tool execution. The MCP protocol layer translates all calendar operations into standardized tool definitions with Zod-validated JSON schemas, enabling AI assistants to invoke calendar functions through a unified interface without direct API knowledge.","intents":["Set up secure, persistent authentication between an AI assistant and Google Calendar without storing credentials in plaintext","Enable Claude Desktop or custom MCP clients to access Google Calendar APIs through a standardized protocol","Automatically refresh expired OAuth tokens without user intervention during calendar operations"],"best_for":["AI assistant developers integrating Google Calendar into Claude Desktop or custom MCP clients","Teams deploying calendar automation that requires OAuth2 compliance and token lifecycle management","Solo developers building LLM agents that need persistent, secure Google Calendar access"],"limitations":["Tokens are persisted to local filesystem in user's config directory — requires secure OS-level file permissions","OAuth2 flow requires interactive browser redirect during initial setup — cannot be fully automated in headless environments","Token refresh happens synchronously during tool execution, adding latency if tokens are near expiration"],"requires":["Node.js 18+ with @modelcontextprotocol/sdk package","Google OAuth2 credentials (Client ID and Secret) from Google Cloud Console","Localhost network access for temporary HTTP server during auth flow (port 3000 by default)","User's config directory writable (typically ~/.config on Linux/macOS, %APPDATA% on Windows)"],"input_types":["OAuth2 authorization code from Google","Stored refresh token from previous authentication"],"output_types":["Access token for Google Calendar API calls","Persisted refresh token for future sessions","MCP-compatible tool definitions with JSON schemas"],"categories":["tool-use-integration","safety-moderation"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"google-calendar-mcp-server__cap_1","uri":"capability://tool.use.integration.multi.transport.mcp.server.deployment.stdio.and.http.modes","name":"multi-transport mcp server deployment (stdio and http modes)","description":"Provides dual transport layer implementation where the main() function in src/index.ts routes between stdio mode (for local clients like Claude Desktop using process communication) and HTTP mode (for remote deployment with REST endpoints and Server-Sent Events). This architecture enables the same tool registry and authentication system to serve both local and distributed clients without modification, with deployment configuration managed via --transport CLI argument and docker-compose.yml for containerized setups.","intents":["Deploy the same MCP server locally in Claude Desktop and remotely in Docker without code changes","Enable both process-based (stdio) and network-based (HTTP) clients to access the same calendar tools","Configure transport mode at runtime without rebuilding the application"],"best_for":["Teams deploying MCP servers across multiple environments (local development, Docker, Kubernetes)","Developers building custom MCP clients that need HTTP endpoints instead of stdio","Organizations requiring remote calendar automation with centralized MCP server infrastructure"],"limitations":["HTTP mode requires additional network configuration and firewall rules — not suitable for air-gapped environments","stdio mode is single-client only — cannot serve multiple concurrent Claude Desktop instances from one process","Server-Sent Events in HTTP mode have no built-in reconnection logic — client must handle connection drops"],"requires":["Node.js 18+ with @modelcontextprotocol/sdk","For HTTP mode: open port (default 3000) and network access","For Docker mode: Docker and docker-compose installed","CLI argument parsing support (--transport flag)"],"input_types":["CLI arguments (--transport stdio|http)","Environment variables for HTTP server configuration","MCP protocol messages (stdio or HTTP POST)"],"output_types":["stdio: MCP protocol messages via process stdout","HTTP: REST endpoints and Server-Sent Event streams"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"google-calendar-mcp-server__cap_10","uri":"capability://data.processing.analysis.timezone.aware.event.scheduling.with.automatic.conversion","name":"timezone-aware event scheduling with automatic conversion","description":"Handles timezone-aware event creation by accepting RFC 3339 timestamps (which include timezone information) and automatically converting them to the user's calendar timezone. The system stores events in Google Calendar with timezone metadata, enabling correct display across different timezones and preventing scheduling errors when users or attendees are in different regions. Event times are returned in RFC 3339 format with timezone information, enabling AI assistants to display times correctly to users in any timezone.","intents":["Schedule meetings across timezones without manual conversion","Ensure events display correctly in users' local timezones","Enable AI assistants to understand and work with timezone-aware scheduling"],"best_for":["Distributed teams scheduling meetings across multiple timezones","Personal assistants that work with users in different regions","Automation workflows that need to handle international scheduling"],"limitations":["Timezone handling relies on RFC 3339 format — requires proper timezone specification in timestamps","Daylight saving time transitions can cause unexpected behavior if not handled correctly","Google Calendar's timezone handling may differ from other calendar systems — potential compatibility issues","No support for custom timezone aliases — must use standard IANA timezone identifiers"],"requires":["RFC 3339 timestamps with timezone information (e.g., '2024-01-15T14:30:00-05:00')","Google Calendar API credentials with calendar.events.create/update scopes","User's calendar timezone configured in Google Calendar settings"],"input_types":["Start timestamp (RFC 3339 format with timezone)","End timestamp (RFC 3339 format with timezone)"],"output_types":["Event object with timezone-aware times","RFC 3339 formatted times in user's timezone"],"categories":["data-processing-analysis","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"google-calendar-mcp-server__cap_11","uri":"capability://automation.workflow.docker.deployment.with.http.transport.and.environment.based.configuration","name":"docker deployment with http transport and environment-based configuration","description":"Supports Docker containerization via docker-compose.yml that runs the MCP server in HTTP mode with environment variable configuration for OAuth credentials and port binding. The Docker setup enables remote deployment of the MCP server with automatic container orchestration, health checks, and volume mounting for persistent token storage. HTTP transport allows multiple remote clients to connect via REST endpoints and Server-Sent Events.","intents":["I want to deploy the MCP server to a remote server or cloud environment","I need to run the MCP server in a containerized environment with proper isolation","I want to configure the MCP server via environment variables for CI/CD pipelines"],"best_for":["DevOps teams deploying MCP servers to cloud infrastructure (AWS, GCP, Azure)","Organizations running multiple MCP server instances with load balancing"],"limitations":["HTTP transport adds network latency compared to stdio — not suitable for latency-sensitive applications","No built-in authentication for HTTP endpoints — requires external reverse proxy or API gateway","Token storage in container volumes requires persistent storage configuration — ephemeral containers lose credentials","Server-Sent Events require persistent connections — incompatible with stateless serverless deployments","No built-in load balancing or horizontal scaling — each container instance is independent"],"requires":["Docker and Docker Compose installed","Google OAuth2 credentials as environment variables","Open port for HTTP transport (default 3000)","Persistent volume for token storage (/root/.config or equivalent)"],"input_types":["docker-compose.yml configuration with environment variables","Google OAuth2 credentials (GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, etc.)"],"output_types":["Running Docker container with MCP server on specified port","HTTP endpoints for tool invocation","Server-Sent Events stream for MCP protocol messages"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"google-calendar-mcp-server__cap_2","uri":"capability://tool.use.integration.registry.based.tool.definition.generation.with.zod.schema.validation","name":"registry-based tool definition generation with zod schema validation","description":"Implements a tool registry pattern (ToolRegistry class in src/tools/registry.ts) where each calendar operation extends BaseToolHandler and declares its input schema using Zod validators. The ToolRegistry.getTools() method introspects these Zod schemas at runtime to generate MCP-compatible JSON schema definitions, ensuring type safety between the AI assistant's tool invocation and the handler's execution logic. This eliminates manual schema maintenance and enables automatic validation of tool inputs before execution.","intents":["Define calendar tools once in TypeScript with Zod validation and automatically generate MCP JSON schemas","Ensure type safety between AI assistant tool calls and backend handler implementations","Add new calendar operations without manually writing JSON schemas or validation logic"],"best_for":["TypeScript-based MCP server developers who want type-safe tool definitions","Teams building extensible tool registries where new tools are added frequently","Projects requiring automatic validation of AI-generated tool inputs before execution"],"limitations":["Zod schema generation is TypeScript-only — no Python or Go support","Schema introspection happens at startup — adding tools at runtime requires server restart","Complex nested schemas may produce verbose JSON schemas that exceed some AI model's context limits"],"requires":["TypeScript 4.5+","Zod 3.x for schema validation","@modelcontextprotocol/sdk for MCP tool definition types","BaseToolHandler abstract class implementation in src/tools/base.ts"],"input_types":["Zod schema definitions (z.object(), z.string(), etc.)","Tool handler class extending BaseToolHandler"],"output_types":["MCP Tool definition objects with JSON schemas","Validated input objects matching Zod schema types"],"categories":["tool-use-integration","code-generation-editing"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"google-calendar-mcp-server__cap_3","uri":"capability://automation.workflow.event.creation.and.updating.with.conflict.detection.and.attendee.management","name":"event creation and updating with conflict detection and attendee management","description":"Provides structured event management through handler classes that accept Zod-validated inputs (title, start/end times, description, attendees, reminders) and execute Google Calendar API calls to create or update events. The implementation includes intelligent conflict detection that queries existing events in the target calendar to warn about scheduling overlaps, and supports multi-attendee management with RSVP status tracking. Recurring event handling is managed through Google Calendar's recurrence rule (RRULE) format, enabling complex repeat patterns without custom scheduling logic.","intents":["Create calendar events from natural language requests with automatic conflict detection","Update existing events with new attendees, times, or descriptions","Manage recurring events with complex repeat patterns (daily, weekly, monthly, yearly with exceptions)"],"best_for":["AI assistants scheduling meetings on behalf of users with conflict awareness","Automation workflows that need to create bulk events with attendee notifications","Teams using Google Calendar as the source of truth for scheduling"],"limitations":["Conflict detection is advisory only — does not prevent double-booking, only warns the AI assistant","Attendee management relies on Google Calendar's RSVP system — no custom approval workflows","Recurring event modifications are limited to Google Calendar's RRULE format — cannot create custom recurrence logic","No support for event color coding, custom fields, or Google Calendar's advanced features like 'busy' status"],"requires":["Valid Google Calendar API credentials with calendar.events.create and calendar.events.update scopes","Target calendar ID (obtained from list-calendars tool)","Valid RFC 3339 timestamps for event start/end times","Attendee email addresses must be valid for invitation delivery"],"input_types":["Event title (string)","Start and end times (RFC 3339 format)","Description (optional string)","Attendee list (array of email addresses)","Reminder settings (array of notification times)","Recurrence rule (RRULE string, optional)"],"output_types":["Created/updated event object with Google Calendar event ID","Conflict warnings if overlapping events detected","Attendee invitation status"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"google-calendar-mcp-server__cap_4","uri":"capability://search.retrieval.calendar.enumeration.and.event.search.with.date.range.filtering","name":"calendar enumeration and event search with date range filtering","description":"Exposes list-calendars and search-events tools that query the Google Calendar API to enumerate all calendars accessible to the authenticated user and retrieve events within specified date ranges. The search-events tool accepts start and end timestamps (RFC 3339 format) and returns matching events with full details (title, time, attendees, description). This enables AI assistants to understand the user's calendar landscape and retrieve relevant events for decision-making without loading the entire calendar history.","intents":["Discover all calendars available to the user (primary, shared, subscribed calendars)","Find events within a specific date range to check availability or retrieve event details","Enable AI assistants to answer questions like 'What meetings do I have next week?' or 'Am I free on Tuesday?'"],"best_for":["AI assistants that need to understand user's calendar state before making scheduling decisions","Automation workflows that query events for reporting or analytics","Personal assistant agents that answer calendar-related questions"],"limitations":["list-calendars returns only calendar metadata (ID, name, timezone) — does not include event counts or last-modified timestamps","search-events requires explicit date range — cannot retrieve 'all future events' without specifying an end date","No full-text search across event titles and descriptions — filtering is time-based only","Pagination is not exposed — large date ranges may return truncated results if event count exceeds API limits"],"requires":["Valid Google Calendar API credentials with calendar.readonly scope","For search-events: valid RFC 3339 start and end timestamps","Calendar ID for search-events (obtained from list-calendars tool)"],"input_types":["Calendar ID (string, optional for list-calendars)","Start timestamp (RFC 3339 format, required for search-events)","End timestamp (RFC 3339 format, required for search-events)"],"output_types":["Calendar list: array of calendar objects with ID, name, timezone, description","Event list: array of event objects with title, start/end times, attendees, description, event ID"],"categories":["search-retrieval","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"google-calendar-mcp-server__cap_5","uri":"capability://automation.workflow.reminder.and.notification.configuration.with.flexible.timing.options","name":"reminder and notification configuration with flexible timing options","description":"Supports reminder management through event creation/update tools that accept reminder specifications (time before event, notification type). Reminders are stored in Google Calendar's reminder system and delivered via email or popup notifications based on user preferences. The implementation accepts reminder times in minutes before the event (e.g., 15 minutes, 1 day = 1440 minutes) and maps them to Google Calendar's notification API format, enabling AI assistants to set up notifications without understanding Google's internal reminder schema.","intents":["Set reminders when creating or updating events to ensure users don't miss meetings","Configure multiple reminders per event (e.g., 1 day before and 15 minutes before)","Allow AI assistants to suggest appropriate reminder times based on event type"],"best_for":["Personal assistant agents that create events and automatically set reminders","Automation workflows that need to ensure notification delivery for critical meetings","Teams using Google Calendar's native reminder system without custom notification infrastructure"],"limitations":["Reminder times are limited to Google Calendar's supported intervals — cannot set arbitrary custom times","No support for SMS reminders — only email and popup notifications","Reminder delivery is asynchronous — no guarantee of delivery time or receipt confirmation","Cannot retrieve or list existing reminders for an event — only set them during creation/update"],"requires":["Valid Google Calendar API credentials with calendar.events.create/update scopes","Reminder time specified in minutes before event (integer)","Event must have valid start and end times"],"input_types":["Reminder time in minutes before event (integer, e.g., 15, 1440)","Notification type (email or popup, defaults to email)"],"output_types":["Reminder configuration stored in event object","Confirmation that reminders were set"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"google-calendar-mcp-server__cap_6","uri":"capability://automation.workflow.recurring.event.handling.with.rrule.format.support","name":"recurring event handling with rrule format support","description":"Implements recurring event creation and management by accepting recurrence rules in RFC 5545 RRULE format (e.g., 'FREQ=WEEKLY;BYDAY=MO,WE,FR') and passing them directly to Google Calendar's API. The system handles complex recurrence patterns including frequency (daily, weekly, monthly, yearly), day-of-week constraints, interval counts, and end dates. Modifications to recurring events are managed through Google Calendar's instance-level updates, enabling changes to specific occurrences without affecting the entire series.","intents":["Create recurring meetings (weekly standups, monthly reviews, daily check-ins) from natural language descriptions","Modify specific instances of recurring events without affecting the entire series","Support complex recurrence patterns like 'every other week on Monday and Wednesday'"],"best_for":["Automation workflows that create recurring team meetings or scheduled tasks","AI assistants that interpret natural language recurrence descriptions and convert them to RRULE","Calendar management systems that need to handle complex scheduling patterns"],"limitations":["RRULE format is not human-readable — AI assistants must convert natural language to RRULE syntax","No built-in natural language parsing for recurrence — requires external NLP or hardcoded patterns","Modifying recurring event series requires separate API calls per instance — bulk updates are not supported","Timezone handling in RRULE can be complex — daylight saving time transitions may cause unexpected behavior"],"requires":["Valid RFC 5545 RRULE string (e.g., 'FREQ=WEEKLY;BYDAY=MO,WE')","Google Calendar API credentials with calendar.events.create/update scopes","Event must have valid start and end times"],"input_types":["RRULE string (RFC 5545 format)","Event title, start/end times, description","Optional: end date for recurrence (UNTIL parameter in RRULE)"],"output_types":["Created recurring event with RRULE stored in Google Calendar","Event ID for the series","Instance-level event IDs for modifications"],"categories":["automation-workflow","planning-reasoning"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"google-calendar-mcp-server__cap_7","uri":"capability://automation.workflow.attendee.invitation.and.rsvp.status.tracking","name":"attendee invitation and rsvp status tracking","description":"Manages event attendees through event creation and update tools that accept attendee email lists and track RSVP responses from Google Calendar's attendee system. When events are created or updated with attendees, Google Calendar automatically sends invitations and tracks responses (accepted, declined, tentative, no response). The system exposes attendee lists in event details, enabling AI assistants to understand who has accepted meetings and who hasn't responded. Attendee management is handled through Google Calendar's native attendee API without custom RSVP logic.","intents":["Add attendees to events and send calendar invitations automatically","Check RSVP status of attendees to understand meeting confirmation","Update attendee lists for existing events and notify new attendees"],"best_for":["Meeting scheduling assistants that need to invite multiple participants","Team coordination workflows that track meeting confirmations","Personal assistants that manage shared calendar events"],"limitations":["RSVP tracking is read-only from the event creator's perspective — cannot force attendee responses","Attendee email addresses must be valid Google Workspace or Gmail accounts — external email addresses may not receive invitations","No support for custom attendee roles (organizer, optional, required) — all attendees are treated equally","Attendee removal from existing events may not send cancellation notifications — depends on Google Calendar's behavior"],"requires":["Valid attendee email addresses (Gmail or Google Workspace accounts preferred)","Google Calendar API credentials with calendar.events.create/update scopes","Event must have valid start and end times"],"input_types":["Attendee email list (array of strings)","Event title, start/end times, description"],"output_types":["Event object with attendee list and RSVP status","Invitation confirmation (sent to attendees)","RSVP response tracking (accepted, declined, tentative, no response)"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"google-calendar-mcp-server__cap_8","uri":"capability://automation.workflow.event.deletion.with.cascading.effects.on.recurring.series","name":"event deletion with cascading effects on recurring series","description":"Provides event deletion capability through a delete-event tool that removes events from Google Calendar. For recurring events, the tool supports three deletion modes: delete single instance, delete this and all future instances, or delete entire series. The implementation handles Google Calendar's instance-level deletion semantics, where deleting a single occurrence of a recurring event creates an exception in the series rather than removing the entire series. This enables precise control over recurring event modifications without unintended side effects.","intents":["Cancel individual meetings or entire recurring event series","Remove specific instances of recurring events while preserving the rest of the series","Clean up calendar by deleting outdated or cancelled events"],"best_for":["Calendar management assistants that need to handle meeting cancellations","Automation workflows that clean up expired or obsolete events","Teams managing complex recurring event schedules with frequent modifications"],"limitations":["Deletion is permanent — no undo or soft-delete option","Attendees are not automatically notified of cancellations — depends on Google Calendar's notification settings","Deleting a single instance of a recurring event creates an exception in the series — cannot be undone without recreating the event","No support for conditional deletion (e.g., 'delete if no attendees have accepted')"],"requires":["Valid event ID (obtained from search-events tool)","Google Calendar API credentials with calendar.events.delete scope","For recurring events: specification of deletion mode (single, future, series)"],"input_types":["Event ID (string)","Deletion mode for recurring events: 'single', 'future', or 'series'"],"output_types":["Confirmation of deletion","For recurring events: indication of which instances were affected"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"google-calendar-mcp-server__cap_9","uri":"capability://data.processing.analysis.event.description.and.metadata.enrichment.with.structured.formatting","name":"event description and metadata enrichment with structured formatting","description":"Supports rich event descriptions through event creation and update tools that accept formatted text descriptions, enabling AI assistants to include meeting agendas, notes, links, and other contextual information. The system stores descriptions as plain text or formatted strings in Google Calendar's event description field, with utility functions in src/tools/events/utils.ts handling formatting and parsing. Event metadata (title, location, description) is returned in search results, enabling AI assistants to provide detailed event information to users.","intents":["Create events with detailed agendas, meeting notes, or preparation instructions","Retrieve and display full event details including descriptions and metadata","Enable AI assistants to add context to calendar events beyond just time and attendees"],"best_for":["Meeting scheduling assistants that need to capture meeting agendas","Personal assistants that provide detailed event information to users","Automation workflows that enrich calendar events with contextual data"],"limitations":["Descriptions are plain text only — no support for rich formatting (bold, italics, links) in Google Calendar's API","Description length is limited by Google Calendar API (typically 8000 characters)","No structured metadata beyond title, description, and location — custom fields are not supported","Parsing descriptions to extract structured data requires custom NLP logic — no built-in extraction"],"requires":["Google Calendar API credentials with calendar.events.create/update scopes","Event title and start/end times","Description text (optional, up to 8000 characters)"],"input_types":["Event title (string)","Description (string, plain text)","Location (string, optional)"],"output_types":["Event object with description and metadata","Formatted event details for display to user"],"categories":["data-processing-analysis","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"google-calendar-mcp-server__headline","uri":"capability://tool.use.integration.mcp.server.for.google.calendar.integration","name":"mcp server for google calendar integration","description":"A community-driven Model Context Protocol (MCP) server that facilitates programmatic interactions with Google Calendar, allowing developers to manage calendars, events, and attendees seamlessly through AI assistants.","intents":["best MCP server for Google Calendar","MCP server for scheduling events","how to integrate Google Calendar with AI","Google Calendar API server for automation","community MCP solutions for calendar management"],"best_for":["developers seeking AI integration","users needing calendar automation"],"limitations":[],"requires":[],"input_types":[],"output_types":[],"categories":["tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":59,"verified":false,"data_access_risk":"high","permissions":["Node.js 18+ with @modelcontextprotocol/sdk package","Google OAuth2 credentials (Client ID and Secret) from Google Cloud Console","Localhost network access for temporary HTTP server during auth flow (port 3000 by default)","User's config directory writable (typically ~/.config on Linux/macOS, %APPDATA% on Windows)","Node.js 18+ with @modelcontextprotocol/sdk","For HTTP mode: open port (default 3000) and network access","For Docker mode: Docker and docker-compose installed","CLI argument parsing support (--transport flag)","RFC 3339 timestamps with timezone information (e.g., '2024-01-15T14:30:00-05:00')","Google Calendar API credentials with calendar.events.create/update scopes"],"failure_modes":["Tokens are persisted to local filesystem in user's config directory — requires secure OS-level file permissions","OAuth2 flow requires interactive browser redirect during initial setup — cannot be fully automated in headless environments","Token refresh happens synchronously during tool execution, adding latency if tokens are near expiration","HTTP mode requires additional network configuration and firewall rules — not suitable for air-gapped environments","stdio mode is single-client only — cannot serve multiple concurrent Claude Desktop instances from one process","Server-Sent Events in HTTP mode have no built-in reconnection logic — client must handle connection drops","Timezone handling relies on RFC 3339 format — requires proper timezone specification in timestamps","Daylight saving time transitions can cause unexpected behavior if not handled correctly","Google Calendar's timezone handling may differ from other calendar systems — potential compatibility issues","No support for custom timezone aliases — must use standard IANA timezone identifiers","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.7,"quality":0.9,"ecosystem":0.48999999999999994,"match_graph":0.25,"freshness":0.52,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-06-17T09:51:04.691Z","last_scraped_at":null,"last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=google-calendar-mcp-server","compare_url":"https://unfragile.ai/compare?artifact=google-calendar-mcp-server"}},"signature":"npKTe7MBjb8JXC09blQfTnRQIWXOd5dC9fAPMZEVaQCoXpWbw1J5XRCG4pIkWXBM974Sfn13zzlnzMZHb/WnBQ==","signedAt":"2026-06-19T19:59:33.410Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/google-calendar-mcp-server","artifact":"https://unfragile.ai/google-calendar-mcp-server","verify":"https://unfragile.ai/api/v1/verify?slug=google-calendar-mcp-server","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}