Google Apps Script solutions for meeting management, including file organization and calendar-based notifications.
- Detects files with configured meeting patterns (e.g.,
[PUBLIC] llm-d sig-*) - Requires both "Notes by Gemini" and "Recording" files for regular meetings
- Processes chat files independently without requiring pairs
- Moves files to exact target folders in Google Drive
- Sends Slack notifications to corresponding channels via webhooks
- Sends error notifications to configured channel for issues
- Runs every 15 minutes via time-based trigger
- Debug mode available for testing without moving files
- Monitors shared Google Calendar and sends Slack notifications when meetings start
- Notifies at meeting start time (1 minute early to 15 seconds late) with precise timing
- Automatically ignores meetings with "Canceled" in the title (case-insensitive)
- Prevents duplicate notifications with intelligent tracking system
- Extracts Google Meet links and meeting documents from calendar events
- Sends different messages to SIG channels vs community channel
- Smart storage management prevents PropertiesService overflow
- Uses Calendar API and Drive API for meeting data
- Comprehensive testing and monitoring functions
- Copy the script: Go to script.google.com and create a new project
- Paste the code: Copy all contents from
llm-d-meeting-organizer.js - Create config: Add a new file called
config.jswith your folder IDs and webhook URLs (seeconfig.example.js) - Test first: Run
testDebugMode()to verify configuration without moving files - Run setup: Execute
setupAutomaticTrigger()to enable automatic scheduling
Full setup instructions: See LLM-D_MEETING_ORGANIZER.md
- Create new script: Create a Google Apps Script project and paste
calendar-meeting-notifier.js - Enable APIs: Add Google Calendar API and Google Drive API in project services
- Create config: Copy
config.example.jsto createconfig.jswith your calendar ID and webhooks - Test timing logic: Run
testTimingWindow()to see how meetings are detected at start time - Test configuration: Run
testConfig()to verify all settings are correct - Test with real data: Run
testNextMeetingNotification()to test with your actual next meeting - Setup triggers: Execute
setupCalendarTrigger()for main notifications +setupCleanupTriggers()for storage management - Monitor storage: Use
monitorStorageHealth()to check PropertiesService usage - Verify operation: Check that triggers are created and monitor for live notifications
Full setup instructions: See CALENDAR_MEETING_NOTIFIER.md
The application:
- Searches for files matching configured meeting patterns (e.g.,
[PUBLIC] llm-d sig-*,[PUBLIC] llm-d Community Meeting) - Groups files by meeting configuration
- Only processes complete pairs where both "Notes by Gemini" and "Recording" files are present
- Processes chat files immediately without requiring pairs
- Moves all matching files to the exact target folder specified in configuration
- Posts notification to the corresponding Slack channel via webhook (skips notifications for Chat files)
- Supports debug mode for safe testing without file movement
- Google Workspace account
- Slack workspace with webhook permissions
- Shared Google Drive folder for organizing files
llm-d-meeting-organizer.js- File organizer Google Apps Script implementationcalendar-meeting-notifier.js- Calendar notification Google Apps Script implementation
config.example.js- Configuration template for both scriptsslack-app-manifest.yaml- Slack app configuration for webhook setup
LLM-D_MEETING_ORGANIZER.md- File organizer setup instructionsCALENDAR_MEETING_NOTIFIER.md- Calendar notifier setup instructionsREADME.md- This overview
The Calendar Notifier sends notifications exactly when meetings start:
- Precise Timing: Runs every minute and notifies when meetings are starting (1 minute early to 15 seconds late)
- Smart Detection: Finds meetings starting within current timeframe, accounting for trigger variations
- Duplicate Prevention: Intelligent tracking prevents multiple notifications for the same meeting
- Storage Management: Multi-layered cleanup system prevents PropertiesService overflow
Examples:
- Meeting at 2:00:00 PM gets notified between 1:59:00-2:00:15 PM (when trigger first runs in that window)
- Each meeting gets exactly one notification when it starts
- Old tracking records automatically cleaned up
- Google Drive: Read/write access to organize meeting files
- Slack: Webhook URLs for file organization notifications
- Google Calendar API: Read calendar events and conference data
- Google Drive API: Read file names for meeting documents
- Slack: Webhook URLs for meeting notifications
Both scripts use secure webhook-based Slack integration and read-only calendar access.