search_granola_events
Search Granola calendar events by query to find and retrieve meeting details. Use this tool to locate specific events in your schedule.
Instructions
Search through Granola calendar events by query string. Returns matching events with details.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query to find matching calendar events | |
| limit | No | Maximum number of results to return (default: 10) |
Implementation Reference
- src/index.ts:262-308 (handler)Handler function implementing the search_granola_events tool. Fetches all documents via apiClient.getAllDocuments(), filters those with google_calendar_event where summary or description matches the query (case-insensitive), limits results, maps to event details, and returns JSON.case "search_granola_events": { const query = args?.query as string; const limit = (args?.limit as number) || 10; const allDocs = await apiClient.getAllDocuments(); const eventResults = allDocs .filter((doc) => { const event = doc.google_calendar_event; if (!event) return false; const summary = event.summary?.toLowerCase() || ""; const description = event.description?.toLowerCase() || ""; const lowerQuery = query.toLowerCase(); return ( summary.includes(lowerQuery) || description.includes(lowerQuery) ); }) .slice(0, limit) .map((doc) => ({ id: doc.google_calendar_event?.id || doc.id, summary: doc.google_calendar_event?.summary, description: doc.google_calendar_event?.description?.substring( 0, 500 ), start: doc.google_calendar_event?.start, end: doc.google_calendar_event?.end, attendees: doc.google_calendar_event?.attendees, htmlLink: doc.google_calendar_event?.htmlLink, })); return { content: [ { type: "text", text: JSON.stringify( { query, count: eventResults.length, results: eventResults, }, null, 2 ), }, ], }; }
- src/index.ts:68-87 (schema)Tool schema definition including name, description, and inputSchema with required 'query' string and optional 'limit' number.{ name: "search_granola_events", description: "Search through Granola calendar events by query string. Returns matching events with details.", inputSchema: { type: "object", properties: { query: { type: "string", description: "Search query to find matching calendar events", }, limit: { type: "number", description: "Maximum number of results to return (default: 10)", default: 10, }, }, required: ["query"], }, },