Connecting an OOO Data Source in Span

Last updated: October 27, 2026

An out-of-office (OOO) source tells Span which days each person was away, so per-week metrics, focus time, and cost capitalization reflect working days only. This article covers how to connect a calendar or HR system, how Span decides a day is OOO, and how to troubleshoot missing time off.

Why it matters

  • Fair per-week metrics: vacation days don't drag down rates like PRs merged / week.

  • Accurate capitalization: Span drops any effort it inferred on a day someone was out, so time off never counts as capitalized work.

  • Capacity visibility: OOO Person-Days shows how much time off your teams took.

How it works

Your organization uses one OOO source at a time: a Calendar Integration (Google Calendar or Microsoft Calendar) or an HRIS Integration. For each person and each weekday, Span marks the whole day as OOO or not OOO. There are no partial OOO days.

Calendar source

Span reads events marked as out of office in which the person shows as not available. For each weekday:

  • Span converts the event to the person's time zone and counts the hours it covers between 8 AM and 6 PM.

  • The day is OOO when those hours add up to more than 4.

  • An event that starts at or after 6 PM moves to the next day. One that ends before 8 AM moves to the previous day.

  • Weekends are never OOO.

Calendar event

Hours between 8 AM and 6 PM

OOO day?

All-day out of office on Monday

10

Yes

Out of office 8 AM to 1 PM

5

Yes

Out of office 8 AM to 12 PM

4

No (needs more than 4)

Out of office 10 AM to 12 PM

2

No

All-day out of office on Saturday

Weekend

No

A regular event titled "Vacation"

Not an out-of-office event

No

HRIS source

Span reads absence records from your HR system through Kombo, a third-party HR integration layer. Every weekday from an absence's start date to its end date counts as OOO. Approved and requested absences both count. You can count all absence types, include only some, or exclude some.

Absence data is available from these HR systems: BambooHR, HiBob, Workday, Workday Custom Report, ADP Workforce Now, Deel, Leapsome, and Personio. Okta, Rippling, Dayforce, Google Workspace, Microsoft Entra ID, UKG Pro, and SFTP file drops don't supply absences, so they can't be your OOO source.

Where Span uses OOO days

Area

Effect of an OOO day

PRs merged / week, Weighted PRs / week, Commits / week, Commit days / week, reviews and comments / week

The day leaves the person's active days. With the calendar source, PRs and commits from that day also leave the count.

Issues completed / week, Estimate completed / week

The day leaves the person-days Span divides by.

Focus time and meeting hours

Span averages over non-OOO weekdays only.

OOO Person-Days

Counts OOO days for the selected people and range.

Cost capitalization, R&D tax credits, R&D grant treatment

Span drops all effort it inferred for the person that day, before any classification.

Allocation (Inferred investment, Labeled investment, Workstreams)

No change. A day with no activity already counts zero.

Setup

Option 1: Google Calendar

Google Calendar connects through domain-wide delegation, so a Google Workspace admin grants Span read-only access to calendars across your domain.

  1. In Span, go to Settings → Integrations and start connecting Google Calendar. Span shows the Client ID to use.

  2. In your Google admin console, go to Main → Security → Access and data control → API controls.

  3. In the Domain wide delegation pane, select Manage Domain Wide Delegation, then click Add new.

  4. Enter the Client ID from Span, and in OAuth Scopes enter https://www.googleapis.com/auth/calendar.readonly.

  5. Click Authorize, then return to Span and click Continue. Span checks that it can read your people's calendars.

Option 2: Microsoft Calendar

In Settings → Integrations, connect Microsoft Calendar. A Microsoft 365 admin grants consent for your whole tenant.

Option 3: HR system

In Settings → Integrations, connect your HR system through the Kombo connector. Check that your provider is on the list above.

Choose the source

  1. Go to Settings → Org Calendar. You need the Metrics Configuration permission.

  2. Under Out of Office Days Source, pick Calendar Integration or HRIS Integration. An option is greyed out until a matching integration is connected.

  3. For HRIS, choose All, Include, or Exclude, and pick the absence types if you chose Include or Exclude. For example, exclude "Work from home."

  4. Save.

How cost capitalization treats excluded and unlinked work is a separate setting in Settings → DevFinOps. It doesn't apply to OOO days.

Things to know

  • One source at a time. You can't combine calendar and HRIS time off.

  • Whole days only. A half-day off counts as OOO only if it covers more than 4 hours between 8 AM and 6 PM (calendar), or if your HR system records it as an absence day (HRIS).

  • No manual OOO entry in Span. To record time off Span missed, add an out-of-office event to the person's calendar or an absence in your HR system, depending on your source. If your organization uses supervisor-approved effort for cost capitalization, managers can also record Out of Office time in each approval cycle.

  • Company holidays count only when they appear as out-of-office events or HR absences for each person.

  • Past data. Once a source is connected, Span applies OOO days to past data too. How far back depends on the history your calendar or HR system returns.

  • No source means no OOO days. Per-week metrics then treat every day as available, which can lower rates for people who took time off.

Worked example

Ana uses the calendar source. In one week she has an all-day out-of-office event on Monday, out of office 8 AM to 12 PM on Tuesday, and out of office 1 PM to 6 PM on Wednesday.

  • Monday: 10 hours, OOO. Tuesday: exactly 4 hours, not OOO. Wednesday: 5 hours, OOO.

  • Ana has 2 OOO days that week.

  • She merged a pull request on Wednesday morning. In cost capitalization, Span drops that day's 1.0 FTE-day. In PRs merged / week, Wednesday leaves both her active days and her PR count.

Troubleshooting

  • "Could not access any Google Calendar. Confirm domain-wide delegation is configured.": check the Client ID and scope in your Google admin console, then try again.

  • An integration shows "Reconnect required": Span paused it after repeated credential failures. Reconnect it in Settings → Integrations.

  • HRIS Integration is greyed out: your HR system doesn't supply absences, or no HR system is connected.

  • Someone's time off is missing: check that the event is an out-of-office event (not a regular "Vacation" block), that it covers more than 4 hours between 8 AM and 6 PM on a weekday, that the absence type isn't excluded, and that the person's email in Span matches their calendar or HR record.

Related articles

OOO Person-Days

How to read Span's "/ week" metrics

Focus Time

Introduction to Cost Capitalization

Workday HRIS Integration

Need help?

Contact your Span account team or reach out to support@span.app.