DESKAL
Privacy policy
How Deskal accesses, uses, stores and protects your data, and the choices available to you.
Last updated: November 11, 2026.
About Deskal
Deskal is provided by Rudnei Gomes, based in São Paulo, Brazil (the “Controller,” “Deskal,” “we,” or “us”). Privacy questions and requests may be sent to support@deskal.app.
Deskal is an independent macOS client for Google Calendar and Google Tasks. This policy describes the data handled by Deskal's desktop app, menu bar calendar, synchronization agent, native notifications, support communications and basic website delivery. This notice is available offline in Settings → Privacy & Legal. Deskal is not affiliated with or endorsed by Google.
Calendar and task content is processed on your Mac and exchanged directly with Google. Deskal does not operate a backend that receives or stores your calendar or task content.
Information used to provide the app
Deskal handles calendar and task data needed to display your agenda, update tasks, respond to invitations and deliver notifications. This may include account identifiers and display information; calendar and task-list names, colors and identifiers; event and task titles, descriptions, notes, locations, dates, times and time zones; attendee and invitation information; completion status; and notification settings supplied by Google or chosen by you.
Google API permissions allow Deskal to read your calendar list, read and update calendar events, and read and update tasks. Write access supports actions you request, including completing or reopening a task and responding to an invitation. These changes are sent to Google and can affect shared calendars, invitation responses and other people who can access that content. Actions made in Google's embedded web pages are handled by Google. Deskal does not request access to Gmail messages, Google Drive files or contacts through its native API authorization.
Google sign-in and connections
The Calendar and Tasks pages are provided by Google through WebKit. Information you enter in those pages is sent to Google. Deskal does not record your Google password. API authorization uses Google's consent interface through the system authentication session or your browser. During API authorization, a temporary redirect listener may run only on 127.0.0.1; it validates the OAuth response and closes when authorization finishes or is cancelled.
Google receives the network requests and connection information needed to provide its services. Google's handling of information, including website cookies, is governed by the Google Privacy Policy. Deskal does not control Google's retention practices.
Storage on your Mac
OAuth access and refresh tokens are stored in the macOS Keychain. Google web-session cookies and website storage are managed by WebKit on your Mac.
Deskal stores local agenda snapshots and queued actions in a sandboxed shared app container so that its main app, menu bar calendar and sync agent can work together. These files can contain the calendar and task details described above. The default event synchronization range includes 7 days in the past and approximately 60 days in the future; the future range is configurable in Settings → Sync. Cache maintenance uses a separate 14-day past buffer. Neither range is a guaranteed deletion deadline for every record. Requested dates, overdue tasks, recently completed tasks and pending actions can require data outside that window. Cached data is refreshed or cleaned during synchronization and can remain while the Mac is offline or synchronization is stopped.
Deskal encrypts native agenda snapshots, queued actions, synchronization state and invitation-notification history using AES-256-GCM through Apple CryptoKit. A random key is stored separately in macOS Keychain and shared only with authorized Deskal components. Existing native JSON data is migrated on access before use. Disconnect removes these data files before deleting the encryption key; key-removal failures remain pending for retry. Preferences, session-control metadata, WebKit website data and macOS notifications are outside this cache encryption. Encryption does not protect data while an authorized process is using it or erase historical backups. Deskal does not provide its publisher with remote access to your local cache.
Preferences, session status, consent choices and removal receipts are also stored locally. Session generations and removal receipts contain status and identifiers, not OAuth tokens or agenda contents.
Background operation and notifications
Background Sync is included when you explicitly activate FullSync after completing setup. Deskal Sync can then start when you log in to your Mac and keep synchronizing after you quit the main Deskal app. You can choose notifications for events, tasks, both or none; choosing none does not stop synchronization. To stop native synchronization, switch to Webview in Settings → Sync → Mode. This disconnects native Google data access and removes the local agenda cache and Deskal notifications while preserving web access. Existing users who previously declined background execution keep that decision until they explicitly enable FullSync background activity.
Opening the main app at login and enabling the menu bar calendar are separate optional settings. An enabled menu bar calendar can also start at login and remain available after the main app quits.
macOS separately controls notification permission. Notification Center may store and display event or task titles and notification information, including on the lock screen according to your macOS settings.
Sharing and data use
Deskal uses Google API data to provide its calendar, tasks, agenda and notification features. Deskal does not sell this data, use it for advertising or use it to train AI models. The app does not include advertising or third-party analytics SDKs, and it does not send agenda contents to a Deskal-operated backend.
Information is shared with Google to access its services and with macOS components such as Keychain, WebKit and Notification Center to provide the local app features. Google and Apple's own services remain subject to their respective policies.
Google API data and Limited Use
Deskal's use and transfer of information received from Google APIs adheres to the Google API Services User Data Policy, including its Limited Use requirements. Google user data is used only to provide and improve the user-facing calendar, task, agenda and notification features described in this policy. It is not used for advertising, sold to data brokers or used to train general-purpose AI models. Deskal does not permit human reading of Google API data except with your affirmative agreement for specific data, where necessary for security or legal compliance, or another exception expressly allowed by that policy. A transfer connected with a business sale would require the prior explicit consent required by Google’s Limited Use rules. These restrictions also apply to derived data.
Diagnostics
Release builds can write local macOS system logs describing authentication, cleanup and operational failures. Some task-completion diagnostics include the timestamp sent to Google, the completion timestamp returned by Google and the system time-zone identifier. These are task-related timing data even though they do not include task titles, notes or identifiers. Development builds can also write local debug diagnostics, including operational metadata, to Application Support and the console.
Deskal does not automatically upload these logs to a Deskal-operated service. macOS and Apple may handle crash or diagnostic reports under your system and sharing settings. If you choose to send screenshots, logs or reports to support, those materials may reveal personal information; review and redact them first. Never send passwords, OAuth tokens, authorization codes or browser cookies.
Support communications
If you email Deskal, we receive the address, message, attachments and related correspondence you send. We use them to answer your request, investigate the issue, handle privacy rights and maintain necessary security or legal records. Email delivery and storage providers process that correspondence to operate the support mailbox. Support does not normally need your calendar contents or credentials and cannot directly inspect data stored only on your Mac.
Support correspondence is retained for the time reasonably needed to resolve and follow up on the request, protect security, meet legal obligations or handle a dispute, then deleted or anonymized when no longer needed. The period depends on the issue and applicable requirements; Deskal does not promise a fixed deletion period that also controls independent email-provider backups.
Legal grounds and user control
Where applicable, the legal basis depends on the purpose: providing requested app features and answering service requests; consent where legally required for optional processing; compliance with legal duties; and legitimate interests in proportionate security, reliability and support, subject to your rights. A technical permission from Google or macOS is not by itself a legal basis for every use of personal data. Calendar contents may include sensitive information supplied by you or other people; Deskal does not use that information to infer sensitive characteristics or profile people. Any processing of sensitive data remains subject to the additional conditions required by applicable law. Background activity and notifications are optional and remain under your control.
You can withdraw Google API authorization, disable optional components, change notification permission or initiate local data removal at any time. Withdrawal does not affect processing that was lawful before withdrawal.
Retention
Active OAuth credentials remain in Keychain until removed through Deskal or otherwise deleted. Revoking access in Google prevents further authorized API use but does not itself erase local credentials, cached files or web-session cookies. Local agenda snapshots are maintained during synchronization or removed through the disconnection controls below. The synchronization window is not an automatic expiry guarantee. Google WebKit data remains until removed through Disconnect & Remove Data, cleared by macOS or otherwise expired under Google's settings. Preferences and consent records remain until reset or removed through Deskal controls. Minimal transaction identifiers and removal receipts may remain locally to verify cleanup and prevent stale work from restoring a disconnected session.
Scheduled and delivered notifications remain under Notification Center's operation until they are delivered, cleared, expire or are removed by Deskal. A pending revocation credential remains encrypted in Keychain only until Google confirms revocation or reports that the token is already invalid. Local diagnostics and system logs are retained according to macOS settings and operating-system behavior. Deskal does not retain calendar or task content on a Deskal-operated server.
Your choices and removing data
There are two different actions in Settings:
Switch to Webview: In Settings → Sync → Mode, choose Webview and confirm. Deskal stops native synchronization, removes active native API credentials, requests revocation of the available Google authorization, and clears synchronized agenda data and native notifications. Google web access, mini calendar availability and appearance preferences are preserved. This does not sign you out of the embedded Google web session.
Disconnect & Remove Data: In Settings → Account → Disconnection, choose Disconnect… and confirm. Deskal removes its embedded web login and website data, active Google API credentials, synchronized agenda data, queued actions and app preferences, clears Deskal notifications, and stops and unregisters its background components and login items. It also requests revocation of the available Google API authorization. The account repair action in Settings → Account → Troubleshooting resets Google web login for troubleshooting; it is not a substitute for full disconnection.
Both removal workflows establish a local barrier against further native account use and preserve a separate pending revocation credential in macOS Keychain before deleting active credentials when a credential is available. That pending credential is sent only to Google's official HTTPS revocation endpoint; it is not used for synchronization or token refresh and is not written to preferences, agenda caches or diagnostics. It is deleted after Google confirms revocation or reports that it is already invalid.
If the network, Keychain, background component or macOS service registration is unavailable, removal can remain incomplete. Deskal retries while the app is running and resumes pending cleanup when reopened. New native connections remain blocked until the required cleanup and revocation finish. Follow the progress or error shown by the app; do not assume that closing or uninstalling it completes a pending operation. You can also revoke access directly in your Google Account connections.
Revocation affects the OAuth grant for the Google Cloud project used by Deskal and may disconnect other Deskal installations for the same Google account. If no OAuth credential remains from an earlier local-only disconnection, Deskal cannot revoke that earlier grant programmatically; you can remove it in your Google Account connections.
Removal does not delete source events, tasks or your Google account, sign you out of a separate browser, undo changes already sent to Google, or reset macOS notification permission. Revocation of native API access does not necessarily end a Google web session.
Removal targets active Deskal app data and notifications. It does not securely erase storage media or remove copies already captured in Time Machine, other backups, exported files, screenshots, external logs or support correspondence. Manage those copies through the relevant system or provider. Uninstalling alone is not a verified data-removal or Google-revocation operation.
Global and regional privacy rights
Your rights depend on where you live and are subject to applicable exceptions. Depending on your jurisdiction, you may have the right to know whether personal data is processed; access or receive a copy; correct inaccurate data; request deletion, anonymization, blocking or restriction; object to certain processing; request portability; withdraw consent; obtain information about recipients and international transfers; appeal a denied request; and complain to a competent privacy or consumer-protection authority. Deskal does not make decisions that produce legal or similarly significant effects using automated profiling.
Brazil. Under the LGPD, eligible individuals may exercise rights including confirmation, access, correction, anonymization, blocking or deletion of unnecessary or unlawfully processed data, portability where applicable, information about sharing and consent, withdrawal of consent, opposition in applicable cases, and review of relevant automated decisions. You may petition Brazil's National Data Protection Authority after first contacting Deskal where required.
European Economic Area, Switzerland and United Kingdom. Where the GDPR, Swiss data-protection law or UK GDPR applies, you may have rights of access, rectification, erasure, restriction, objection and portability, the right to withdraw consent, and the right to lodge a complaint with the supervisory authority where you live, work or believe an infringement occurred. Processing is based, as applicable, on performance of the service you request, consent for optional choices, legitimate interests in security and reliability that do not override your rights, and compliance with legal obligations.
California and other U.S. states. Where an applicable state privacy law grants these rights, you may request access to or correction or deletion of covered personal information, information about categories, sources, purposes and recipients, and portability, and may exercise applicable opt-out, appeal and non-discrimination rights. Deskal does not sell personal information, share it for cross-context behavioral advertising, or process it for targeted advertising. Deskal does not use sensitive personal information to infer characteristics about users.
Making a request. Most Deskal data is stored only on your Mac and can be managed directly with the controls described above. For any privacy request, email support@deskal.app. Describe your request; you may include your jurisdiction to help identify the applicable rules. You do not need to cite a law or use a particular form. We cannot remotely retrieve or erase files stored only on your Mac, but can explain the available local controls. Rights over data held independently by Google or Apple can also be exercised with those providers. We may request only the information reasonably necessary to verify the request, protect the account and prevent fraud. An authorized agent may submit a request where local law permits, subject to verification of authority. Requests are free where required and will be answered within the applicable legal period. If a request is denied, the response will explain the reason and any available appeal or complaint route.
Security
Deskal uses macOS sandboxing, Keychain, scoped app-group storage, HTTPS, OAuth with PKCE and state validation, restricted local redirect handling, and separation of active and revocation credentials. Deskal is designed not to log passwords, OAuth tokens, authorization codes, cookies, raw request bodies, email addresses, event notes or task notes in production diagnostics.
No method of storage or transmission is completely secure. If a security incident affecting data under Deskal's control requires notification, Deskal will provide notice as required by applicable law.
International data processing
Deskal is controlled from Brazil. Google, Apple and website infrastructure providers may process information in Brazil, the United States and other countries that may have different data-protection laws from your country. Their processing is governed by their respective terms, privacy notices and legally recognized transfer mechanisms. This policy does not itself establish a transfer safeguard or waive applicable protections. For transfers for which Deskal is responsible, an applicable lawful transfer basis and any required safeguards must be in place. You can contact Deskal for information about relevant recipients, destinations and safeguards; provider practices are also described in their own notices. Deskal limits international processing to what is necessary for the requested service and the website's delivery and security.
This website
Opening the published policy, terms or support links contacts the website rather than remaining entirely within the offline app. Website hosting, DNS, content-delivery and security services may process technical request data, including IP address, time, requested URL, browser information, referral data and security signals, to deliver and protect the site. These requests do not automatically include your Google API credentials or agenda cache.
Website technical logs are separate from the agenda cache on your Mac and may remain after you disconnect the app. Retention depends on the infrastructure provider's configuration, security needs and legal obligations. Contact Deskal for information about relevant website recipients and retention or to exercise applicable rights.
Following links to Google, Apple or other services takes you to services governed by their own privacy policies.
Children
Deskal is a general productivity app, not a service directed to children. Use must comply with applicable age, parental authorization and Google account requirements. A calendar may contain information about children or other people; their rights and any special legal protections still apply. Deskal does not use such information for advertising or profiling. If you believe a child has provided personal data to Deskal contrary to applicable law, contact support@deskal.app.
Policy updates
The policy bundled with a Deskal release describes that version's behavior. The update date identifies revisions. Material changes will be communicated through an appropriate app notice, release information or other legally required channel. New uses or sharing of Google API data require advance disclosure and any consent required by Google policy or applicable law. Reading this policy, opening Settings or installing an update does not itself authorize new Google permissions or optional background activity.
Contact
Controller: Rudnei Gomes Location: São Paulo, Brazil Privacy and support email: support@deskal.app Website: https://deskal.app