Privacy Policy
Effective date: 28 March 2026 · Last updated: 13 October 2026
1. Overview
This Privacy Policy describes how Time Zone Buddy (“the App”, “we”, “us” or “our”) handles your information. It applies to the Time Zone Buddy iOS, iPadOS, macOS and watchOS applications.
Time Zone Buddy does not sell your personal information, run advertising, or operate user accounts or developer-owned backend servers.
The App is designed with a privacy-first philosophy. Data you enter — time zones, work hours, groups, and preferences — stays on your device unless you explicitly enable private iCloud Sync. Network services used for city search, solar times, analytics, and crash diagnostics are described below; in version 1.7 and later, public holiday data is built into the App and needs no network request (earlier versions fetch it, see §2.9). We have no backend servers, no user accounts, and no advertising SDKs.
The App uses Firebase Analytics and Crashlytics (by Google) to understand aggregate usage patterns and diagnose crashes so we can improve the app. This data is not linked to your identity, and we do not use it for advertising, profiling, or selling data. See §2.7 for full details.
2. What Data the App Uses
2.1 Data You Enter
The App stores the following data locally on your device only:
- Time zones you add to your list
- The city you select as Home
- Work hours you configure for each zone
- Groups you create and their members
- App preferences (sort order, appearance, 24-hour time, notification settings)
- Display labels you apply to zones
This data is stored in your device's local storage (UserDefaults / on-device JSON). It never leaves your device unless you explicitly enable iCloud Sync (see §2.3).
Apple Watch (version 1.7 and later). If you use the Time Zone Buddy Apple Watch app, your iPhone sends your time zones, Home city, work hours and display settings to your paired Apple Watch using Apple's Watch Connectivity framework, a direct device-to-device channel between your own iPhone and Watch. It does not pass through any server of ours. The Watch keeps a copy on the Watch for its app and complications. It has no analytics or crash reporting of its own. Instead, about once a day it sends your iPhone a short count of how the Watch app was used: how often it was opened, which screens and complications were used, and which of its complications and Smart Stack cards are on your watch faces. Your iPhone then includes that count in the app's analytics (§2.7). The count contains numbers only, never your cities, times or names.
Widget ranking (version 1.7 and later). To put the widget you use most at the top of a Smart Stack, Time Zone Buddy keeps simple counts on your device of how often you use its meeting and heads-up features. For example, it counts how often you open the meeting planner or the Alerts list, or tap one of its widgets. These counts stay in the app's own storage on your iPhone. They go only to your own paired Apple Watch, with your time zones, and the Watch adds its own taps. They are never sent to us or to analytics, and deleting the app deletes them.
2.2 Location Data (Optional — Travel Mode only)
By default the App does not request or use your device's GPS location.
Time zones are derived solely from your explicit searches, your device's system timezone setting, and MapKit city search results (address/timezone lookup only — no GPS involved). MapKit search is handled by Apple's servers, subject to Apple's Privacy Policy.
Optional exception (Travel Mode, version 1.4 and later). If you choose Use Precise Location after arrival or under Settings → Home & Travel → Precise Location, the App requests When In Use location access to show accurate sunrise/sunset for where you are and to determine the state/province you are travelling in so that Plus and Lifetime away public holidays are precise where available.
- It is entirely optional. Travel Mode works without it — travel is detected from your device's time-zone change alone, and sunrise/sunset falls back to your time-zone's approximate centre, with no location access.
- The first request occurs only after you choose Use Precise Location. Once authorized, the App may request bounded fixes after a time-zone change and when you foreground the App with a fix at least six hours old. It never monitors location continuously or requests background access.
- Access is When In Use only (never “Always”), at coarse (kilometre) accuracy.
- On Mac, macOS asks once for Location Services access (it has no separate “While Using” choice); the App uses it in exactly the same bounded, opt-in way.
- The coordinate is sent to Apple's MapKit geocoding service only to resolve it into a city and state/province name — the same Apple framework used by map search.
- The coarse coordinate and resulting subdivision label (e.g. “NSW”) are cached only on your device, keyed to the current time zone so a previous trip's fix is never reused. This lets Away sunrise/sunset stay accurate across launches and in widgets.
- The coordinate is sent to SunriseSunset.io to retrieve solar data as described in §2.8.
- The coordinate and location-derived values are never sent to our servers (we have none), included in analytics, linked to your identity, or used for tracking. Analytics records only whether location permission was authorized, denied, or restricted.
2.3 iCloud Sync (Plus, or Lifetime with the iCloud Sync add-on)
If you subscribe to Time Zone Buddy Plus (or own Lifetime and add the iCloud Sync add-on) and enable iCloud Sync, your time zone list, groups, and selected Home city are synced across your Apple devices using Apple's iCloud Key-Value Storage (NSUbiquitousKeyValueStore).
| Uploaded to our servers? | No |
| Where stored? | Your personal iCloud account (Apple's infrastructure) |
| Who can access it? | Only you, via your Apple ID |
| How to disable? | Settings → Sync → disable iCloud Sync within the app |
| How to remove? | Delete the app, or go to iOS Settings → Apple ID → iCloud → Manage Storage → Time Zone Buddy → Delete Data |
2.4 Notifications
If you enable DST notifications (Lifetime/Plus tier), the App schedules local notifications on your device using Apple's UNUserNotificationCenter framework. Notifications are scheduled entirely on-device — no network request is made. Manage permissions in iOS Settings → Time Zone Buddy → Notifications.
2.4a User-Selected File Exports (macOS)
When you choose to export a time-zone card or meeting result, macOS displays its standard Save panel.
- The App receives access only to the file destination you explicitly select
- Access is used only to write the requested PNG, TSV, or text file and is not retained afterward
- The selected file path and exported content are not sent to us, included in analytics, or uploaded to any server by the export feature
- Cancelling the Save panel grants no file access and writes nothing
2.5 In-App Purchases
Purchases (Lifetime, Plus Monthly, Plus Annual) are processed entirely by Apple's App Store using StoreKit 2. We do not handle payment information. Subject to Apple's App Store Privacy Policy.
2.6 MapKit
The App uses MapKit (Apple Maps) to look up cities: city search, when you search for a city that is not in the App's built-in coordinate table (your query is sent to Apple's servers to return matching places and their coordinates), and optional geocoding, if you opt into Travel Mode's Precise Location (the coarse coordinate is resolved into a city and state/province name by the same Apple framework). See §2.2.
Map thumbnails, up to version 1.4. In these versions the zone Detail screen also showed a city map thumbnail, which fetched map tiles from Apple's servers each time you opened a city. Version 1.5 removes it — that header is now a sky gradient drawn on-device from the city's own sunrise and sunset times, so opening a city no longer requests map tiles.
In both cases the only data sent to Apple is the city's geographic coordinate. No personal data is sent. Subject to Apple's Privacy Policy.
2.7 Firebase Analytics and Crashlytics (Google)
The App uses Firebase Analytics and Firebase Crashlytics (provided by Google LLC) to collect non-personal usage and diagnostic data to help us understand how the app is used, diagnose crashes, and improve it.
What Firebase Analytics collects
- App events — actions taken in the app (e.g. "zone added", "meeting overlap run", "purchase completed", "onboarding completed"). Events use Google's recommended event taxonomy.
- App version and OS version — to understand compatibility
- Device category — phone, tablet or Mac (not a unique identifier)
- Session data — aggregate session counts and duration
- Apple Watch use (version 1.7 and later) — whether an Apple Watch with the Time Zone Buddy app is paired, and the Watch's daily usage counts, sent by your iPhone (§2.1)
- Country / region — derived from IP address at collection time; the IP itself is not retained
Firebase Crashlytics collects crash reports and related diagnostics, including stack traces, app and OS versions, device model and state, and a Firebase installation identifier needed to group crashes. Crash reports do not include the cities, groups, work hours, precise location, or other content you enter in the App.
What Firebase Analytics does NOT collect
- ✗ Your name or any contact details
- ✗ Your device's advertising identifier (IDFA) — ad personalisation is disabled
- ✗ Your precise location (GPS)
- ✗ The content of your time zones, groups, or work hours
- ✗ Search queries you type into the app — we record that a search happened, never the text
- ✗ Names of groups you create — only an anonymous bucket of how many groups you have
- ✗ Any data that identifies you personally
How the data is used
- To understand which features are popular and which need improvement
- To measure the success of new features
- To count installs and active users in aggregate
We do not use Firebase Analytics or Crashlytics data for advertising, profiling, or sale to third parties.
Data handling
Firebase Analytics and Crashlytics data is processed by Google LLC in accordance with Google's Privacy Policy and the Firebase Privacy and Security documentation. Analytics event data is retained for the configured Firebase Analytics retention period; crash data is retained under Firebase Crashlytics' retention policy.
2.8 SunriseSunset.io (Solar Data)
The App fetches sunrise, sunset, golden hour, and blue hour times from SunriseSunset.io — a free, open-source solar data API.
- The only data sent is the geographic coordinate (latitude/longitude) of a location you have added and the date range being fetched
- No personal data, device identifiers, or account information is sent
- Data is fetched once per year per location and cached locally on your device — it is not synced to iCloud and is excluded from device backup
- No data passes through our servers
Provider: sunrisesunset.io
2.9 Public Holiday Data (built in)
In version 1.7 and later, public holidays come from data built into the App, generated from the open-source Open World Holidays Framework by the Vacanza Team (MIT licence), with corrections by us, and updated with each App update.
- From version 1.7, no network request is made for public holidays, and nothing about your locations is sent anywhere to show them
- The data ships inside the App and is read on your device only
- See something wrong? Report it opens a draft email to us in your own email app, with the country, city, app version and data version filled in. Nothing is sent unless you send the email, and it goes to us, not to the holiday project
- Versions before 1.7 fetch holidays (Lifetime and Plus only) from Nager.Date, a free, open-source public holiday API (MIT licence; date.nager.at). The only data sent is the ISO country code (e.g. “AU”, “US”) of locations you have added and the calendar year being fetched, plus a weekly version check that sends each cached country code. No personal data, device identifiers or account information is sent, nothing passes through our servers, and the cache stays on your device (not synced to iCloud, excluded from device backup)
- Version 1.7 and later no longer use that service, and delete the holiday cache those earlier versions stored on your device the first time they run
2.10 Market Hours (version 1.7 and later)
Stock-exchange trading days and hours are built into the App (generated from the open-source Open World Holidays Framework and each exchange's published timetable). Nothing is fetched and nothing is sent to show them.
- The exchanges you choose to follow are stored only on your device. They are not synced to iCloud and are not sent to our servers
- Firebase Analytics events for this feature may include a public stock-exchange code (for example “XNYS” for the New York Stock Exchange) and a status such as “open” or “holiday” — never a city, time zone or location
- The information is not financial advice; exchanges can close at short notice
2.11 Website Analytics & Cookies (tzbuddy.app)
This website uses Firebase Analytics (Google) to understand which pages and features are popular, using an anonymous analytics cookie/identifier. As in the App, it is not used for advertising, profiling, or the sale of data.
- Analytics load only after you accept in the cookie banner — if you decline, no analytics cookies are set and nothing is sent to Google
- Your choice is stored locally on your device; you can change it at any time via the Cookie Settings link in the footer
- No account, name, or contact details are collected, and the website sets no advertising or cross-site tracking cookies
3. Data We Do NOT Collect
We explicitly do not collect or use:
- ✗ Names, email addresses, or contact details
- ✗ Device advertising identifiers (IDFA, IDFV) — ad personalisation is disabled
- ✗ Personal analytics linked to your identity
- ✗ GPS or precise location for tracking, advertising, or profiling (in version 1.4 and later, Travel Mode may, only if you explicitly enable it, use bounded coarse location fixes for accurate Away solar data and regional details — see §2.2; the coordinate is cached only on your device and never sent to our servers or analytics)
- ✗ Contacts, calendar, or health data
- ✗ Microphone, camera, or Face ID data
- ✗ The content of your time zones, groups, or preferences (Firebase only receives event names, not your data)
- ✗ Search terms you type into the app
- ✗ Names of groups you create
4. Third-Party Services
| Service | Provider | Purpose |
|---|---|---|
| MapKit | Apple | City map thumbnails in Detail view — removed in version 1.5 |
| MKLocalSearch | Apple | City/address search when adding zones |
| CoreLocation / MapKit geocoding | Apple | Optional bounded coarse location fixes → accurate Away sunrise/sunset + state/province for regional Away holidays (Travel Mode, version 1.4 and later) |
| iCloud KV Store | Apple | Optional sync (Plus, or Lifetime with the iCloud Sync add-on) |
| App Store / StoreKit | Apple | In-app purchases |
| UNUserNotificationCenter | Apple | Local DST notifications (on-device only) |
| Watch Connectivity | Apple | Sends your zones from your iPhone to your paired Apple Watch (version 1.7 and later) — device to device only |
| Firebase Analytics and Crashlytics |
Google LLC Privacy Policy · Firebase Privacy |
Non-personal usage analytics and crash diagnostics |
| SunriseSunset.io |
SunriseSunset.io sunrisesunset.io |
Solar data (sunrise, sunset, golden/blue hour) — coordinate + date sent only; no personal data |
| Open World Holidays Framework (built in) |
Vacanza Team (MIT licence) github.com/vacanza/holidays |
Public holiday data shipped inside the App (version 1.7 and later) — no network request, no data sent; nothing leaves your device |
| Nager.Date |
Nager.Date (MIT licence) date.nager.at |
Public holiday data in versions before 1.7 (Lifetime/Plus only) — ISO country code + year sent on fetch; weekly version check sends country code only; no personal data |
5. Children's Privacy
The App has an age rating of 4+ on the App Store. It does not knowingly collect personally identifiable information from anyone, including children under 13 (or under 16 in the EU). Firebase is configured without advertising identifiers, and its usage and diagnostic data is not linked to identity or used for tracking.
6. Data Retention and Deletion
On-device data: All data stored locally is deleted when you uninstall the App.
iCloud data (Plus subscribers): Synced data in your iCloud account is controlled by you. To delete it:
- Uninstall Time Zone Buddy from all your devices
- Go to iOS Settings → [Your Name] → iCloud → Manage Storage → Time Zone Buddy → Delete Data
Firebase data: Analytics event data and Crashlytics diagnostics are retained under the configured Firebase retention policies. We have no ability to identify or delete an individual's records because the data is not linked to their identity.
There is no "delete my account" flow because there is no account. Uninstalling the App removes all local data.
7. International Data Transfers
On-device data: Not transferred.
iCloud data: Transferred between your devices via Apple's infrastructure, subject to Apple's GDPR compliance.
Firebase data: Processed by Google LLC, which may involve transfers to the United States and other countries. Google complies with applicable data transfer frameworks including EU Standard Contractual Clauses. See Google's data transfer documentation for details.
8. Your Rights
Because we collect no personally identifiable data, there is nothing to access, correct, export, or delete from our systems.
For Firebase Analytics and Crashlytics data: individual record access or deletion is not possible because the data is not linked to your identity.
If you have questions about data held by Apple (iCloud, App Store), refer to Apple's privacy contact at privacy.apple.com.
9. Security
All data is stored on your device using standard iOS security (encrypted at rest when the device is locked). iCloud data is encrypted in transit and at rest by Apple. Firebase data is transmitted over HTTPS.
We have no backend servers that could be breached to expose your personal data.
10. Changes to This Policy
We may update this Privacy Policy from time to time. The "Last updated" date at the top of this document will reflect any changes. We will not retroactively apply changes to collect data that we don't currently collect.
If we introduce new data collection beyond what is described here, we will clearly communicate this to users before the change takes effect, and obtain consent where required by law.
11. Contact
If you have questions or concerns about this Privacy Policy or the App's privacy practices, please contact us:
Email: scott.breen.dev@outlook.com
Support page: timezonebuddy support
12. Legal Basis (GDPR — EU Users)
For users in the European Economic Area (EEA) and United Kingdom:
- On-device data: No legal basis required — processing occurs entirely on your device under your control.
- iCloud Sync: Any processing by Apple is governed by Apple's Data Processing Agreement with EU Standard Contractual Clauses.
- Firebase Analytics and Crashlytics: Processed under our legitimate interest in understanding aggregate app usage, maintaining reliability, and improving the product (Article 6(1)(f) GDPR). The data is not linked to identity and no individual profiling occurs.
13. California Privacy Rights (CCPA)
For California residents: We do not sell personal information. We do not share personal information for cross-context behavioural advertising. Firebase Analytics data collected is not linked to your identity and is not "personal information" under CCPA. There is no personal information to access, delete, or correct because none is collected.
14. App Store Privacy Nutrition Label
| Category | Collected | Linked to Identity | Used for Tracking |
|---|---|---|---|
| Contact Info | ✗ No | — | — |
| Location | ✗ No | — | — |
| Identifiers | ✓ Yes (Firebase installation identifier) | ✗ Not linked | ✗ No |
| Purchases | ✓ Yes (by Apple) | Apple ID only | ✗ No |
| Usage Data | ✓ Yes (Firebase) | ✗ Not linked | ✗ No |
| Diagnostics | ✓ Yes (Firebase Crashlytics) | ✗ Not linked | ✗ No |
| User Content | ✗ No | — | — |
| Financial Info | ✗ No | — | — |
Third-party partners: Google LLC (Firebase Analytics and Crashlytics — non-personal usage and diagnostic data).
Location note: Time Zone Buddy declares Location: Not Collected because it never transmits your location to us. In version 1.4 and later, Travel Mode's optional Precise Location uses bounded, coarse, When-In-Use fixes to provide accurate Away sunrise/sunset and resolve a state/province via Apple's geocoder (see §2.2). The coordinate is cached only on the device, is never included in Firebase, linked to identity, or used for tracking, and is sent to SunriseSunset.io only to return solar data (see §2.8).
© 2026 Scott Breen · Time Zone Buddy. All rights reserved.
This privacy policy was last reviewed by the developer on 12 August 2026.