Trust & Security

Last updated October 14, 2026

The short version. The only calendar read we perform is an availability query that returns busy time ranges. We do not list your events. We never receive, store or log a meeting body, an attachment, or an attendee list.

Applications to approve

An administrator approves these once for the organization. Nothing is installed on devices. Publisher verification with Microsoft is in progress; until it completes, the consent screen does not show Micro Fitness Club Corp as a verified publisher.

PlatformIdentifier
Microsoft Entra application (client) ID33ff9a35-309f-421c-b907-85dd7a00b15f
Microsoft home tenantd223793b-5017-4721-b799-8f23ee32d842
Google OAuth client ID682689439316-tl1n4afmvaofqm5c8vgoqonrvrpfkdmm.apps.googleusercontent.com

The home tenant is the directory the application is registered in. It is not your company's tenant. Approval still happens in your own Microsoft Entra admin center, or in the Google Admin console.

What we can see

Placing a session on your own calendar requires a permission that also technically allows reading it — neither Google nor Microsoft offers a write-only calendar scope. So the meaningful question is not what we are permitted to call. It is what we actually call. Here is the complete list.

Google Workspace

PurposeCallWhat comes back
Find your open windowsfreebusy.queryBusy start and end times only. The API returns no summary, no attendees and no description. There is nothing for us to discard.
Find sessions we placedevents.list, filteredFiltered to a private property we stamp on our own events, so the only events returned are ones this app created.
Place, move or remove a sessionevents.insert / patch / deleteOur events only.
Notice a meeting movedevents.watchA ping with no payload. Google sends headers only; we then re-run the availability query.

We request two calendar scopes: calendar.freebusy, which Google classifies as non-sensitive and which is our entire read path, and calendar.events, which is required to place a session on your calendar and to be told when a meeting moves. We previously also requested calendar.readonly and have removed it.

Microsoft 365

We hold one delegated permission, Calendars.ReadWrite, plus User.Read and offline_access. Graph has no free/busy-only permission — the one that sounds like it, Calendars.ReadBasic, still exposes subjects and attendees and requires admin consent, so it is worse on both counts.

Instead, the query we run on every sync selects only id, start, end, isAllDay, isCancelled, showAs and our own private property. Subject is deliberately not requested, so Graph does not send us a meeting title — not yours, and not even our own. Change notifications carry no resource data.

Two exceptions, stated plainly

We would rather you read these here than find them yourself.

Neither runs on the sync path that operates for every user every day.

What we store

DataStored
Your busy time rangesNo. Read at sync time, used to choose a gap, then discarded.
Meeting titles, attendees, bodies, attachmentsNever received.
Sessions we placedYes — the event id, time, type and duration.
Calendar refresh tokenYes, encrypted at rest.
Your work email, team membership, preferences, minutes completedYes.

Payments

Sub-processors

ProviderPurpose
VercelApplication hosting
UpstashDatabase
StripePayments
ResendTransactional email
Cloudflare (R2)Session video storage, served over short-lived signed links
MuxVideo playback for older session recordings

We will give notice before adding a sub-processor that processes customer data.

Retention and deletion

An administrator can remove a person from the console at any time, and a SCIM deprovision (Okta or Microsoft Entra) does the same. Doing so revokes our Google calendar grant, or for Outlook stops the subscription and deletes the only copy of the refresh token, and deletes the upcoming sessions we placed on that calendar. Deleting a workspace removes its members, tokens and records. Anyone can also revoke our access directly from their Google or Microsoft account security settings, which stops all access immediately.

To request deletion, write to hello@microfitnessclub.com from your work address.

Incident response

If we become aware of a security incident affecting customer data, we will investigate immediately, contain it, and notify affected administrators by email without undue delay and in any case within 72 hours of confirming it, with what we know, what we are doing, and what we recommend you do. To report something, write to hello@microfitnessclub.com — we would rather hear it from you than not hear it.

Google API Services User Data Policy

Micro Fitness Club’s use and transfer of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements. We do not use Google user data for advertising, we do not sell it, and we do not use it to train machine-learning models.

Certifications — where we actually stand

We are a young company and we are not going to overstate this.

If SOC 2 is a hard requirement for your organization today, tell us — it is useful for us to know, and we would rather you heard it straight than discovered it three weeks into a review.

Request the security pack

Tell us where to send it and we will reply with what exists today — the data-flow description above in document form, our DPA, a completed security questionnaire and a W-9 — plus a straight answer on anything still in progress.