Personal Work Sync Setup Guide
Personal Work Sync puts each agent's assigned Freshservice work (tickets, tasks, changes, problems, releases and project tasks) onto their own Outlook calendar. It runs in the background, so agents don't sign in or do anything themselves.
To do this, the app needs its own identity in your Microsoft 365 tenant. You create that identity once, as an app registration, and paste three values into the app's Sync tab. This page walks you through it.
About 5-10 minutes · done by a Microsoft 365 administrator
Before you start
You need:
- A Microsoft 365 admin account that can create app registrations and grant admin consent. In practice: Application Administrator or Cloud Application Administrator to register the app, and Privileged Role Administrator or Global Administrator to grant consent. A Global Administrator can do everything.
- Freshservice admin access, to open the app's settings page.
- Agents whose Freshservice email matches their Microsoft 365 mailbox. The app finds each agent's calendar by email address. An agent whose Freshservice email has no matching mailbox in your tenant is skipped. See Check that your agents match.
Keep two browser tabs open: the Microsoft Entra admin center and the app's settings page in Freshservice.
1. Register the app in Microsoft Entra
- Sign in to the Microsoft Entra admin center. If you manage more than one tenant, use the Settings icon in the top menu to switch to the tenant whose calendars you want to sync.
- Go to Entra ID > App registrations and select New registration.
- Fill in the form:
- Name: anything recognizable, for example
Freshservice Calendar Sync. - Supported account types: choose Single tenant only - your tenant name.
- Redirect URI: leave it blank. Sync runs in the background and has no sign-in step, so it doesn't need one.
- Name: anything recognizable, for example
- Select Register.
You're now on the app's Overview page. Copy these two values into a scratch file. You'll paste them into Freshservice in step 4:
| Value | Where it is on the Overview page |
|---|---|
| Application (client) ID | Labeled "Application (client) ID" |
| Directory (tenant) ID | Labeled "Directory (tenant) ID" |
2. Add the two permissions
The app needs two Microsoft Graph application permissions. Application permissions let the app work in the background without a signed-in user, which is what makes sync possible.
- In your app registration, select API permissions.
- Select Add a permission > Microsoft Graph > Application permissions.
- Search for and tick each of these:
Permission Why the app needs it Calendars.ReadWriteCreate, update and delete the sync events on agents' calendars User.Read.AllFind each agent's mailbox from their email address - Select Add permissions.
Choose Application permissions, not Delegated permissions. With delegated permissions, verification fails.
The app registration also starts with a User.Read delegated permission. You can leave it or remove it. Sync doesn't use it.
3. Grant admin consent
Application permissions do nothing until an administrator approves them.
- Still on API permissions, select Grant admin consent for your tenant name.
- Select Yes.
- Select Refresh and check that both permissions show a green check and Granted for your tenant name under Status.
If the button is greyed out, your account isn't an admin who can consent. Ask a Global Administrator to do this step.
4. Create a client secret and enter it in Freshservice
The client secret is like a password for the app.
- In your app registration, select Certificates & secrets > Client secrets > New client secret.
- Enter a Description (for example
Freshservice sync) and choose an Expires period. - Select Add.
- Copy the secret's
Valueright away. Microsoft shows it only once. Don't copy the Secret ID, which is a different field and won't work.
Secret expiry: when the secret expires, sync stops. Microsoft limits how long a secret can last, so put a reminder in your calendar a few weeks before the expiry date. To rotate it, create a new secret, paste it into the app (below), and select Verify again.
Now enter the values in Freshservice:
- Open the app's settings page and go to the Sync tab, then Connection.
- Fill in:
- Tenant ID: the Directory (tenant) ID from step 1
- Client ID: the Application (client) ID from step 1
- Client secret: the secret Value you just copied
- Secret expires (optional): the expiry date, so the settings page can remind you
- Select Verify.
You should see a green Connected · verified … message. If you get an error, see Troubleshooting.
- Save the settings.
5. Check that your agents match
Sync finds each agent's Outlook calendar by matching the agent's Freshservice email address to a Microsoft 365 mailbox in your tenant.
After sync has run, the Unmatched agents panel on the Connection tab lists agents the app couldn't match. Common reasons:
- The agent's Freshservice email uses a different domain from their Microsoft 365 address, for example a public domain like
[email protected]when the mailbox is[email protected]. - The person has no Exchange Online mailbox (no Microsoft 365 license that includes email).
- The email has a typo.
To fix an unmatched agent, change their email in Freshservice so it matches their Microsoft 365 mailbox address (or an alias on that mailbox).
6. Choose what to sync
Open Sync > Preferences. Sync only starts working once Enable calendar sync is on and you've verified the connection.
| Setting | What it does |
|---|---|
| Work types | Choose which of Tickets, Changes, Problems, Releases, Tasks and Project tasks appear on calendars. Turning a type off stops syncing it. Events already on calendars stay and simply stop updating. |
| Remove from calendar when work closes | On: the event is deleted when the work is resolved or closed. Off: it stays. |
| Include subtasks | Also sync subtasks. |
| Show as | How the event appears in Outlook: Free, Tentative or Busy. Free is the default. Tentative and Busy also block that agent's time slots in the app's scheduling suggestions. |
| Sensitivity | Normal, Private or Confidential. |
| Reminder | Optional: minutes before the event to show an Outlook reminder. |
Tickets and tasks use their planned start and end dates. Work without planned dates doesn't get a calendar event.
What agents see
Nothing to set up. Once sync is on, an agent's assigned work appears on their own Outlook calendar automatically. Each event's subject shows the type and the title, and it links back to the record in Freshservice. The event doesn't copy the ticket's description.
If an agent deletes a sync event from their calendar, it stays deleted. The app doesn't put it back.
Troubleshooting
Verify fails: "invalid client secret" or AADSTS7000215
You pasted the secret's Secret ID instead of its Value, or the secret has expired. Create a new secret and copy the Value.
Verify fails: AADSTS700016 (application not found)
The Client ID or Tenant ID is wrong or belongs to a different tenant. Copy both again from the app's Overview page.
Verify fails: AADSTS90002 (tenant not found)
The Tenant ID is wrong. It should be a GUID like xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
Verify succeeds but no events appear, or "Forbidden" / Authorization_RequestDenied
Admin consent wasn't granted, or you added Delegated instead of Application permissions. Go back to steps 2 and 3, and check that both permissions show Granted with type Application.
Sync stopped working after months of running fine
The client secret probably expired. Create a new secret (step 4) and verify again.
An agent has no events
Check the Unmatched agents panel (step 5). Also check that their work has planned dates, that the work type is turned on in Preferences, and that the work is assigned to them.
Events show the wrong Show as / Sensitivity
These settings apply to newly synced events. Existing events update the next time their record changes.
What access does this grant?
Calendars.ReadWrite as an application permission lets the app read and write calendars for all mailboxes in your tenant, not just the agents you sync. The app only touches the calendars of matched agents, and only the events it created. If your security team needs to limit which mailboxes the app can reach, ask your Exchange administrator about scoping the app in Exchange Online.
To stop sync completely, turn off Enable calendar sync in Sync > Preferences. To revoke the app's access entirely, delete the app registration in Microsoft Entra.
If you get stuck or need any assistance with the app, contact [email protected]