How this path works
What this solves
This version uses AI as a builder, not as the permanent solution. AI helps you write the specification, design the scoring rules, and build either a Power Automate flow or a small script. Once built, the checker can run without AI.
Best fit
Use this when you repeat the task often enough to justify setup time, and when your organisation allows calendar free/busy access through Microsoft 365. This is the strongest middle ground: smarter than manual, but not dependent on an AI agent every time.
The core idea
Microsoft 365 can expose free/busy calendar information. A checker can ask for availability across the eight attendees for a chosen date range, split that range into 15 or 30 minute windows, reject busy windows, and return the best ranked options. Microsoft Graph has calendar availability actions such as getSchedule for free/busy information and findMeetingTimes for meeting suggestions.
Step 1 - Define the input
Create a simple input table with attendee email addresses, meeting duration, earliest date, latest date, working hours, excluded days, and whether each person is required or optional. Keep the first version simple: all eight people required, 45 minute meeting, next ten working days, between 09:30 and 15:30.
Step 2 - Ask AI to produce the build spec
Use a prompt like this: I need a Microsoft 365 availability checker for eight required attendees. It should take attendee emails, meeting duration, date range, working hours, and exclusions. It should return the top five slots where all required attendees are free. If none exist, return the best partial matches and explain who is unavailable. Write the build plan for Power Automate and also a Python option using Microsoft Graph free/busy data.
Step 3 - Choose the build route
Choose Power Automate if you want something low-code that sends a Teams message or email. Choose Python if you are comfortable running a small script or asking a technical colleague to host it. Both routes need approved access to calendar availability data. In many organisations, an admin may need to approve the required Graph permissions.
Step 4 - Build the scoring logic
The checker should score each candidate slot. Give 100 points when all required attendees are free. Remove points for early or late times, slots touching lunch, or slots too close to another large meeting. If no perfect slot exists, allow partial matches only as a fallback and show exactly who is unavailable.
Step 5 - Return a human-readable output
The output should be plain enough for anyone to use: recommended slot, backup slots, confidence or fit score, unavailable attendees if any, and a short reason. Example: Best option: Tue 10:00-10:45. All eight required attendees free. Backup: Wed 14:00-14:45. All free, but two attendees have meetings immediately before.
Step 6 - Test with known calendars
Run the checker against a week where you already know the answer. Compare its shortlist against Outlook Scheduling Assistant. If it suggests a bad slot, adjust the scoring rules before trusting it.
Step 7 - Use it as a pre-check
When the checker is working, use it before opening Outlook. Let it give you the shortlist first. Then open the calendar only to confirm and send the invite.
What to expect
The finished automation should reduce the task to entering a date range and meeting length, then reviewing the returned shortlist. The human still makes the final call and sends the invite.
Failure points
The most common blocker is permission. If calendar access is not approved, the checker cannot work. The second blocker is over-complication. Start with required attendees and core working hours before adding optional attendees, rooms, lunch rules, or priority scoring.
Maintenance
Keep the attendee list and scoring rules visible. If the team changes, update the list. If people complain about suggested slots, adjust the scoring rule rather than abandoning the checker.