A Python tool for analyzing meeting patterns and collaboration across engineering teams using Google Workspace data.
This tool gathers meeting data from Google Workspace (GSuite) to analyze:
- Meeting frequency and duration patterns
- Cross-functional collaboration between Engineering, Product, and Design teams
- Meeting categorization (1:1s, standups, reviews, etc.)
- Organizational meeting load across different team levels
- Team Categorization: Analyzes meetings by department (Engineering, Product, Design)
- Meeting Type Analysis: Categorizes meetings as:
- Engineering Internal
- Engineering + Design
- Engineering + Product
- Engineering + Product + Design (Full Triad)
- External/Cross-functional meetings
- Organizational Hierarchy: Maps attendees to teams and reporting structures
- Meeting Pattern Detection: Identifies recurring meetings, 1:1s, standups, etc.
- Create a Google Cloud project
- Enable the Admin SDK and Calendar API
- Create a service account and download its JSON key
- Grant Domain-Wide Delegation to the service account
- Authorize the following OAuth scopes in Google Workspace Admin:
https://www.googleapis.com/auth/admin.directory.group.readonly
https://www.googleapis.com/auth/admin.directory.group.member.readonly
https://www.googleapis.com/auth/admin.directory.user.readonly
https://www.googleapis.com/auth/calendar.readonly
pip install google-api-python-client google-auth python-dateutil pandas
python meeting_data_gather.py \
--service_account_key path/to/service-account-key.json \
--admin_user your_admin_email@company.com \
--group eng@company.com \
--output_csv meeting_analysis.csv \
--org_chart_csv org_chart.csv \
--weeks_back 8
python meeting_data_gather.py \
--service_account_key path/to/service-account-key.json \
--admin_user your_admin_email@company.com \
--group eng@company.com \
--output_csv meeting_analysis.csv \
--org_chart_csv org_chart.csv \
--start_date 2024-01-01 \
--end_date 2024-01-31
--service_account_key
: Path to your Google Cloud service account JSON key--admin_user
: Google Workspace admin email for impersonation--group
: Google Group email containing users to analyze--output_csv
: Output CSV file path--org_chart_csv
: Organizational chart CSV file path--weeks_back
: Number of weeks to look back from now (default: 8)--start_date
: Start date for analysis in YYYY-MM-DD format (overrides --weeks_back)--end_date
: End date for analysis in YYYY-MM-DD format (defaults to today if --start_date is provided)
The org chart CSV should contain these columns:
email
: Employee email addressteam_name
: Direct team nameparent_team
: Parent team namegrandparent_team
: Top-level departmentexclude_from_snapshot
: Boolean flag for exclusion
The tool generates a CSV with the following columns:
person
: Employee emailtitle_category
: Job level (IC, Manager, Director, C-Suite)event_name
: Meeting titledate
: Meeting datetime
: Meeting start timelength_minutes
: Meeting durationrecurring_frequency
: Recurrence patternis_recurring
: Boolean flag for recurring meetingscategory
: Meeting purpose/format (standup, 1:1, review, etc.)collaboration_type
: Department composition (Engineering Internal, Eng+Design, etc.)
The tool provides two types of meeting categorization:
- one_on_one: 1:1 meetings
- standup: Daily standups
- planning: Sprint planning, poker sessions
- demo_review: Reviews, retrospectives, demos
- interview: Interviews and screening calls
- focus_time: Blocked focus time
- large_group_meeting: Meetings with 6+ attendees
- group_meeting: General group meetings
- Engineering Internal: Only Engineering attendees
- Engineering + Design: Engineering and Design collaboration
- Engineering + Product: Engineering and Product collaboration
- Engineering + Product + Design: Full triad meetings
- Engineering + Cross-functional: Engineering with 3+ departments
- External Meeting: Only external attendees
- Personal Event: Single attendee events
The output CSV can be used for:
- Identifying meeting overload across teams
- Understanding cross-functional collaboration patterns
- Optimizing meeting schedules for maker time
- Analyzing recurring meeting efficiency
- Planning team communication strategies
- The
.gitignore
file excludes all JSON files to prevent credential leaks - Store service account keys securely and never commit them to version control
- Use least-privilege access when setting up service accounts
- Regularly rotate service account keys
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is for internal use. Please ensure compliance with your organization's data handling policies.