Microsoft Teams Meeting Cost Tracker avatar
Microsoft Teams Meeting Cost Tracker

Pricing

from $0.01 / 1,000 results

Go to Apify Store
Microsoft Teams Meeting Cost Tracker

Microsoft Teams Meeting Cost Tracker

Calculate real-time meeting costs in Microsoft Teams. Analyze Teams calendar meetings, get "Could Have Been an Email" scores, and generate cost reports w/Adaptive Cards.This actor connects to Microsoft Graph API to analyze your Teams calendar "Could Have Been an Email" Score Meeting Culture Score

Pricing

from $0.01 / 1,000 results

Rating

0.0

(0)

Developer

John Rippy

John Rippy

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Calculate real-time meeting costs in Microsoft Teams. Analyze Teams calendar meetings, get 'Could Have Been an Email' scores, and generate cost reports. Perfect for organizations using Microsoft 365 who want to optimize meeting culture.

Features

  • Microsoft Graph Integration: Secure OAuth connection to Teams/Outlook calendars
  • Demo Mode: Test the actor without Azure credentials
  • Multiple Output Formats: Full analysis, summary, or Teams Adaptive Card
  • Multi-Currency Support: USD, EUR, GBP, CAD, AUD
  • Recurring Meeting Detection: Identify high-cost recurring meetings
  • Focus Time Analysis: Measure meeting fragmentation impact

Quick Start

{
"input": "your input here"
}

Demo Mode

Set demoMode: true to test with sample data (no charges). When you're ready for real results, set demoMode: false or omit it.

{
"demoMode": true,
...
}

Input Parameters

ParameterTypeRequiredDescription
See input schema

Output Format

Full Analysis

{
"overview": {
"platform": "Microsoft Teams",
"totalMeetings": 24,
"totalHours": 42,
"totalCost": 8400,
"averageMeetingLength": 52,
"averageAttendees": 4.2,
"currency": "USD"
},
"meetingCultureScore": {
"overall": 58,
"breakdown": {
"focusTime": 45,
"asyncSuitability": 62
}
},
"asyncCandidates": [
{
"subject": "Weekly Status Update",
"duration": 60,
"attendees": 8,
"cost": 384,
"emailScore": 82,
"recommendation": "Consider replacing with Teams chat, Loop component, or email"
}
],
"recommendations": [
{
"priority": "high",
"action": "Convert \"Weekly Status Update\" to async",
"potentialSavings": 268,
"rationale": "Email score of 82%, 8 attendees"
}
],
"potentialSavings": 2100
}

Teams Adaptive Card

Perfect for posting to Teams channels:

{
"type": "AdaptiveCard",
"version": "1.4",
"body": [
{
"type": "TextBlock",
"text": "📊 Meeting Cost Report",
"weight": "bolder",
"size": "large"
},
...
],
"actions": [
{
"type": "Action.OpenUrl",
"title": "View Full Report",
"url": "https://meeting.localhowl.com"
}
]
}

Pricing

This actor uses pay-per-event billing:

  • data_point: $0.01 per result

Use Cases

1. Weekly Team Reports

Post meeting cost summaries to a Teams channel:

const result = await apifyClient.actor("localhowl/teams-meeting-cost-tracker").call({
tenantId: process.env.AZURE_TENANT_ID,
clientId: process.env.AZURE_CLIENT_ID,
clientSecret: process.env.AZURE_CLIENT_SECRET,
userEmail: "team-lead@company.com",
dateRange: "last_week",
outputFormat: "teams_card"
});
// Post to Teams webhook
await fetch(TEAMS_WEBHOOK_URL, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(result.adaptiveCard)
});

2. Organization-Wide Audit

Analyze multiple users' calendars:

const users = ["alice@co.com", "bob@co.com", "carol@co.com"];
const results = [];
for (const user of users) {
const result = await apifyClient.actor("localhowl/teams-meeting-cost-tracker").call({
tenantId: "...",
clientId: "...",
clientSecret: "...",
userEmail: user,
dateRange: "last_month"
});
results.push({ user, ...result });
}
// Aggregate insights across the organization

3. Power Automate Integration

Trigger weekly reports via Power Automate:

  1. Create a scheduled flow (weekly)
  2. Add HTTP action to call Apify API
  3. Post Adaptive Card to Teams channel

Common Problems & Solutions

"Invalid API key" error

Cause: Your API key is wrong, expired, or doesn't have the right permissions. Fix: Double-check your API key. Make sure you copied it exactly without extra spaces.

"Rate limit exceeded" error

Cause: You've hit the API's rate limits. Fix: Wait a few minutes, then try again. Consider reducing the number of concurrent requests.

Empty or incomplete results

Cause: The target may have anti-scraping protection or the data doesn't exist. Fix:

  • Check if the URL/search query is correct
  • Try with different parameters
  • Some sites may block automated access

Demo data showing instead of real results

Cause: demoMode is still set to true. Fix: Set demoMode: false and provide your API key(s).


Built by John Rippy | Actor Arsenal