Skip to main content
Glama

Google Calendar MCP Server

by harshwadhawe
calendar_connector.py2.39 kB
""" Calendar Connector - Wrapper for Google Calendar API client. Provides a clean interface for calendar operations. """ import os import sys from typing import Optional from dotenv import load_dotenv # Load environment variables load_dotenv() # Import the calendar client from ..calendar_client import CalendarClient class CalendarConnector: """ Connector for Google Calendar operations. Handles initialization and provides a clean interface. """ def __init__(self): """Initialize the Calendar connector.""" self._client: Optional[CalendarClient] = None self._initialized = False def initialize(self) -> CalendarClient: """ Initialize the calendar client. Returns: CalendarClient instance Raises: RuntimeError: If initialization fails """ if self._client is None: try: credentials_path = os.getenv("GOOGLE_CREDENTIALS_PATH", "config/credentials.json") token_path = os.getenv("GOOGLE_TOKEN_PATH", "config/token.json") # Suppress stdout during initialization to avoid breaking JSON-RPC original_stdout = sys.stdout try: sys.stdout = sys.stderr self._client = CalendarClient(credentials_path, token_path) finally: sys.stdout = original_stdout self._initialized = True except Exception as e: raise RuntimeError(f"Failed to initialize Calendar connector: {e}") return self._client @property def client(self) -> CalendarClient: """ Get the calendar client instance. Initializes if not already initialized. Returns: CalendarClient instance """ if not self._initialized: self.initialize() return self._client def is_available(self) -> bool: """ Check if the calendar connector is available. Returns: True if available, False otherwise """ try: if self._client is None: self.initialize() return self._client is not None except Exception: return False

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/harshwadhawe/MCP-server--datathon'

If you have feedback or need assistance with the MCP directory API, please join our Discord server