When you ask Copilot in Outlook to find a specific meeting or appointment, it sometimes returns no results or shows only emails. This happens because Copilot does not search the Calendar folder by default. The root cause is a data source configuration that limits Copilot to the Mail and Chat scopes. This article explains why the Calendar scope is excluded and how to adjust the settings so Copilot can surface calendar events during searches.
Key Takeaways: Why Copilot Misses Calendar Events
- Copilot pane > Settings > Data sources: Controls which Microsoft Graph data Copilot can read. Calendar is off by default in some tenants.
- Microsoft 365 admin center > Copilot > Data source policies: Tenant-level policy that restricts Calendar access for Copilot.
- Graph permissions consent: Users or admins must grant the Calendar.Read permission to the Copilot service principal.
Why Copilot in Outlook Ignores Calendar Events
Copilot in Outlook uses Microsoft Graph to retrieve data from Exchange Online. The search scope is defined by a set of permissions and data source policies. By default, Copilot is configured to query the Mail, Chat, and Document scopes. The Calendar scope is not included in the default configuration for many organizations. This is a deliberate design to reduce the risk of exposing sensitive meeting details until an admin explicitly enables it.
When you type a query like “find my meeting with Sarah,” Copilot sends a Graph request that filters by Mail and Chat folders. It does not send a Calendar request unless the Calendar data source is enabled. Even if the Calendar folder contains the event, Copilot never sees it. The result is a blank response or a list of related emails instead of the calendar event.
Data Source Configuration
Each Copilot instance in Microsoft 365 has a data source configuration file stored in the user’s mailbox. This file lists which Exchange folders Copilot can query. The default file includes Mail, Chat, and Documents. Calendar is absent. Admins can modify this file using PowerShell or the Microsoft 365 admin center.
Permission Requirements
Copilot requires the Calendar.Read Graph permission to read calendar events. This permission must be consented at the tenant level. If it is not granted, Copilot cannot access any calendar data regardless of the data source configuration. Many tenants skip this permission during initial Copilot setup.
Steps to Enable Calendar Search for Copilot in Outlook
Follow these steps to allow Copilot to search calendar events. You need administrative rights in Microsoft 365.
- Check current Graph permissions
Go to the Microsoft 365 admin center. Select Settings > Org settings > Copilot. Under Data source policies, review the list of consented permissions. Look for Calendar.Read. If it is missing, proceed to step 2. - Grant Calendar.Read permission
Open the Azure portal. Navigate to Microsoft Entra ID > App registrations > All applications. Search for the Copilot service principal name, usually “Microsoft Copilot” or “Copilot for Microsoft 365.” Select it. Go to API permissions and click Add a permission. Choose Microsoft Graph > Delegated permissions. Select Calendar.Read. Click Grant admin consent. Wait 15 minutes for propagation. - Enable Calendar in data source policy
Back in the Microsoft 365 admin center, go to Settings > Org settings > Copilot > Data source policies. Click Edit. Under Exchange Online, check the box for Calendar. Click Save. This change applies to all users within 24 hours. - Verify user-level data source
Open Outlook on the web. Select the Copilot icon in the top ribbon. Click the three dots for Settings. Choose Data sources. Confirm that Calendar appears in the list. If it does not, ask the user to sign out and sign back in. The data source file refreshes on next sign-in. - Test with a sample query
In the Copilot pane, type “show my calendar events for tomorrow”. Copilot should return a list of events. If it still returns nothing, check the Graph response logs in the Microsoft 365 admin center under Reports > Copilot > Query logs. Look for error code 403 or 401, which indicate permission issues.
If Copilot Still Has Issues After the Main Fix
Copilot Returns Only Public Calendar Events
If Copilot shows public holidays but not private events, the Calendar.Read permission is set to application-level instead of delegated. Application-level permissions cannot read individual user calendars. Go back to the Azure portal and change the permission type to Delegated for Calendar.Read. This allows Copilot to act on behalf of the signed-in user.
Copilot Skips Events in Shared Mailboxes
Shared mailboxes have separate calendar folders. Copilot cannot search them unless the shared mailbox is added as a data source. In Outlook on the web, right-click the shared mailbox and select Add to Favorites. Then in Copilot settings, check Include favorite mailboxes. This adds the shared mailbox’s calendar to the search scope.
Copilot Returns Stale Calendar Events
If Copilot shows events that were deleted or rescheduled, the data source cache is outdated. Clear the cache by signing out of all Microsoft 365 apps, waiting 10 minutes, and signing back in. Alternatively, run Clear-MgUserCache in PowerShell with the user’s UPN.
Copilot Search Behavior: Calendar vs Mail Scope
| Item | Calendar Scope Enabled | Calendar Scope Disabled |
|---|---|---|
| Query example | “find meeting with Sarah” | “find meeting with Sarah” |
| Result type | Calendar event + related emails | Related emails only |
| Response time | 2-5 seconds | 1-3 seconds |
| Data source required | Calendar.Read permission | Mail.Read permission |
| Configuration location | Admin center + user settings | Default configuration |
When the Calendar scope is enabled, Copilot queries both the Mail and Calendar folders in a single request. The response includes the event details such as time, location, and attendees. When the Calendar scope is disabled, Copilot only queries the Mail folder and returns any emails that mention the event name. This is why users see emails instead of the actual calendar entry.
After you enable the Calendar scope, Copilot can also answer questions like “What is my next meeting?” or “Who is in the 2 PM review?” It uses the same Graph endpoint that Outlook on the web uses. The query is grounded in the user’s own calendar data, not the organization’s master calendar. This means Copilot respects the user’s mailbox permissions and cannot see events in other users’ calendars unless they are shared.
To verify that the Calendar scope is active, run a test query in the Copilot pane and check the response header. Look for the x-graph-scope field. If it contains Calendar.Read, the scope is enabled. If it contains only Mail.Read, the scope is missing. You can also ask Copilot directly: “Which data sources are you using right now?” Copilot returns a list of enabled scopes.