← PeekWhen

Privacy Policy

Last updated: 26 August 2026

PeekWhen lets you share a view-only link that shows when you are freein the viewer’s own time zone. It does not book meetings, create calendar events, or modify your calendar in any way. This policy explains exactly what we access, what we store, and what we deliberately do not touch.

The short version

What we access

ProviderScope requestedWhat we use it for
Googlehttps://www.googleapis.com/auth/calendar.freebusyRead your free/busy intervals only
GoogleopenidIdentify your account by email (no calendar access)
MicrosoftCalendars.ReadRead your events’ timing to compute free/busy

An honest note on the Microsoft scope.Microsoft’s minimal free/busy scope (Calendars.ReadBasic) requires an organization admin’s consent, which personal Microsoft accounts (outlook.com, hotmail.com, live.com) cannot grant — so it does not work for them. To support personal accounts we request Calendars.Read, which technically could return event titles and attendees. We deliberately never read them.Our request to Microsoft explicitly selects only each event’s start time, end time, all-day flag, and free/busy status ($select=start,end,showAs,isAllDay) — never subject, body, organizer, attendees, or location. This restriction is enforced in our code, and any change to it is treated as a change to this policy. Google’s calendar.freebusy scope is the least-privileged availability permission Google offers and cannot return event contents at all.

What we store

We do not store your calendar events, or their titles, descriptions, locations, or attendees; nor any busy/free intervals beyond the moment we compute a response — those are computed live and not retained.

How your availability is computed

When someone opens your link, PeekWhen queries your calendar provider for your free/busy intervals over the link’s time horizon, subtracts them (plus your buffers, minimum notice, and any exclusions) from your working hours, and shows the resulting free windows in the viewer’s time zone. The query happens at view-time; results may be briefly cached (seconds) to protect provider quotas, then discarded.

What recipients get

Anyone who opens your link sees only your free windows, in their own time zone. Opening a link requires no account and grants the viewer no access to your calendar or your account.

Viewers who connect a calendar (optional)

A recipient may optionally connect their own calendar to see when the two of you are mutually free (“overlap”). This is opt-in and gated by a consent screen before any provider sign-in. When a viewer connects:

Data retention and deletion

What “free/busy” reveals

Showing when you are free necessarily implies when you are busy. A determined viewer who reloads your link over time could infer patterns in your schedule. We do not reveal what those busy periods are — only that they exist. To limit this, PeekWhen provides per-link horizon caps and optional link expiry.

Sharing and third parties

We do not sell your data. We share data only with your chosen calendar provider (to query free/busy) and with infrastructure providers strictly necessary to run the service (hosting, database, transactional email), under data-processing terms. We do not use Google or Microsoft user data for advertising, for training AI/ML models, or for any purpose beyond providing the availability-viewing feature you requested. Our use of Google user data complies with the Google API Services User Data Policy, including its Limited Use requirements.

Security

OAuth tokens are encrypted at rest (AES-256-GCM) with a key held outside the database. We request the narrowest scopes each provider makes workable, read no event content, and delete tokens on disconnect and after idle-expiry — minimizing the impact of any incident.

Contact

Questions, data-export, or deletion requests: privacy@peekwhen.com.