Skip to main content

Microsoft 365 Calendar

Pensero connects to your calendar to understand real working capacity and how availability affects delivery. By accounting for time off and focus time, Pensero ensures delivery metrics reflect how teams actually work, not idealized headcount.

Written by Wayne

Overview

Pensero connects to your calendars to understand how much time teams actually have to deliver work. This allows Pensero to adjust delivery and delivery metrics based on real availability, rather than assuming everyone is working full-time every day.

The integration supports:

  • Personal calendars: Used to estimate focus time and meeting load. Each user must share their calendar with the admin account that connected Pensero and grant permission to see event details. Free/busy-only visibility is not enough to identify meetings and attendees. After the user grants full visibility, Pensero automatically re-syncs and reprocesses the previous seven days; no manual re-fetch is required.

  • Company absence calendars: Used to calculate effective working capacity and understand how time off impacts delivery. This calendar must be explicitly selected by an admin.

Before connecting, ensure your HR system’s company absence calendar is available in Microsoft 365. If the absence calendar is missing, follow the instructions in The correct calendar isn’t showing in the list section.

Pensero currently supports one absence calendar per workspace and refreshes events twice daily, which is sufficient to reflect availability trends without adding noise.

Admins can connect the calendar from the Integrations section using the steps below.

What Pensero Reads from Your Calendar

Pensero reads only absence-related metadata required to adjust delivery calculations.

  • Event Title: Name of the absence event.

  • Start & End Time: Duration of time off.

  • Event Type: Standard, all-day, or recurring events.

Pensero does not read meeting content or personal calendar details unrelated to absences.

Out-of-office detection from personal calendars

In addition to the shared company absence calendar, Pensero can read native “Out of office” events from employees’ own Outlook / Microsoft 365 calendars. This detects absences even when your company does not publish them to a shared calendar in a format Pensero can read, and it needs no HR-tool integration and no event-title patterns.

Why it matters

Out-of-office time feeds working days, the denominator of every per-person metric on the People page. When absences are not detected they are counted as zero, so anyone who took significant leave (parental, sick, sabbatical) appears to have more capacity than they had, and their output looks weaker than it was.

What Pensero reads — and what it does not

  • Only events the employee explicitly marked as Out of office, and only which days they were away.

  • No meeting titles, descriptions, attendees or locations. Absence is never inferred from free text: “Doctor”, “Gym” or “Off-site” are not absences.

  • If a company enables this and nothing else, the only calendar data Pensero stores for that person is their out-of-office days.

How to turn it on

One org-admin switch, off by default: Privacy settings → General → Allow Pensero to read Out-of-office events from employee calendars. It applies to everyone in the organization uniformly.

It is independent from the individual focus-time setting in both directions: someone with focus time off still contributes out-of-office data if the company enabled it, and enabling out-of-office does not give Pensero their meeting data.

Running both sources

Companies that already have a shared HR absence calendar see no change to their numbers: when the same absence appears in both sources it is counted once, not twice. Each absence also records which source it came from, so admins can tell why someone is marked away.

Rollout note

Enabling the setting affects future syncs only. Historical out-of-office data requires a full re-fetch, so contact us if you need past periods corrected.

How to Connect Your Microsoft Calendar (Step-by-Step)

Setup takes just a few minutes and does not require changes to how your team works.

Step 1 – Select Microsoft Calendar

Open the Integrations page from the left sidebar in Pensero, scroll to Sync absence calendars and click Connect.

Step 2 – Enter your Azure AD Tenant ID

In the MS365 Calendar connection modal, enter your Azure AD Tenant ID.

  • You can find it in Azure Portal → Azure Active Directory → Overview → Tenant ID.

Step 3 – Grant Admin Consent in Microsoft

After you click Connect, you will be redirected to Microsoft to grant admin consent for calendar access.

  • This authorizes the Pensero application at the tenant level so it can read the absence calendar data needed for availability calculations.

Step 4 – Select the Absence Calendar

Choose the calendar that contains company-wide absence events (e.g., Personio – Time Off, PTO – Company Name, or a webcal link from your HR tool) and click Add calendar.

Important:

Do not select a personal calendar. Always choose the HR-generated company absence calendar. ️

Step 5 – Confirm Sync

After connecting, click the calendar name to review the synchronization logs. Check that:

  • Event Name column is populated

  • Attendees are correctly detected with ✔️ after the name

If attendees appear as None, it usually means the affected employees are not yet set up as Pensero users.

Absence Calendar Missing? How to Add It

Pensero relies on a single, company-wide absence calendar to calculate availability consistently across teams.

If your HR tool (Personio, Deel, Rippling, Omni, etc.) manages absences, you may need to import its calendar into Outlook Calendar.

To do so:

  1. Copy the calendar URL from your HR system.

  2. Open Outlook Calendar.

  3. Click Add calendar.

  4. Select Subscribe from web

  5. Paste the URL and Save.

  6. Return to Pensero and refresh the Absence calendars list.

  7. Select the newly added calendar.

Your absence calendar is now ready to be used for delivery and availability insights.

Why calendar data matters

Without adjusting for time off, delivery metrics can be misleading.

By accounting for availability, Pensero helps teams distinguish between:

  • Delivery issues

  • Capacity constraints

  • Structural inefficiencies

Did this answer your question?