Calendar Tools MCP Server

import { calendar_v3, google } from "googleapis"; import { getAuthClient } from "../utils/auth.js"; interface CreateEventParams { summary: string; description?: string; startTime: string; endTime: string; attendees?: string[]; } interface CreateEventResult { success: boolean; error?: string; data?: calendar_v3.Schema$Event; } export async function createEvent(params: CreateEventParams): Promise<CreateEventResult> { try { const auth = await getAuthClient(); const calendar = google.calendar({ version: "v3", auth }); const event = { summary: params.summary, description: params.description, start: { dateTime: params.startTime, timeZone: process.env.GOOGLE_TIME_ZONE || "Etc/UTC", }, end: { dateTime: params.endTime, timeZone: process.env.GOOGLE_TIME_ZONE || "Etc/UTC", }, attendees: params.attendees?.map((email) => ({ email })), }; const result = await calendar.events.insert({ calendarId: process.env.GOOGLE_CALENDAR_ID || "primary", requestBody: event, sendUpdates: "all", }); return { success: true, data: result.data || undefined, }; } catch (error) { return { success: false, error: error instanceof Error ? error.message : "Error creating event", }; } }