Privacy
Privacy Policy
Effective October 22, 2026. This policy describes the Void Calendar macOS app and this website, operated by VOID VISION PTY LTD. Product use is covered by the Terms of Service. Our handling of Google data follows the Google API Services User Data Policy, including the Limited Use requirements. See who receives Google user data and why.
Who we are
Void Calendar is provided by VOID VISION PTY LTD. It is a macOS app for time boxes, tasks, notes, and focus. Contact us at contact@voidvision.ai.
Local storage and optional cloud sync
Events, tasks, inbox items, notes, focus logs, and AI conversations are stored locally by default. Without account cloud sync, these local records are not uploaded to us as a workspace. With sync enabled, projects, tasks (including tasks imported from Google Tasks), time boxes, notes, daily records, chats, completed AI operation records, and images referenced by that content are sent to the VOID VISION sync service to synchronize your devices. External calendar caches and device connection settings are excluded from workspace sync.
Google Calendar/Tasks OAuth tokens, your iCloud app-specific password, and any AI API key you enter are stored in an encrypted credential vault on your Mac. They are not written into the calendar database and are not uploaded to our servers.
Calendars you choose to connect
Apple Calendar: after you grant access, the app reads events to display them. It does not modify the original Apple calendar.
Apple Reminders: after you grant access, selected lists sync both ways, including title, notes, due date, and completion.
Google Calendar: OAuth runs in the system browser. The requested scopes read your calendar list and events, and create, change, or delete events on calendars you can write. Tokens stay in the encrypted credential vault on your Mac. Ordinary saves request no attendee notifications; Google sends invitations when you choose to notify attendees and may still send service-required emails. How we access, use, share, and protect Google user data is in the next section.
iCloud Calendar: sync uses your Apple ID email and an app-specific password over CalDAV. That password stays in the encrypted credential vault on your Mac. The Apple ID password is not stored.
Meeting links can be saved on an event. Google Meet is created with the existing Google Calendar permission. Zoom and FaceTime links are only the URLs you paste; the app does not sign in to those services.
Google user data
How this application uses Google user data: we access it only when you connect Google Calendar, connect Google Tasks, or sign in with Google, and only to provide calendar, task, and time-boxing features to you. We do not use it for advertising or credit decisions, and we do not sell it to data brokers.
Google Calendar: https://www.googleapis.com/auth/calendar.calendarlist.readonly reads subscribed calendar IDs, names, colors, time zones, the primary flag, and access roles for calendar selection and write-access checks. https://www.googleapis.com/auth/calendar.events reads event titles, times, locations, descriptions, attendee email addresses and responses, recurrence, and meeting links, and creates, changes, or deletes events on calendars you can edit. This supports event display, conflict checks, confirmed scheduling operations, and Google Meet links when requested. We support shared calendars on which you have editor access, not only calendars you own. We do not request permission to create or delete calendars, manage sharing, or change calendar properties. Google sends invitations when you choose to notify attendees; ordinary saves request no attendee notifications, although Google may still send service-required emails.
Google Tasks: https://www.googleapis.com/auth/tasks reads task lists and tasks and synchronizes the titles, notes, due dates, completion, creation, and deletion of tasks you choose to sync back to Google Tasks. Two-way sync requires write access, so we do not also request tasks.readonly. We request openid and email to read the account identifier and email, label the connection, and isolate tasks belonging to different accounts. This connection does not request the profile scope. New local uploads require you to select a Google Tasks list for that individual task when creating or editing it. Selecting lists in account settings does not bulk export local tasks. No hashtag or global default export list initiates new uploads; existing linked tasks keep their original list and continue syncing. Cancelling a new-task form does not upload the draft. Confirming a list in the inline editor saves immediately. Precise due times, priorities, and reminders remain local.
Signing in to a Void Calendar account with Google is a separate identity authorization from connecting Calendar or Tasks, and does not automatically connect either service. Supabase Auth processes the account identifier, email, and basic profile information returned by the sign-in provider, such as name and avatar, to establish a session. VOID VISION account services use the identifier and email for workspace and membership identification. Supabase Google sign-in requests email and profile by default, with openid when using OpenID Connect. Google Console represents email and profile as https://www.googleapis.com/auth/userinfo.email and https://www.googleapis.com/auth/userinfo.profile. Identity sign-in does not require Calendar or Tasks access.
Recipients and purposes of Google user data: Google receives changes you request to sync back to Calendar or Tasks, and invited attendees receive the relevant event information when you send invitations. Supabase Auth processes the identity information described above for sign-in. With account sync enabled, the VOID VISION sync service and the named Supabase / Amazon Web Services (AWS) providers below process relevant workspace records for device synchronization. These include imported Google Tasks and Google event content saved in notes, time boxes, conversations, or AI operation records. The raw Google Calendar cache and Calendar/Tasks OAuth tokens are not uploaded as workspace data.
Our use of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.
AI transfers: when you use AI and supply or allow access to calendar or task context, the selected service receives the content needed for the request, which may include Google data. A custom API connection sends requests directly to your chosen model provider. A CLI Agent and its model service process requests in CLI mode. If hosted AI is enabled and used, requests pass through the VOID VISION backend to the configured model provider. Recipients depend on your selected connection and model. We use this content only for the scheduling, question-answering, and operation features you use. We do not sell it, use it for advertising or credit decisions, or use Google API data to develop, improve, or train generalized or non-personalized AI/ML models. Transfers of Google data are limited to cases permitted by Limited Use, including consented transfers needed for visible user-facing features, security purposes, or legal requirements. Consent does not permit uses prohibited by that policy. We are responsible for ensuring that processing we arrange meets these restrictions. For custom endpoints and CLI Agents, recipients, retention, and training settings depend on the service and account you select; the app does not automatically verify every custom service’s contracts or settings. Do not process Google data through a service that does not meet these restrictions. Turning cloud sync off does not stop an AI feature you enable from sending context.
Protection of sensitive data: network connections to Google and production cloud services use HTTPS. Desktop authorization callbacks use HTTP only on a local loopback address, validate OAuth state, and use PKCE for authorization-code exchange. Calendar/Tasks access and refresh tokens are encrypted with AES-256-GCM in a local credential vault excluded from workspace sync. On macOS, vault directories and files are restricted to the current OS user. The automatic-unlock key is also local; this does not isolate malicious programs running as that user or mean that the workspace content database is encrypted. Cloud sync protects records through authenticated, account-isolated, restricted access. The hosted AI gateway does not persist prompt or answer bodies as gateway request logs; conversations saved in your workspace still follow your sync settings.
Sharing Google user data: named recipients and purposes
We share, transfer or disclose Google user data only for the services and purposes described below. Connecting Google Calendar or Tasks does not automatically send its contents to every recipient. Cloud sync, AI, external Agent/MCP access, analytics and payment services have separate activation conditions. Google Calendar/Tasks OAuth tokens are not sent to AI providers, analytics providers, email-delivery providers or payment processors.
The table identifies both recipients of Google content or identity information and supporting services that receive only account-linked or network metadata. It does not mean that all services are enabled for every account. Our named hosted-AI default is Google Gemini when that service is configured and enabled; OpenAI and Anthropic can also be configured as hosted providers. User-configured API or Agent routes may use the other named providers or an endpoint you supply. Their processing must still comply with the Limited Use restrictions in this policy.
| Recipient / service | Data involved | When and why it is shared |
|---|---|---|
| Google — Google Calendar, Google Tasks, Google Sign-In and Google Meet | Google account authentication requests and the event/task fields you ask to read, create, change or delete, including event titles, times, descriptions, locations, attendees and meeting links, and task titles, notes, due dates and completion. | When you connect Google or request a Google-backed operation: authentication, calendar/task synchronization and requested Meet creation. |
| People you invite and people with access to the Google calendar you choose | The event information made visible by your Google Calendar sharing settings, including title, time, description, location, meeting link and attendee information. | When you save an event to a shared calendar or choose to send invitations. Google controls delivery and existing calendar access; ordinary saves do not proactively request attendee email notifications. |
| Supabase — Supabase Auth and configured managed database/storage services | For Google sign-in: the Google authentication response and identity information such as account identifier, email, name and avatar, as needed to establish a session. With cloud sync enabled: workspace records, including imported Google Tasks and Google-derived content you save in notes, time boxes, chats or AI operation records. | Supabase Auth provides the separate Google identity sign-in. Configured database/storage services process cloud workspace records on our behalf when you enable sync. The raw Google Calendar cache and Calendar/Tasks OAuth tokens are excluded from workspace uploads. |
| Amazon Web Services (AWS) | Authenticated account/service requests and, when optional sync or hosted AI is used, the workspace or AI-request content routed through our backend, which can include Google-derived tasks or calendar context; network and service-operation metadata. | AWS hosts VOID VISION backend services. These requests are processed on our behalf to provide the account, synchronization or hosted-AI function you use, rather than for advertising or sale of Google data. |
| OpenAI — OpenAI API, ChatGPT / Codex | Prompts, conversation and calendar/task context you provide or permit the selected AI or Agent to read. This can include Google event/task content and related calendar/account metadata, but not Calendar/Tasks OAuth tokens. | Only when you select and use this provider, or a selected Agent routes a request to it, for scheduling, answers or requested actions. Direct API/CLI routes go to the selected service; hosted routes pass through VOID VISION and its backend hosting before reaching the configured model provider. |
| Anthropic — Claude API / Claude Code | Prompts, conversation and calendar/task context you provide or permit the selected AI or Agent to read. This can include Google event/task content and related calendar/account metadata, but not Calendar/Tasks OAuth tokens. | Only when you select and use this provider, or a selected Agent routes a request to it, for scheduling, answers or requested actions. Direct API/CLI routes go to the selected service; hosted routes pass through VOID VISION and its backend hosting before reaching the configured model provider. |
| Google — Gemini / Google Antigravity | Prompts, conversation and calendar/task context you provide or permit the selected AI or Agent to read. This can include Google event/task content and related calendar/account metadata, but not Calendar/Tasks OAuth tokens. | Only when you select and use this provider, or a selected Agent routes a request to it, for scheduling, answers or requested actions. Direct API/CLI routes go to the selected service; hosted routes pass through VOID VISION and its backend hosting before reaching the configured model provider. |
| Anysphere — Cursor | Prompts, conversation and calendar/task context you provide or permit the selected AI or Agent to read. This can include Google event/task content and related calendar/account metadata, but not Calendar/Tasks OAuth tokens. | Only when you select and use this provider, or a selected Agent routes a request to it, for scheduling, answers or requested actions. Direct API/CLI routes go to the selected service; hosted routes pass through VOID VISION and its backend hosting before reaching the configured model provider. |
| Moonshot AI — Kimi CLI | Prompts, conversation and calendar/task context you provide or permit the selected AI or Agent to read. This can include Google event/task content and related calendar/account metadata, but not Calendar/Tasks OAuth tokens. | Only when you select and use this provider, or a selected Agent routes a request to it, for scheduling, answers or requested actions. Direct API/CLI routes go to the selected service; hosted routes pass through VOID VISION and its backend hosting before reaching the configured model provider. |
| Alibaba Cloud — Qwen Code | Prompts, conversation and calendar/task context you provide or permit the selected AI or Agent to read. This can include Google event/task content and related calendar/account metadata, but not Calendar/Tasks OAuth tokens. | Only when you select and use this provider, or a selected Agent routes a request to it, for scheduling, answers or requested actions. Direct API/CLI routes go to the selected service; hosted routes pass through VOID VISION and its backend hosting before reaching the configured model provider. |
| Tencent — CodeBuddy | Prompts, conversation and calendar/task context you provide or permit the selected AI or Agent to read. This can include Google event/task content and related calendar/account metadata, but not Calendar/Tasks OAuth tokens. | Only when you select and use this provider, or a selected Agent routes a request to it, for scheduling, answers or requested actions. Direct API/CLI routes go to the selected service; hosted routes pass through VOID VISION and its backend hosting before reaching the configured model provider. |
| GitHub / Microsoft — GitHub Copilot | Prompts, conversation and calendar/task context you provide or permit the selected AI or Agent to read. This can include Google event/task content and related calendar/account metadata, but not Calendar/Tasks OAuth tokens. | Only when you select and use this provider, or a selected Agent routes a request to it, for scheduling, answers or requested actions. Direct API/CLI routes go to the selected service; hosted routes pass through VOID VISION and its backend hosting before reaching the configured model provider. |
| Providers configured in OpenCode or a custom endpoint; operators of external Agent / MCP clients or servers you authorize | The prompts, tool inputs/results and workspace records covered by the access you grant, potentially including Google-derived calendar or task context. | Only after you configure that service or authorize that connection and use its features. The recipient is the operator of the service name and endpoint you enter, or the Agent/MCP service you connect; OpenCode may route requests to its configured model provider. These routes are not a transfer to every supported provider, and an OpenAI-compatible protocol does not mean the recipient is OpenAI. |
| PostHog | Pseudonymous installation/account identifiers, usage categories and counts, Google connection/sync success or failure metadata, timing, redacted error categories and network IP. Enabled replay receives masked interface interaction data. No Google event/task text, Google email, raw Google account ID, OAuth token, prompt or response body is included in app analytics. | Only when usage statistics are enabled and configured; session replay additionally requires its separate opt-in. Used for product reliability, feature usage and interaction troubleshooting, not advertising. Turning statistics off stops future collection as described in Usage statistics. |
| Resend | The destination email address you use (including a Google email address if supplied), the authentication/service email body and delivery metadata. An authentication email can contain a one-time code or verification link; it does not contain Calendar/Tasks records or OAuth tokens. | When you request an email-based account or verification flow using our configured mail delivery service. Resend delivers that requested message on our behalf. Connecting Calendar or Tasks alone does not send their content to Resend. |
| Stripe; Apple App Store payment services | The Void account identifier linked to a purchase, purchase/entitlement metadata and billing information you provide to the payment service, which may include an email address you choose. No Google Calendar/Tasks contents or Calendar/Tasks OAuth tokens are sent for billing. | Only when you use the corresponding purchase or subscription service, for payment processing and verified membership. They are not recipients of your Google calendar/task workspace for this purpose. |
| Cloudflare; GitHub (Microsoft); gh-proxy.org and gh-proxy.com download services | Website or download request metadata, such as IP address, browser information, requested page or installer filename. These public policy/download pages do not send Google Calendar/Tasks records or OAuth tokens to these services. | Cloudflare hosts this website. GitHub hosts installers; download links may pass through gh-proxy.org or gh-proxy.com. They deliver the page or file you request, independently of connecting a Google account in the app. |
| VOID VISION support staff; recipients required by law | Only the Google-related information you choose to include in a support request, or the information strictly necessary to address abuse, security or a binding legal obligation. | Support staff access is limited to the purpose you requested. Legal/security disclosures are limited to situations permitted by applicable law and Google Limited Use; they are not a general right to inspect calendar/task content. |
AI
AI features can use your configured model endpoint, a CLI Agent, or an enabled hosted model service. Requests can include calendar, task, note, and conversation context you supply or allow the feature to read. Direct connections send requests to your chosen endpoint, CLI connections are processed by the selected Agent, and hosted connections pass through our backend to a model provider.
We do not use this content to train general-purpose models. Third-party retention and processing also depend on that service’s terms and your settings; Google data remains subject to the Limited Use restrictions in the preceding section. Hosted AI keeps account-linked request identifiers, models, timestamps, status, token usage, and cost records for authentication, quotas, billing, and troubleshooting, which may include upstream request identifiers. These are separate from prompt and answer bodies. Turning usage statistics off does not stop these service records. You can stop using AI, disconnect a service, or delete a custom API key. This does not automatically delete content already sent to third parties or saved conversations.
Usage statistics
When configured and enabled, app usage statistics send product-usage and reliability metadata to PostHog. This includes opens and activity, first observation and activation, categories and counts of core actions such as task and project changes, connection and sync results, operation duration and redacted error categories, AI request outcomes and usage, proposal acceptance or undo, feature-experiment assignments, and fixed-choice feedback ratings and interactions. Window activity is sampled at most once every five minutes, with a new sample permitted at a UTC date boundary.
Metadata includes platform, version, desktop or Web client, surface, environment, session, and random correlation identifiers. Signed-out activity is attributed to an installation; signed-in activity uses a pseudonymous identifier derived from workspace account information, with the installation identifier retained for device counts. Pseudonymous does not mean fully anonymous. Desktop installation identity is persisted by the native app; the Web app uses browser-local identity. Account switches reset analytics sessions, and development and production environments are handled separately.
Event fields are allowlisted. They exclude schedule, task, note, chat, and prompt bodies, email, raw account IDs, actual entity names, page URLs, API keys, and raw error messages. PostHog still receives connection IP addresses. Client analytics permits IP-derived approximate country or city information, rather than precise device location. Hosted AI server analytics disables IP geolocation and sends metadata only when that request carries the enabled analytics preference and server analytics is configured. It includes model categories, duration, time to first content when available, status, tokens, and costs, attributed to the account pseudonym.
Turn usage statistics off in General settings to stop subsequent product events, feature-experiment requests, and session replay. The app respects the browser’s Do Not Track setting. Turning it off does not delete data already received or stop service records needed for sign-in, synchronization, or AI billing. The product marketing website does not use this app analytics integration; Web app collection depends on its build configuration.
Session replay is off by default. It requires a desktop build with replay enabled, your separate opt-in in settings, and usage statistics remaining on. It sends redacted interface structure, clicks, pointer movement, scrolling, and size changes to PostHog to diagnose interaction issues. Text and input values are masked; images, media, page URLs, network request bodies, and console logs are excluded. It is not a desktop screen recording. You can turn replay off separately; this stops subsequent collection without deleting replay already received.
Clearing WebView storage does not reset native installation identity; removing the corresponding native identity data generates a new identifier. Contact contact@voidvision.ai to request deletion of analytics or replay records we hold. Turning collection off or uninstalling the app does not itself request remote deletion.
This website
This site introduces the product. It does not require an account. Language and the homepage demo position stay in your browser and are not uploaded to us.
The download buttons do not collect a name or payment. Email you send to contact@voidvision.ai is used to answer that request.
What we do not do
We do not sell personal information, advertise with your calendar content, or require a Void Calendar account to use the desktop app.
Retention and deletion
Disconnecting Google stops future synchronization and deletes the corresponding tokens from the local encrypted vault. It does not delete calendars or tasks in your Google Account. Imported tasks, sync metadata, and content saved in notes, time boxes, chats, or AI operation records may remain and must be deleted separately. Disconnecting is not a deletion of the cloud workspace. You can revoke access in your Google Account third-party access settings. Uninstalling the macOS app alone usually leaves its application data directory intact.
Local workspace content remains until you delete the records or remove the app data. With cloud sync enabled, deletions propagate to other devices after successful sync. Server sync history, conflict records, and backups may remain for their operational retention periods. Contact contact@voidvision.ai to request deletion of cloud records we hold. Data already received by Google, Apple, AI providers, or the analytics service follows their applicable rules and your account settings. Deleting a local copy does not replace a deletion request to those services.
Your choices
You can revoke Calendar and Reminders access in macOS Settings, disconnect Google, iCloud, and AI inside the app, and turn usage statistics off.
To access, correct, or delete information we actually hold, or to ask about this policy, email contact@voidvision.ai. Data held by a calendar or model provider has to be requested from that company.
Children
Void Calendar is not directed at children under 13, and we do not knowingly collect their personal information.
Changes
If how we handle information changes, we will update the date at the top of this page.
