Automated Scheduling with Microsoft Bookings & Power Automate

Updated by Bryan Chapman

Overview

Note while this example uses ConnectWise APIs, the structure is modular and can be adapted to any PSA.

This guide shows you how to connect Microsoft Bookings with your PSA platform to streamline and automate technician scheduling.

By integrating these systems, you create a seamless workflow that connects end-user appointment bookings to internal service operations. Specifically, this setup enables you to:

  • 🔍 Extract ticket context directly from booking form responses.
  • 🗓️ Enrich calendar events with structured ticket details in the subject line.
  • 📥 Update PSA tickets in real time to reflect a scheduled appointment.
  • 🤖 Trigger meeting recap tools like Fireflies or other AI notetakers by embedding ticket identifiers into meeting titles.
Pro Tip pair this automation with a Snippets shortcut in Thread Inbox to make sharing your calendar effortless. Create a pre-written snippet that inserts your Microsoft Bookings link into chats, so you can instantly offer customers a way to book time with you. 👉 Learn how to create a Snippet

🔧 What This Power Automate Flow Does

This solution is built entirely within Power Automate and acts as a smart bridge between Microsoft Bookings and your PSA platform (e.g. ConnectWise, Autotask, Halo).

When a customer schedules an appointment using your Microsoft Bookings page, the Power Automate flow is triggered and performs the following steps:

  1. 🔍 Extracts the ticket number from the customer’s booking form response.
  2. 📋 Calls your PSA’s API to fetch ticket details like summary and owner.
  3. 🗓️ Updates the calendar event title with the ticket number and summary (e.g., [12345] - Printer not working).
  4. 📥 Updates the ticket status to "Scheduled" in your PSA system.
  5. 👤 Adds a scheduled resource/technician to the ticket based on the booking info.
  6. 🤖 Triggers AI Notetakers (e.g. Fireflies AI) by embedding ticket metadata in the event title.

🧠 Why This Matters

✅ Business Value

  • Reduces technician coordination overhead: No need to manually update calendars or ticket statuses.
  • Improves recap accuracy: Fireflies or Copilot recap tools can pick up the ticket number from meeting titles.
  • Syncs calendars: Automatically connects Bookings and O365 calendars with CW schedules.
  • Protects SLA compliance: Ensures that scheduled tickets are statused appropriately and assigned.

🎯 Best Use Cases

  • MSPs with multiple engineers booking their own time.
  • Partners using Fireflies AI or other AI notetakers for meeting recaps.
  • Teams aiming to reduce manual triage and improve customer experience.

⚙️ How to Set It Up

1. Download and Import the Power Automate Flow

Coming soon!

How to Import It
  1. Go to Power Automate.
  2. In the left-hand menu, click My flowsImportImport Package (Legacy).
  3. Upload the .zip file you downloaded above.
  4. Follow the prompts to configure connectors (Microsoft Bookings, Office 365 Outlook, and your PSA API).

1. Shared Booking Page Requirements

  • You must include a shared booking page and custom form questions in Microsoft Bookings that collects the ticket number (e.g., "Enter your Thread ticket number").
  • Ensure staff members are mapped to the right Office 365 calendars.
Need help creating your booking page and custom form fields? Refer to Microsoft’s official guide 👉 Create a Bookings calendar and add custom questions

2. Power Automate Flow Structure

  1. Trigger: When an appointment is created via Microsoft Bookings.
  2. Variable Init + Ticket Validation: Validates the ticket number format.
  3. API Call: Retrieves ticket data from ConnectWise.
  4. Switch Case: Maps engineer name → calendar → event update.
  5. PATCH Call: Updates the ticket status to “Scheduled”.
  6. POST Call: Creates a scheduled resource on the CW ticket.
  7. Update Event: Edits the Outlook calendar entry title.
Engineer-specific calendar logic is handled in a Switch block keyed by display name (e.g., Frodo Baggins, Samwise Gamgee).

3. Required Connections

Ensure these connectors are active in Power Automate:

Connector

Use

Microsoft Bookings

Receive appointments

Office 365 Outlook

Update calendar events

ConnectWise (via HTTP)

Fetch and modify ticket data. Authentication is handled using an HTTP header containing your Basic Auth token and ClientID from ConnectWise API credentials. You can obtain your ClientID here: 👉 ConnectWise Developer Portal

🛠️ Example Booking Flow

  1. Technicians use snippets in Thread Inbox to quickly share your team’s Microsoft Bookings link, making it easy for customers to book time with yo.
  2. User Books a time via your public Microsoft Bookings page.
  3. Flow Triggered → Validates and extracts the ticket number.
  4. Calls CW API to pull ticket summary and owner.
  5. Updates Calendar Title[#12345] - Printer Jam on Floor 2
  6. Changes Ticket Status → “Scheduled”
  7. Adds Scheduled Resource in CW so SLA timers and escalations reflect reality.

🔍 FAQs

  • What if the ticket number is wrong? The flow includes a basic numeric validation step and will fail silently if a non-ticket value is entered.
  • Can I extend this to other boards or engineers? Yes—just expand the Switch block and calendar logic with the engineer’s name and calendar ID.


How did we do?