---
title: "Calendar Connection Health"
method: GET
path: "/api/v1/calendar/connections/health"
tags: ["Calendar"]
---

# Calendar Connection Health

`GET /api/v1/calendar/connections/health`

## Request

- Base URL: `https://api.thebetterhire.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.thebetterhire.ai/api/v1/calendar/connections/health`
- Auth: HTTP bearer

Live-verify the org's active calendar connection.

GET /connections only reports the stored `is_active` flag — which stays
true even after the OAuth token silently expires or is revoked, so the
new-interview page cheerfully shows "Calendar connected" while Meet
auto-create is actually dead (the exact misleading-indicator bug this
fixes). This endpoint instead calls get_credentials(), which attempts a
real token refresh and marks the connection inactive on RefreshError. So:
  • healthy=true         → token is live, auto-create will work
  • needs_reconnect=true → connection exists but its token is dead;
                           the FE shows "Calendar needs reconnecting"
  • connected=false      → no active connection at all

Kept cheap (credential refresh only, no events list) so it's fine to call
once on page load. The refresh persists a fresh access token as a side
effect, so this doubles as passive token upkeep.

## Response `200`

Successful Response

- unknown

---

[API](https://skmtc.dev/thebetterhire/apis/interanalysis-b2b-api.md) · [All operations](https://skmtc.dev/thebetterhire/apis/interanalysis-b2b-api/llms.txt) · [OpenAPI document](https://skmtc.dev/thebetterhire/apis/interanalysis-b2b-api/revisions/c8ad03e900ea?raw)
