Solstice Calendar — Privacy Policy
Last updated: July 26, 2026
Solstice Calendar ("Solstice") is a desktop calendar application for Linux, developed by David Boulay. It is local-first by design: we operate no servers that store your data, and your calendar data never passes through us.
What data the app handles
- Calendar data — events, calendars, invitations, and RSVP state from accounts you connect (Google Calendar, Microsoft Outlook, Apple iCloud). This data syncs directly between your device and your provider and is cached in a local database on your device only.
- Contacts — when you type a guest's name, the app queries your provider's contacts API (Google People / Microsoft Graph) directly from your device to suggest matches. Suggestions are displayed and discarded; no contact list is stored.
- Credentials — OAuth tokens (Google, Microsoft) and app-specific passwords (iCloud) are stored encrypted on your device and sent only to the respective provider.
Google user data: what we access
With the scopes you grant at sign-in, Solstice accesses the following raw Google user data, directly from your device:
- Your calendar list and events (
calendarscope) — calendar names and colours; and for each event its title, description, location, start and end times, recurrence rule, reminders, attendee list with RSVP status, organiser, and conference (Google Meet) link. - Your account's email address (
userinfo.emailscope) — the address of the account you connected. - Contact names and email addresses (
contacts.readonly,contacts.other.readonlyscopes) — only the names and email addresses returned for the search term you type while adding a guest to an event.
Solstice does not access any other Google data. It creates no aggregated or anonymised derivatives of your Google data.
Google user data: how we use it
- Calendar data is displayed in the app's day, week, 3-day and month views, and is written back when you create, edit, move or delete an event, manage a recurring series, respond to an invitation, or ask for a Google Meet link. It is cached in a local database on your device so the app works offline.
- Your email address labels the connected account in the app's account list, and is matched against event attendee lists so that an RSVP is sent from the correct account.
- Contacts are used only to populate the autocomplete list while you type a guest's name. Suggestions are rendered and discarded; no contact list is written to disk or retained after the field closes.
Google user data is never used for advertising, profiling, credit or lending decisions, market research, or any purpose other than the user-facing calendar features described above.
Google user data: what we transfer
We transfer no Google user data to anyone. Your calendar and contact data travels only between your device and Google's own APIs; it is never sent to the developer, to any third party, to any data broker or advertiser, and it is never sold. The only data that touches a server we operate is the short-lived OAuth authorization code and refresh token during sign-in (see the endpoint described below) — never your calendar events, contacts, or any content.
Google user data: how it is protected
- In transit — every request to Google's APIs and to our OAuth exchange endpoint uses HTTPS (TLS) with certificate verification. There is no plaintext transport.
- At rest — the local event cache and OAuth tokens are stored under your operating-system user account with owner-only file permissions, inside your home directory; tokens are held in an encrypted credential store separate from the cached calendar data.
- Sign-in — authorization uses OAuth 2.0 with PKCE (RFC 7636) and a loopback redirect. No client secret is shipped in the application binary, and an intercepted authorization code cannot be exchanged without the code verifier held only by your running app.
- Our exchange endpoint — the only server component operated by the developer performs the token exchange and stores nothing: no tokens, no account data, no logs of request contents. It is reachable over HTTPS only.
- Attack surface — because we operate no database and hold no user data, there is no server-side store of Google user data that could be breached, subpoenaed, or leaked.
- Deletion by you at any time — removing an account in the app erases its cached data and credentials from your device immediately.
Limited Use
Solstice Calendar's use of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements. Raw and derived user data received from Google APIs is used only to provide and improve the user-facing features described in this policy; it is not transferred or sold to third parties; it is not used for advertising; and it is not used to develop, improve or train generalised artificial-intelligence or machine-learning models, nor transferred to any third-party service that would do so.
Third-party services the app contacts
- Your calendar providers (Google, Microsoft, Apple) — for sign-in and syncing, directly from your device.
- Our OAuth exchange endpoint at
n8n.davidboulay.com— completing Google sign-in routes the one-time authorization-code exchange and subsequent token refreshes through this endpoint, operated by the developer, because Google desktop clients cannot hold a client secret. It forwards the exchange to Google's token endpoint and stores nothing — no tokens, no account data, no logs of request contents. - Open-Meteo — weather forecasts for your approximate location (coordinates only, no account data).
- Geolocation-by-IP services (ipwho.is, geojs.io, ipapi.co) — only if you enable weather with automatic location; they see your IP address, as any website you visit does. You can set the location manually instead.
- OpenStreetMap Nominatim — location autocomplete when you type an event location.
- GitHub — checking for app updates and downloading them.
What we don't do
- No analytics, telemetry, tracking, or crash reporting.
- No accounts with us, no data sold or shared with third parties.
- No advertising of any kind.
Data retention & deletion
Google user data is retained only as a local cache on your device, for as long as the account stays connected, and is refreshed from Google on each sync. We retain nothing on any server, so we have no copy to keep or delete. Everything Solstice stores lives on your device. Removing an account inside the app deletes its cached data and credentials; uninstalling the app removes the rest. Nothing needs deleting on our side, because nothing is held on our side. To revoke the app's access to your provider account, use Google account permissions or Microsoft account permissions.
Contact
Questions or concerns: open an issue on the Solstice Calendar GitHub repository.
Changes
If this policy changes, the updated version is published at this URL with a new "last updated" date.