Privacy Policy
Effective Date: October 22, 2026
This Privacy Policy explains how ZenTask, provided by AW Builds, collects, uses, and protects information when you use the app.
Data Ownership Promise: Your task content is stored on your device and, if sync is enabled, in your own Google Drive App Data folder. AW Builds does not host your task database on company servers.
1. Scope
This policy applies to the ZenTask mobile application, related support communications, and associated documentation pages in this site.
2. What is collected, and what is not
Your task content — titles, notes, subtasks, templates, dependencies, streaks, XP, focus history, goals and settings — is not collected by AW Builds. The app stores it in a local database inside the app's private storage on your device, and, if you sign in and turn on sync, writes a backup to a hidden folder in your own Google Drive. There is no account system of ours and no server that receives your tasks.
What is collected is diagnostics, and it is worth being specific about it:
- Sign-in details: Signing in with Google is optional. If you do it, the app reads your Google account's display name and email address, and stores them locally, to show your name in the app and to identify the account for Drive sync. If you do not sign in, you can use the app in guest mode and nothing about your account is read at all.
- Usage analytics: Firebase Analytics receives events such as task created, task completed, task uncompleted, streak milestone, level up, goal completed, focus session completed, achievement unlocked, onboarding completed, paywall interaction, and a screen view on every navigation change. The task-created, task-completed and task-uncompleted events carry the task title as a parameter, so the text of a task you type is sent to Google as part of that event.
- Crash diagnostics: Firebase Crashlytics receives crash reports and the device state at the time of the crash.
- Remote messages: Firebase Cloud Messaging can deliver a notification to your device. A message delivered this way is content sent by the publisher, and the app displays it without reading anything from your task list.
- Remote settings: Firebase Remote Config is installed and fetches two settings, an advertising frequency threshold and a gamification multiplier. At the time of writing neither of them is read by the app, so neither currently changes what the app does. The values are configuration only, and they carry no data about you.
- Subscription status: Purchases are handled by Google Play Billing. We receive entitlement and subscription state information, not your full payment method details.
- Advertising data (free tier only): Google AdMob may process device-level identifiers to deliver and measure ads. A ZenTask Pro subscriber never sees ads. See section 6.
- Notifications: If you enable reminders, ZenTask schedules local notifications on your device for daily summaries, deadlines and timers. Notification content is generated on-device and is never sent to AW Builds servers.
3. How we use information
We use information to enable sync, validate subscription access, diagnose technical issues, prevent abuse, and improve app quality.
4. Storage and synchronization
- Local-first storage: Task content is primarily stored on your device.
- Optional cloud sync: If enabled, ZenTask syncs through your Google Drive App Data folder, which is private to your account.
- Google Drive scope: Sync requests the
drive.appdatascope, which grants access only to ZenTask's own hidden folder in your Drive and cannot read the rest of your files. You can revoke access at any time from your Google Account permissions page. - Sync retention: The synced payload keeps completion and focus history for up to two years. Older history is dropped from the synced copy.
- No content hosting by AW Builds: We do not run a central task-content server for your personal task entries.
5. Permissions, and why each one is there
ZenTask declares four permissions in its own manifest. The libraries it depends on add more to the merged manifest, and the table below lists every permission that actually ships in the release build, with the reason it is there.
| Permission | Why |
|---|---|
SCHEDULE_EXACT_ALARM | So a focus timer or a deadline alert fires when you chose, not minutes late. Android treats this as a special access you can review and revoke in system settings; the app asks for it when you start a timer on Android 12 and above. |
POST_NOTIFICATIONS | To show the reminders, deadline alerts and timer alerts you asked for. It is requested from the notifications screen and from onboarding, not at launch. |
RECEIVE_BOOT_COMPLETED | To re-arm your timers and reminders after a restart, which Android clears for safety. |
USE_FULL_SCREEN_INTENT | Used only on Android 13 and older, so a finished task timer can wake the screen and show its alert over the lock screen the way an alarm clock does. On Android 14 and newer the app does not use it at all: the alert arrives as an ordinary notification, and the alert screen wakes the device by itself. The Focus Mode countdown runs inside the app and never uses it. |
INTERNET | Added by the libraries the app depends on — Google Play services, Firebase and the Drive client — to reach Google's own services. No task content goes to an AW Builds server: the only task content that leaves your device is the backup in your own Google Drive, if you enable sync, and the task title carried by the three analytics events described in section 2. |
ACCESS_NETWORK_STATE | Added by the Google libraries, to tell an active connection from a metered or absent one before a sync or a remote-config fetch. |
WAKE_LOCK | Added by Firebase Cloud Messaging, for older versions of Google Play services to create an instance ID token. The app does not use it to hold the device awake for its own features. |
FOREGROUND_SERVICE | Added by the WorkManager library, so a scheduled background sync can finish rather than being cut off when the app is backgrounded. The app declares no foreground service of its own. |
ACCESS_ADSERVICES_AD_ID | Added by Google AdMob, so advertising can be measured and limited to users who have not asked to be tracked. |
ACCESS_ADSERVICES_ATTRIBUTION | Added by Google AdMob, so an ad install can be attributed to the campaign that produced it. |
ACCESS_ADSERVICES_TOPICS | Added by Google AdMob, so ads can be matched to a topic the user chose in Google's own advertising settings. |
com.google.android.gms.permission.AD_ID | Added by Google AdMob. This is the device's advertising ID, used to serve and measure ads and to limit ad personalisation. On Android 13 and newer you can reset or delete it from your device settings at any time. |
com.android.vending.BILLING | Added by the Play Billing library, so you can buy ZenTask Pro and the app can check whether your subscription is active. ZenTask never sees your payment details. |
com.google.android.c2dm.permission.RECEIVE | Added by Firebase Cloud Messaging so the app can receive push messages from Google. |
com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE | Added by Google's measurement library, so the app can read the install referrer — who sent the user to the Play listing. It is a Play-services-only permission and grants no access to your files. |
com.google.android.providers.gsf.permission.READ_GSERVICES | Added by reCAPTCHA, which Google's services pull in, for Google Play services' own internal use. It is not a way for ZenTask to read anything you can see. |
com.awbuilds.zentask.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION | Added automatically by AndroidX Core. It is a permission ZenTask defines for itself, used to make the broadcast receivers it registers at runtime impossible for other apps to start. It applies to ZenTask alone and exposes nothing. |
If a future version adds or removes a permission, this table and the app's AGENTS.md are updated in the same change, with the reason recorded.
6. Advertising
ZenTask is free to use and carries advertising for users who do not subscribe to ZenTask Pro. Google AdMob serves an interstitial and a rewarded ad; a ZenTask Pro subscriber never sees either. The ad provider may use the device's advertising identifier, and the permissions that makes possible are listed in section 5. You can control personalised advertising in Google's own ad settings.
7. Sharing and third parties
We do not sell your personal data. Data may be processed by trusted third-party service providers that support app operation, including Google services (such as Sign-In, Drive API, Play Billing, AdMob, and Firebase), subject to their own terms and privacy policies.
8. Data retention and deletion
- Local data: Delete everything from within the app, clear the app's storage, or uninstall the app.
- Synced data: Remove the app's folder from your Google account, or revoke the app's access to Drive, which also stops future syncs.
- On our side: AW Builds hosts no copy of your tasks, so there is nothing held here to request and no deletion request to make.
- Diagnostics: The analytics and crash data described in section 2 is held by Google under your Google account, and is removed through Google's own controls.
9. Security
We use reasonable technical and organizational safeguards. However, no transmission or storage method is completely secure, and we cannot guarantee absolute security.
10. Children's privacy
ZenTask is not directed to children under 13 (or the minimum age required in your jurisdiction). We do not knowingly collect data from children. Because task content is stored on your own device and in your own Drive, a child's tasks are not collected by us either.
11. International processing
Depending on the services used, data may be processed in countries other than your own. Applicable safeguards are implemented by the relevant service providers.
12. Changes to this policy
We may update this Privacy Policy from time to time. Material changes will be reflected by updating the effective date and publishing the revised text on this page.
13. Contact
For privacy questions or requests, contact: awbuilds.support@gmail.com.