> ## Documentation Index
> Fetch the complete documentation index at: https://absentify.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Microsoft Shifts synchronization

> Grant the absentify Shifts Permission app the Microsoft Graph access it needs to write approved absences as time off into Teams Shifts schedules.

<Note>
  **Preview feature.** Microsoft Shifts synchronization is currently in preview and not yet generally available. To request access for your workspace, email [support@absentify.com](mailto:support@absentify.com).
</Note>

Enable **Microsoft Shifts synchronization** to automatically push approved absences into a Microsoft Teams Shifts schedule as time-off entries. This integration requires permissions for the **absentify Shifts Permission** Microsoft Entra ID app, utilizing **Schedule.ReadWrite.All** (Application) and **Group.Read.All** (Application) permissions.

### Benefits of granting Shifts synchronization permissions

Granting the **Schedule.ReadWrite.All** and **Group.Read.All** permissions to the **absentify Shifts Permission** app offers significant advantages for organizations that use Microsoft Teams Shifts for shift planning:

* **Automated time-off visibility**: Approved absences in absentify are automatically written into the relevant Shifts schedule, so shift planners and colleagues see who is off directly in the timeline.

* **Reduced double entry**: Managers no longer need to manually create time-off entries in Shifts after approving an absence in absentify.

* **Consistent data**: Because absentify creates, updates, and removes time-off entries automatically, the Shifts schedule always reflects the current state of approved absences.

### Default functionality without permissions

If the **Schedule.ReadWrite.All** and **Group.Read.All** permissions are not granted, the Shifts synchronization feature is unavailable. Without these permissions:

* **Manual time-off management**: Shift planners must create and maintain time-off entries in Shifts manually after absences are approved in absentify.

* **No automatic updates**: Changes to an absence (e.g. date edits, cancellations, or rejections) are not reflected in Shifts unless updated by hand.

### How absentify uses the Schedule and Group permissions

To promote transparency and trust, here is how absentify uses the requested permissions:

* **Schedule.ReadWrite.All** allows absentify to read a team's Shifts schedule status, manage time-off reasons, and create, update, or delete time-off entries when absences are approved, modified, or cancelled.

* **Group.Read.All** allows absentify to list the Microsoft Teams in your tenant so an administrator can select which team's Shifts schedule to synchronize. No groups are modified — access is read-only.

* **Secure storage**: Synchronization metadata (time-off IDs, sync status) is stored in absentify's database hosted in **Azure North Europe**, adhering to GDPR requirements. Access is restricted to authorized personnel at absentify GmbH.

### Security and data protection

absentify adheres to strict security protocols to protect your organization's data:

* **ISO 27001 certification**: absentify is ISO 27001 certified, confirming compliance with international standards for information security management.

* **Microsoft 365 App Certification**: The app has achieved Microsoft 365 App Certification, meeting Microsoft's requirements for security, privacy, and compliance.

* **Controlled access**: Secrets and permissions required for Shifts synchronization are securely stored in an Azure Key Vault, restricted to necessary personnel only.

### Enabling Shifts synchronization

To activate the Shifts synchronization, follow these steps:

1. **Grant permissions**: A Microsoft Tenant Administrator must grant admin consent for the **absentify Shifts Permission** app. You can find the direct admin-consent link on the **Settings > Microsoft** page in absentify, or share it with your IT department using the built-in email template.

2. **Activate the permission in absentify**: Go to **Settings > Microsoft** and enable the **Microsoft Shifts synchronization** toggle. absentify verifies that both `Schedule.ReadWrite.All` and `Group.Read.All` are consented before activation.

3. **Configure the integration**: Navigate to **Settings > Integrations > Microsoft Shifts** to connect a Microsoft Team and choose which departments and leave types should be synchronized. See the [Microsoft Shifts integration guide](/docs/en/roles/hr_admins/settings/integrations/microsoft_shifts) for step-by-step instructions.

### Key features of Shifts synchronization

With the integration enabled, absentify provides:

* **Automatic time-off entries**: Creates time-off entries in the Shifts schedule when absences are approved.

* **Real-time updates**: Updates time-off entries when an absence is modified and removes them when an absence is cancelled, rejected, or deleted.

* **Time-off reason mapping**: Each leave type is mapped to a Shifts time-off reason with a configurable display name and color theme.

* **Working-schedule alignment**: The synced time-off period follows the employee's **absentify working schedule**, not their Shifts shift assignments, ensuring consistent deduction across systems.

### Plan requirements

Microsoft Shifts synchronization is available on the **Essentials** and **Plus** plans.

### Revoking permissions

If you need to revoke the permissions for the **absentify Shifts Permission** app, follow these steps:

1. **Access Microsoft Entra admin center**: Sign in to the [Microsoft Entra admin center](https://entra.microsoft.com) with your Microsoft 365 administrator account.

2. **Navigate to Enterprise applications**: In the left-hand menu, go to **Identity > Applications > Enterprise applications**.

3. **Find and select the absentify Shifts Permission app**: Locate the app in your list of enterprise applications.

4. **Manage permissions**: Go to the **Permissions** section and revoke `Schedule.ReadWrite.All` and `Group.Read.All`, or delete the app's service principal entirely.

Revoking these permissions disables Shifts synchronization. Existing time-off entries that were already synced remain in the Shifts schedule but will no longer be updated or removed by absentify.

By granting and — if necessary — revoking the permissions for the **absentify Shifts Permission** app, you retain full control over Shifts synchronization while upholding data security.
