teams-api-6-meeting-automation

Sub-skill of teams-api: 6. Meeting Automation.

5 stars

Best use case

teams-api-6-meeting-automation is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Sub-skill of teams-api: 6. Meeting Automation.

Teams using teams-api-6-meeting-automation should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/6-meeting-automation/SKILL.md --create-dirs "https://raw.githubusercontent.com/vamseeachanta/workspace-hub/main/.agents/skills/_archive/business/communication/teams-api/6-meeting-automation/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/6-meeting-automation/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How teams-api-6-meeting-automation Compares

Feature / Agentteams-api-6-meeting-automationStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Sub-skill of teams-api: 6. Meeting Automation.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# 6. Meeting Automation

## 6. Meeting Automation


```python
# meetings.py
# ABOUTME: Teams meeting automation via Graph API
# ABOUTME: Create, manage, and get meeting details

from datetime import datetime, timedelta
from typing import List, Optional, Dict
import asyncio

class MeetingManager:
    """Manage Teams meetings via Graph API"""

    def __init__(self, graph_client):
        self.client = graph_client

    async def create_instant_meeting(
        self,
        subject: str,
        organizer_id: str
    ) -> Dict:
        """Create an instant meeting"""

        from msgraph.generated.models.online_meeting import OnlineMeeting

        meeting = OnlineMeeting(
            subject=subject,
            start_date_time=datetime.utcnow().isoformat() + "Z",
            end_date_time=(datetime.utcnow() + timedelta(hours=1)).isoformat() + "Z"
        )

        result = await self.client.users.by_user_id(organizer_id) \
            .online_meetings.post(meeting)

        return {
            "join_url": result.join_web_url,
            "meeting_id": result.id,
            "subject": result.subject
        }

    async def schedule_meeting(
        self,
        subject: str,
        start_time: datetime,
        end_time: datetime,
        organizer_id: str,
        attendee_emails: List[str],
        body: str = ""
    ) -> Dict:
        """Schedule a meeting with attendees"""

        from msgraph.generated.models.event import Event
        from msgraph.generated.models.item_body import ItemBody
        from msgraph.generated.models.body_type import BodyType
        from msgraph.generated.models.attendee import Attendee
        from msgraph.generated.models.email_address import EmailAddress
        from msgraph.generated.models.attendee_type import AttendeeType
        from msgraph.generated.models.date_time_time_zone import DateTimeTimeZone

        attendees = [
            Attendee(
                email_address=EmailAddress(address=email),
                type=AttendeeType.Required
            )
            for email in attendee_emails
        ]

        event = Event(
            subject=subject,
            body=ItemBody(
                content_type=BodyType.Html,
                content=body
            ),
            start=DateTimeTimeZone(
                date_time=start_time.isoformat(),
                time_zone="UTC"
            ),
            end=DateTimeTimeZone(
                date_time=end_time.isoformat(),
                time_zone="UTC"
            ),
            attendees=attendees,
            is_online_meeting=True,
            online_meeting_provider="teamsForBusiness"
        )

        result = await self.client.users.by_user_id(organizer_id) \
            .events.post(event)

        return {
            "event_id": result.id,
            "subject": result.subject,
            "join_url": result.online_meeting.join_url if result.online_meeting else None
        }

    async def get_user_calendar(
        self,
        user_id: str,
        start_date: datetime,
        end_date: datetime
    ) -> List[Dict]:
        """Get user's calendar events"""

        result = await self.client.users.by_user_id(user_id) \
            .calendar_view.get(
                request_configuration=lambda config: (
                    setattr(config.query_parameters, 'start_date_time', start_date.isoformat()),
                    setattr(config.query_parameters, 'end_date_time', end_date.isoformat())
                )
            )

        return [
            {
                "id": event.id,
                "subject": event.subject,
                "start": event.start.date_time,
                "end": event.end.date_time,
                "is_online": event.is_online_meeting
            }
            for event in result.value
        ]

    async def cancel_meeting(
        self,
        user_id: str,
        event_id: str,
        cancellation_message: str = ""
    ):
        """Cancel a scheduled meeting"""

        await self.client.users.by_user_id(user_id) \
            .events.by_event_id(event_id) \
            .cancel.post(comment=cancellation_message)

# Usage example
async def schedule_standup():
    """Schedule a daily standup meeting"""

    from graph_client import TeamsGraphClient

    client = TeamsGraphClient()
    meetings = MeetingManager(client.client)

    # Schedule for tomorrow at 9 AM
    tomorrow = datetime.utcnow().replace(hour=9, minute=0) + timedelta(days=1)

    result = await meetings.schedule_meeting(
        subject="Daily Standup",
        start_time=tomorrow,
        end_time=tomorrow + timedelta(minutes=30),
        organizer_id="organizer@company.com",
        attendee_emails=[
            "team-member1@company.com",
            "team-member2@company.com"
        ],
        body="<h2>Daily Standup</h2><p>Please be prepared to share your updates.</p>"
    )

    print(f"Meeting scheduled: {result['join_url']}")
```

Related Skills

teams-meeting-pipeline

5
from vamseeachanta/workspace-hub

Operate the Teams meeting summary pipeline via Hermes CLI — summarize meetings, inspect pipeline status, replay jobs, manage Microsoft Graph subscriptions.

taxact-browser-automation-patterns

5
from vamseeachanta/workspace-hub

Patterns for automating TaxAct Business online (Ionic SPA) via Chrome browser MCP tools — field interaction, navigation, shadow DOM handling

handle-pdf-download-popups-in-automation

5
from vamseeachanta/workspace-hub

Recover when PDF download buttons open inaccessible popups; fall back to capturing structured data instead

handle-browser-automation-financial-site-blocks

5
from vamseeachanta/workspace-hub

Workflow for working around Chrome extension blocks on financial sites during data collection tasks

github-issue-automation-evidence-fields

5
from vamseeachanta/workspace-hub

Use when building GitHub issue classifiers, dashboards, closeout verifiers, or queue/report automation that depends on comments, approval evidence, or linked PR handoff state.

freecad-automation

5
from vamseeachanta/workspace-hub

AI-powered automation agent for FreeCAD CAD operations including natural language processing, batch processing, parametric design, and marine engineering applications. Use for CAD automation, drawing generation, FEM preprocessing, and integration with offshore analysis tools.

automation

5
from vamseeachanta/workspace-hub

Workflow automation, CI/CD pipelines, and task orchestration patterns across platforms like n8n, GitHub Actions, and Make.

plan-automation-contracts

5
from vamseeachanta/workspace-hub

Tighten plans for scheduled/reporting workflows and multi-source detectors so adversarial review can verify runtime, publication, and normalization behavior.

meeting-briefing

5
from vamseeachanta/workspace-hub

Prepare structured briefings for meetings with legal relevance and track action items

invoice-automation

5
from vamseeachanta/workspace-hub

Automate invoice generation for engineering consulting services using YAML configuration and Word document templates.

agent-teams-workspace-work-profile-updated-2026-03-10

5
from vamseeachanta/workspace-hub

Sub-skill of agent-teams: Workspace Work Profile (Updated 2026-03-10).

agent-teams-work-queue-integration

5
from vamseeachanta/workspace-hub

Sub-skill of agent-teams: Work Queue Integration.