Privacy Policy
Last updated: November 6, 2026
Banri (伴日; “the App”, including the web version at dodo.emtpjack.workers.dev, the Android app and the iPhone app) is developed and operated by YT Vibe Studio (led by Yu-Tung (Jack) Chang). This policy explains what data we collect, how we use it, who we share it with, and how you can delete it. The App has no ads, does not sell data, and does not use any third-party tracking or analytics tools.
1. Data we collect
- Account data: When you sign in with Google, we receive your name, email address, and profile picture URL; when you sign in with Apple, we receive the email address Apple provides (if you choose “Hide My Email”, only Apple's relay address) and the name you choose to share (both handled by Google Firebase Authentication). We use these to identify you, sync your data, and share calendars. When an account that uses Sign in with Apple is removed, we also revoke the authorization with Apple. You can also use the App without signing in, in which case your data stays only on your device.
- Content you create: Events, to-dos, items you're waiting on, things to prepare, calendar names and colors, and the email addresses of people you invite to shared calendars.
- Personalization settings: Your assistant's name, what it calls you, its speaking style, your life areas, your daily routine, theme color and font size, whether you consent to using AI, any iCal calendar URLs you add, and the email address and calendar names of your connected Google Calendar account.
- Reports and feedback: AI answer reports or feedback that you choose to submit.
- Technical data: To prevent abuse and rate-limit requests, the server briefly processes your IP address and request times (handled by Cloudflare).
2. Where data is stored
- Your device: All data is first stored in your device's browser database (IndexedDB), so the App works offline.
- The cloud (after sign-in): Your account, content, and personalization settings are synced to Google Firebase (Cloud Firestore, with its data center in Taiwan, asia-east1), so that your other devices and shared-calendar members get the latest data.
- Imported calendars: Events read from Google Calendar or iCal are stored on your device and are not synced to the cloud database; only when reminders are turned on are the titles and times for the next 7 days uploaded to the reminder scheduler (see Section 6). Your Google Calendar access token is stored on your device and expires after about one hour. So that your calendars can sync automatically, the refresh token Google issues when you authorize is stored encrypted on our Cloudflare server and is used only to obtain new access tokens for you.
3. How we use data
- To provide App features: displaying and syncing events, finding free time, checking for conflicts, and the daily summary (read aloud by your device itself).
- Sharing: When you share a calendar or a single event with others, they will see the shared content and your name.
- To respond to your reports and feedback and to keep the service secure.
- We do not use your data for advertising, and we do not sell or rent it.
4. AI features (Anthropic Claude)
“AI Organize” and “AI Q&A” require you to sign in and to give explicit consent the first time you use them. After you consent, the following content is sent to the Claude API of Anthropic, PBC for processing only when you tap “Organize” or submit a question:
- AI Organize: the text or photos you enter, plus the names of your life areas and your daily routine.
- AI Q&A: your question, how you'd like to be addressed and your assistant settings, and a summary of relevant recent events and to-dos (which may include events imported from your Google Calendar).
Anthropic processes this content under its Commercial Terms of Service and does not use it to train models. You can turn off AI at any time in Settings → My assistant and use on-device parsing instead.
To track AI quotas, the server records the daily and monthly number of AI uses (not their content) under a hash of your sign-in account email (which cannot be reversed back into the email). After you remove your account, this count is kept until the end of the current month so that the quota cannot be reset; after that it has no effect.
If you subscribe to Plus, payment is handled by Google Play, and we never receive your card number or payment details. The App only passes the purchase token provided by Google Play to the server, which checks with Google whether the subscription is valid, its expiry date, and its plan, and links that token to your account. If you subscribe in the iPhone app, payment is handled by Apple's App Store and we likewise never receive your payment details; the App only passes the App Store transaction ID to the server, which checks with Apple the subscription's status, expiry date, and plan, and links it to your account. The link is removed when you remove your account; to cancel a subscription, go to “Payments & subscriptions” in Google Play or Settings → Apple ID → Subscriptions on iPhone. If you subscribe on the web (iPhone or computer), payment is processed by ECPay (綠界科技) as a recurring credit card charge. You enter your card only on ECPay's payment page and we never receive it; our server only receives ECPay's payment results (order number, whether each charge succeeded, how many charges, and dates) to activate and renew Plus. You can turn off auto-renew for a web subscription under Settings → Plan & AI usage, and removing your account also stops future charges.
5. Google Calendar data
When you connect Google Calendar, the App by default requests only two read-only permissions: “See the list of Google calendars you're subscribed to” (calendar.calendarlist.readonly), used to list your calendars so you can choose which ones to show, and “View events on all your calendars” (calendar.events.readonly), used to display your events in the App and to calculate free time and conflicts. Only if you turn on “Two-way sync” yourself does it instead request “View and edit events on all your calendars” (calendar.events), and it only writes the specific events you add, change, or delete in Banri, without touching any other data. The App never reads or changes your calendar settings, sharing permissions, or any other Google Account data. These events are stored on your device; only when you use AI Q&A is a summary of relevant events sent to the AI as described in Section 4 to answer your question, and when reminders are turned on, the titles and times of events in the next 7 days are uploaded as described in Section 6 so that notifications arrive on time. We do not use Google Calendar data for advertising, sell it, or use it to train any AI model.
Banri's use and transfer of information received from Google APIs will adhere to the Google API Services User Data Policy, including its Limited Use requirements.
Banri's use and transfer of information received from Google APIs to any other app will adhere to the Google API Services User Data Policy, including the Limited Use requirements.
You can remove the connection in Settings → Google Calendar → Disconnect, or revoke access under “Third-party apps & services” in your Google Account.
6. Reminder notifications
When you turn on “Reminders” on a device, the App uploads the items to be reminded about in the next 7 days (title, time, location, and the text to show in the notification), together with that device's push subscription information, to our server on Cloudflare for scheduling. When the time comes, the server delivers the notification to your device through the push service of Google (Android, Chrome) or Apple (iPhone). This includes the titles and times of events imported from your Google Calendar, used solely to send reminders. Notification content is shown on the lock screen; you can hide it in your phone's notification settings.
Turning off reminders deletes that device's schedule; removing your account deletes the schedules for all devices; and a device's schedule that has not been updated for more than 21 days expires automatically.
If you connect the “Home-screen widget” on Android or iPhone, the App stores a summary of today's and tomorrow's events and due to-dos (time, title, location; in privacy mode, only the time and type) on the same server, and the widget retrieves it using a key that can only read this summary. On iPhone, the App also saves the same summary and key in storage shared only with its own widget on that phone, so the widget can update without a network connection. You can stop all widgets in Settings → Home-screen widget, and the server will delete the summary and the key; they are also deleted when you remove your account.
7. Who we share data with
- People you choose to share with (shared-calendar members and people you share a single event with).
- Service providers, only as needed to provide the App: Google (Firebase sign-in and database, Google Calendar API, Android/Chrome push), Apple (iPhone push), Cloudflare (website, server, and reminder scheduling), Anthropic (AI features, with your consent), Google Play (Android subscription payment and verification), Apple (Sign in with Apple, App Store subscription payment and verification), and ECPay (credit card payment for web subscriptions).
- When required by law.
8. Retention and deletion
- Data is kept until you delete it.
- You can permanently delete your account and cloud data in the App under Settings → Account & sync → Remove account; see How to delete your account and data for the steps.
- To clear only the data on this device: Settings → Data → Clear local data.
- Google Calendar data: the access token is stored only on your device and expires after about an hour. The encrypted refresh token stored on our server is deleted, and the authorization revoked with Google, when you disconnect that account or remove your Banri account (you can also revoke it at any time under "Third-party access" in your Google Account). Imported events are stored on your device and are deleted when you choose Settings → Google Calendar → Disconnect or clear local data. Event titles and times uploaded for reminders cover only the next 7 days; past ones are removed at the next update, and all of them are deleted when you turn off reminders or remove your account. Event summaries sent for AI processing are not stored by us.
9. Data security
All connections are encrypted with HTTPS. The cloud database is restricted by access rules: each person can only read and write their own data and the shared calendars they have been invited to. AI features require sign-in and are rate-limited. No system can guarantee 100% security; if an incident affecting your data occurs, we will notify you as soon as possible.
10. Children
The App is not designed for children under 13, and we do not knowingly collect personal data from children.
11. Changes to this policy
If this policy changes materially, we will notify you in the App and update the date on this page.
12. Contact us
For any privacy questions or requests, please use Settings → About & support → Feedback in the App, or contact us via the developer contact details on the App's Google Play or App Store page.