2.3 KiB
Privacy Policy
TimeToLeave is designed to keep user data local where possible. The app does not include third-party analytics or advertising trackers.
Data Stored Locally
- Web events and reminder settings are stored in browser
localStorage. - Mobile events, origin station, notification settings, theme, and selected native calendars are stored in
AsyncStorage. - Mobile notifications are scheduled locally through Expo notifications.
Data Sent to External Services
Some features require network calls to calculate routes or import calendars:
| Data | Sent to | Purpose |
|---|---|---|
| Destination text or address | Nominatim | Convert a place into coordinates. |
| Coordinates | OSRM | Calculate bike and walking routes. |
| Station IDs, dates, and times | ÖBB HAFAS | Search stations and live public-transport journeys. |
| Coordinates or stop IDs | Wiener Linien | Find nearby stops and live departures. |
| Calendar URL | TimeToLeave backend, then the calendar host | Fetch and parse remote ICS feeds. |
| Google Calendar authorization code and tokens | Google and the TimeToLeave backend | Connect and sync Google Calendar on web. |
| Device calendar event fields | Local mobile app process | Import native calendar events with locations. |
Remote ICS imports are restricted by server-side URL validation. Private and reserved hosts are blocked.
Google Calendar
Google Calendar sync is optional. When connected on the web app, OAuth tokens are stored in HTTP-only cookies and used only to fetch calendar events. Disconnecting Google Calendar deletes the token cookie.
Location
Location access is optional and used to find nearby stations or calculate routes. Coordinates may be sent to route, geocoding, or transit APIs only when the corresponding feature is used.
Calendar Data
Only events with locations are useful to TimeToLeave. Imported events are normalized to title, destination, event time, source, and ID. The app stores those normalized events locally.
Data Retention
Local data remains until the user clears app/browser storage, deletes events, disconnects Google Calendar, or uninstalls the app. Server-side proxy routes are intended for request handling and do not provide application-level persistent event storage.
Changes
This policy may be updated as the app changes. Updates are made in this repository.