Skip to main content
Glama

generate_daily_summary

Generate daily productivity summaries by analyzing Slack, Calendar, and Gmail activity for end-of-day wrap-ups and next-day planning.

Instructions

Generate a concise daily productivity summary from today's Slack, Calendar, and Gmail activity. Perfect for end-of-day wrap-ups and next-day planning.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateNoDate to summarize in YYYY-MM-DD format (default: today)
output_formatNoOutput format(s) to generate (default: both)both
save_to_fileNoWhether to save output to summaries directory (default: true)
include_sectionsNoSections to include (default: all)

Implementation Reference

  • Main execution logic for the generate_daily_summary tool, handling arguments, generating instructions and template, processing collected data, and saving outputs.
    export async function generateDailySummary(args) { const startTime = Date.now(); try { // Get the date (default to today) const targetDate = args.date || new Date().toISOString().split('T')[0]; const startDate = targetDate; const endDate = targetDate; const outputFormat = args.output_format || config.defaults.outputFormat; const saveToFile = args.save_to_file !== false; const includeSections = args.include_sections || ['meetings', 'communications', 'accomplishments', 'tomorrow']; // Generate data collection instructions for the AI const instructions = generateDailyDataCollectionInstructions(targetDate); // Generate summary template const summaryTemplate = generateDailySummaryTemplate(targetDate, includeSections); // Prepare response structure const result = { success: true, message: 'Daily summary generation initiated. Please follow the data collection instructions below.', date: targetDate, instructions, template: summaryTemplate, output_format: outputFormat, save_to_file: saveToFile, note: 'This tool provides instructions for the AI agent to collect today\'s data and generate a concise daily summary.', }; // If the AI has already collected data (passed in args), process it if (args.collected_data) { result.summary = await processDailySummaryData(args.collected_data, targetDate, includeSections); // Save to file if requested if (saveToFile) { const files = []; if (outputFormat === 'both' || outputFormat === 'html') { const htmlFilename = `daily-summary-${targetDate}.html`; const htmlPath = await saveSummary(result.summary.html, htmlFilename); files.push(htmlPath); } if (outputFormat === 'both' || outputFormat === 'markdown') { const mdFilename = `daily-summary-${targetDate}.md`; const mdPath = await saveSummary(result.summary.markdown, mdFilename); files.push(mdPath); } result.files_saved = files; } } result.generation_time_ms = Date.now() - startTime; return result; } catch (error) { throw { code: error.code || 'GENERATION_FAILED', message: error.message || 'Failed to generate daily summary', details: error.details || error.stack, }; } }
  • Input schema and description for the generate_daily_summary tool, defining parameters like date, output_format, etc.
    { name: 'generate_daily_summary', description: 'Generate a concise daily productivity summary from today\'s Slack, Calendar, and Gmail activity. Perfect for end-of-day wrap-ups and next-day planning.', inputSchema: { type: 'object', properties: { date: { type: 'string', description: 'Date to summarize in YYYY-MM-DD format (default: today)', pattern: '^\\d{4}-\\d{2}-\\d{2}$', }, output_format: { type: 'string', enum: ['both', 'html', 'markdown', 'json'], description: 'Output format(s) to generate (default: both)', default: 'both', }, save_to_file: { type: 'boolean', description: 'Whether to save output to summaries directory (default: true)', default: true, }, include_sections: { type: 'array', items: { type: 'string', enum: ['meetings', 'communications', 'accomplishments', 'tomorrow'], }, description: 'Sections to include (default: all)', }, }, }, },
  • Registration of the generate_daily_summary tool in the central tool dispatcher switch statement.
    case 'generate_daily_summary': result = await generateDailySummary(args); break;
  • Helper function to generate the structure/template for the daily summary sections.
    function generateDailySummaryTemplate(date, sections) { const template = { date: date, display: formatDisplayDate(date), sections: {}, }; if (sections.includes('meetings')) { template.sections.meetings = { total: 0, hours: 0, key_meetings: [], outcomes: [], }; } if (sections.includes('communications')) { template.sections.communications = { slack_messages: 0, important_threads: [], emails: 0, key_contacts: [], }; } if (sections.includes('accomplishments')) { template.sections.accomplishments = [ 'Key accomplishments and completed tasks', ]; } if (sections.includes('tomorrow')) { template.sections.tomorrow = { upcoming_meetings: [], action_items: [], prep_needed: [], }; } return template; }

Latest Blog Posts

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/philipbloch/summary-mcp'

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