export_all_meetings
Export all meeting transcripts, summaries, and action items from Fathom.video to markdown files. Filter by date range and specify output directory for organized access to meeting data.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| created_after | No | ISO 8601 timestamp - only export meetings after this date | |
| created_before | No | ISO 8601 timestamp - only export meetings before this date | |
| output_dir | No | Directory to save files (defaults to workspace/transcripts) |
Implementation Reference
- src/index.ts:190-229 (registration)Registration of the 'export_all_meetings' tool using server.tool(), including input schema and inline handler function.server.tool( 'export_all_meetings', { created_after: z.string().optional().describe('ISO 8601 timestamp - only export meetings after this date'), created_before: z.string().optional().describe('ISO 8601 timestamp - only export meetings before this date'), output_dir: z.string().optional().describe('Directory to save files (defaults to workspace/transcripts)'), }, async ({ created_after, created_before, output_dir }) => { const targetDir = output_dir || OUTPUT_DIR; console.error(`Exporting all meetings to ${targetDir}...`); const meetings = await fathom.getAllMeetings({ include_transcript: true, include_summary: true, include_action_items: true, include_crm_matches: true, created_after, created_before, }); await fs.mkdir(targetDir, { recursive: true }); const exported: string[] = []; for (const meeting of meetings) { const markdown = formatMeetingToMarkdown(meeting); const filename = generateTranscriptFilename(meeting); const filepath = path.join(targetDir, filename); await fs.writeFile(filepath, markdown, 'utf-8'); exported.push(filename); console.error(`Exported: ${filename}`); } return { content: [{ type: 'text', text: `Exported ${exported.length} meetings to ${targetDir}:\n${exported.map(f => `- ${f}`).join('\n')}`, }], }; } );
- src/index.ts:197-229 (handler)The handler function that executes the tool: fetches all meetings using Fathom client, formats each to Markdown, generates filenames, writes files to output directory, and returns list of exported files.async ({ created_after, created_before, output_dir }) => { const targetDir = output_dir || OUTPUT_DIR; console.error(`Exporting all meetings to ${targetDir}...`); const meetings = await fathom.getAllMeetings({ include_transcript: true, include_summary: true, include_action_items: true, include_crm_matches: true, created_after, created_before, }); await fs.mkdir(targetDir, { recursive: true }); const exported: string[] = []; for (const meeting of meetings) { const markdown = formatMeetingToMarkdown(meeting); const filename = generateTranscriptFilename(meeting); const filepath = path.join(targetDir, filename); await fs.writeFile(filepath, markdown, 'utf-8'); exported.push(filename); console.error(`Exported: ${filename}`); } return { content: [{ type: 'text', text: `Exported ${exported.length} meetings to ${targetDir}:\n${exported.map(f => `- ${f}`).join('\n')}`, }], }; } );
- src/index.ts:192-196 (schema)Zod input schema defining optional parameters for date filtering and output directory.{ created_after: z.string().optional().describe('ISO 8601 timestamp - only export meetings after this date'), created_before: z.string().optional().describe('ISO 8601 timestamp - only export meetings before this date'), output_dir: z.string().optional().describe('Directory to save files (defaults to workspace/transcripts)'), },