Monday, March 16, 2026

🚀 Building a Copilot‑based Meeting Scheduler (POC) using Microsoft Graph & Power Automate

 A practical, step‑by‑step guide for the Microsoft community


📌 Why this article?

Many teams are exploring Copilot Studio to build conversational experiences like:

“Can you help me find a good time for a meeting with my team?”

Behind the scenes, this requires:

  • Checking user availability
  • Respecting working hours
  • Suggesting realistic time slots

This is where Microsoft Graph shines — especially the findMeetingTimes API.

However, when people try this for the first time, they often hit challenges:

  • Premium license errors
  • Graph connection confusion
  • Copilot + Power Automate integration doubts

This article walks through a clean Proof‑of‑Concept (POC) approach, keeping things simple, understandable, and production‑ready later.


🧠 What we are building (POC scope)

✅ Copilot asks for meeting details
✅ Power Automate calls Microsoft Graph
✅ Graph suggests best available time slots
✅ Copilot responds with suggestions

🚫 No auto‑booking (yet)
🚫 No heavy governance (POC only)


🏗️ High‑level Architecture (POC)

User
 ↓
Copilot Studio Agent
 ↓
Power Automate Flow (POC)
 ↓
HTTP with Microsoft Entra ID
 ↓
Microsoft Graph – findMeetingTimes
 ↓
Suggested time slots
 ↓
Copilot responds to user

📎 Screenshot idea:

Diagram slide or whiteboard view of Copilot → Flow → Graph


🧩 Key Components Explained (in simple terms)

1️⃣ Copilot Studio

This is the conversation layer.
It collects:

  • Attendees
  • Meeting duration
  • Preferred date/time range

Copilot does not talk to Graph directly — it calls Power Automate.

📎 Screenshot: Copilot topic with trigger phrases and variables


2️⃣ Power Automate (Heart of the POC)

Power Automate acts as the orchestrator:

  • Receives input from Copilot
  • Calls Microsoft Graph
  • Formats the response back to Copilot

👉 For POC, the Power Automate Premium Trial is sufficient.

📎 Screenshot: Cloud flow triggered by Copilot


3️⃣ Microsoft Graph – findMeetingTimes

This API:

  • Looks at calendars
  • Considers working hours
  • Suggests realistic meeting slots

This avoids brute‑force checking and handles all the logic for you.


🔐 POC Licensing – Keep It Simple

For POC:

  • ✅ Start Power Automate Premium trial
  • ✅ Use your own user account
  • ✅ No service account needed yet

⚠️ Microsoft Graph in Power Automate is a Premium connector — this is expected and by design.

📎 Screenshot: Power Automate “Try premium” banner


🔗 Configuring Microsoft Graph Connection (POC)

Recommended connector

HTTP with Microsoft Entra ID

Why?

  • Simple
  • Supported
  • No custom connector maintenance

Connection setup

FieldValue
Base Resource URLhttps://graph.microsoft.com
Entra ID Resource URIhttps://graph.microsoft.com
AuthenticationUser sign‑in (POC)

📎 Screenshot: Creating HTTP with Entra ID connection



Suggestions

  1. Pick top 3 slots
  2. Convert to friendly text:
    • “Tuesday 11:00–11:30”
    • “Wednesday 3:00–3:30”

Copilot then replies conversationally:

“I found a few good options for everyone. Would you like to go with Tuesday at 11 AM?”


✅ Why this POC approach works well

✔ Minimal setup
✔ Matches real‑world behaviour
✔ No reinventing scheduling logic
✔ Easy upgrade path to PROD


🔜 How this POC evolves into PROD (Later)

POCProduction
User accountService account
Premium trialPer‑Flow license
Suggest onlyAuto‑book meetings
Light governanceFull security & auditing

Graph payloads stay the same
Copilot logic stays the same

Only ownership & licensing change.


❗ Common Pitfalls (and how to avoid them)

  • ❌ Trying to avoid Premium connectors → Not supported
  • ❌ Direct Graph calls from Copilot → Not possible
  • ❌ Using shared mailbox → Unsupported
  • ✅ Always go through Power Automate

📝 Final Thoughts

If you’re exploring Copilot Studio + scheduling scenarios, start small:

  • Prove value with findMeetingTimes
  • Keep the conversation human
  • Let Microsoft Graph do the heavy lifting

Once stakeholders see the value, moving to a production‑grade model is straightforward.


🙋‍♂️ I’d love community feedback!

If you’ve tried similar Copilot scheduling ideas or have tips, please comment and share your experience.
Happy to iterate and learn together 🚀

Building Secure Azure AI Foundry Agents with Managed Identity

  The credential problem nobody wants to own Every team that connects an Azure AI Foundry agent to Microsoft Graph, SharePoint, Outlook, or...