
Connect your Microsoft 365 account to Xcellerate OPS and your Outlook meetings appear behind your timesheet, one click away from a time entry. Allow writing, and your planned work lands in Outlook, Microsoft To Do or Planner, while what you tick off or move there flows back to OPS. For MSP admins who set it up once and technicians who then connect themselves.
TL;DR
- Admin, once: add the calendar and task permissions to the Microsoft sign-in app registration in Microsoft Entra ID. The one-click Entra setup only covers sign-in.
- Each user: profile → Connected calendar → Connect Microsoft 365, then Allow writing.
- Sync runs every 5 minutes. Only "done" and the date come back from Microsoft, never titles.
Before you start
- Microsoft single sign-on must be active for your workspace (Settings → Integrations). The calendar connection reuses that same app registration. Without it, the Connected calendar section does not appear.
- Each staff user (admin or technician) connects their own account. The connection is personal: nobody connects or sees someone else's calendar.
- For Planner, the user must be a member of a Microsoft 365 group that already has a plan. OPS never creates plans.
Step 1 (admin): add the Graph permissions to the app registration
The one-click Entra setup for single sign-on only adds openid, profile and email. Add the calendar and task permissions by hand.
- In Microsoft Entra ID, open the app registration your workspace uses for Microsoft sign-in.
- Go to API permissions → Microsoft Graph → Delegated permissions.
- To show meetings on timesheets, add:
openid,email,profile,offline_access,Calendars.Read. - To sync planned work, also add:
Calendars.ReadWrite,Tasks.ReadWrite.
Whether admin consent is needed depends on your Entra tenant's consent policy. No extra redirect URI is needed: consent returns on the sign-in callback already registered (https://auth.<platform-domain>/sso/microsoft/callback).
Step 2 (each user): connect your account
- Open your profile and go to Connected calendar.
- Click Connect Microsoft 365, choose your account and accept the consent screen.
Step 3: allow writing and choose targets
- Click Allow writing and consent again (wider permissions).
- Under Your planned work, in your calendar and task lists, pick a target for each kind (Project tasks, CRM follow-ups, Ticket reminders) or choose Do not sync:
- Outlook calendar: pick a calendar (the main one by default; only calendars you can edit are listed) and a reminder (none, at the time, 15 min, 30 min, 1 h or 1 day).
- Microsoft To Do (Outlook tasks): pick a list, or keep the default. OPS then creates a list "Xcellerate OPS".
- Planner (Loop task list): choose a plan. This is required. Tasks go into a bucket "Xcellerate OPS".
- Click Save (the first sync starts in the background) or Sync now.
What happens after you connect
- Meetings (read): the week on screen is fetched live and cached for about 5 minutes, never stored. Cancelled and "free" events are hidden.
- Planned work (to Microsoft): only your dated items. Project tasks become all-day entries (free). Your open CRM tasks and planned calls or meetings become timed entries (busy). Checklist reminders on your tickets become 15-minute slots. OPS writes the title, notes and a link back.
- Changes (back to OPS): only "done" and the date, never titles. A calendar only returns a moved date. The newest change wins per field.
- Timing: every 5 minutes, on Save, on Sync now, and when you open the page and the last sync is stale.
- Done in OPS: ticked off in To Do or Planner; the calendar entry stays as history. Date removed, reassigned or deleted in OPS: removed in Microsoft.
Good to know
- One calendar connection per person, Microsoft or Google. Only for workspaces that use Microsoft sign-in.
- An item deleted in Microsoft is not recreated. Reopening a task in To Do does not reopen it in OPS.
- Changing the target of a kind removes the OPS items from the old target.
- Disconnect deletes nothing in Microsoft. Connecting a different account resets your sync choices.
Troubleshooting
- "The calendar could not be connected. Ask your administrator whether the calendar permission is on the sign-in registration." Check that the Graph permissions from step 1 are on the app registration.
- "The connection has expired — connect again." Consent was revoked or has expired. Connect again.
- Allow writing keeps showing. Microsoft did not grant
Calendars.ReadWriteandTasks.ReadWrite. Add them and consent again. - "Synced: X sent, Y taken over, Z failed." The result of Sync now. A failed run shows the Microsoft Graph message per kind.
See how OPS brings time and billing together, and browse our other EU integrations.
Get started for free and turn meetings into time entries with one click.


