132 lines
4.8 KiB
Markdown
132 lines
4.8 KiB
Markdown
# User Guide
|
|
|
|
TimeToLeave helps you answer one practical question: when do I need to leave for my next appointment?
|
|
|
|
The app imports events with locations, finds the nearest usable transport station, checks live train and local transit data, calculates walking or biking time, and shows a live leave-by countdown.
|
|
|
|
## Web Dashboard
|
|
|
|
### Departure Desk
|
|
|
|
Open `/` to see the next upcoming event. The card shows:
|
|
|
|
- Event title and appointment time.
|
|
- Destination address or place.
|
|
- A live countdown badge.
|
|
- Leave-by, arrive-by, and buffer times.
|
|
- Train and bike mode selector.
|
|
- Train journeys with delay, platform, cancellation, arrival, and transfer information.
|
|
- Optional final walking route from the arrival station to the destination.
|
|
- Optional door-to-door bike route.
|
|
- Nearby Wiener Linien stops and live departures when destination coordinates are available.
|
|
|
|
The dashboard currently focuses on the next upcoming event. Imported and manually added events are stored locally in the browser.
|
|
|
|
### Add or Edit Events
|
|
|
|
Use the add/edit event modal from the web interface to create or change local events. Editing is modal-based; there is no separate `/add-event` page.
|
|
|
|
### Calendar Page
|
|
|
|
Open `/calendar` to import and review events.
|
|
|
|
Available import sources:
|
|
|
|
| Source | Description |
|
|
| --- | --- |
|
|
| URL | Paste an allowed public ICS URL. The backend fetches and parses future events with locations. |
|
|
| File | Upload a local `.ics` file. The backend parses the file content. |
|
|
| Google | Connect Google Calendar through OAuth, sync events, and disconnect when needed. |
|
|
|
|
Imported events are merged into local storage. The calendar view also includes batch destination editing so locations can be corrected before using them for route planning.
|
|
|
|
## Mobile App
|
|
|
|
The mobile app includes:
|
|
|
|
- Event list.
|
|
- Add/edit event screen.
|
|
- Event detail screen.
|
|
- Calendar import screen.
|
|
- Settings screen.
|
|
|
|
### Calendar Import
|
|
|
|
The mobile calendar import screen supports:
|
|
|
|
- ICS URL import through the configured backend.
|
|
- Native device-calendar sync for the next 30 days.
|
|
- Calendar selection before native sync.
|
|
- Source grouping for CalDAV/DAVx, Apple, Google, Exchange, subscribed, local, CardDAV, ActiveSync, and other calendars when the device reports that metadata.
|
|
|
|
If no native calendar selection is saved, the sync uses all available calendars.
|
|
|
|
### Event Detail
|
|
|
|
Tap an event to see:
|
|
|
|
- Leave-by and arrive-by times.
|
|
- Train journeys from the saved origin station to the destination station.
|
|
- Optional walking route for the final leg.
|
|
- Optional bike route.
|
|
- Nearby destination stops and live Wiener Linien departures.
|
|
|
|
### Settings
|
|
|
|
Use settings to configure:
|
|
|
|
- Origin station.
|
|
- Current-location origin lookup.
|
|
- Reminder buffer.
|
|
- Arrival buffer.
|
|
- Walking option visibility.
|
|
- Bike option visibility.
|
|
- Notifications.
|
|
- Dark/light theme.
|
|
|
|
## Leave-By Status
|
|
|
|
The countdown and leave-by time are calculated from the selected transport mode.
|
|
|
|
For train mode, the app looks for a non-cancelled journey that arrives early enough after accounting for the final walk and arrival buffer. For bike mode, it subtracts the bike route duration from the target arrival time.
|
|
|
|
Countdown colors:
|
|
|
|
| Color | Meaning |
|
|
| --- | --- |
|
|
| Red | Leave time is now or already passed. |
|
|
| Orange | Leave time is within 10 minutes. |
|
|
| Yellow | Leave time is within 30 minutes. |
|
|
| Green | Leave time is within 60 minutes. |
|
|
| Blue | More than 60 minutes remain. |
|
|
|
|
Text statuses can include:
|
|
|
|
| Status | Meaning |
|
|
| --- | --- |
|
|
| `Leave now` | The selected departure is close enough that you should go. |
|
|
| `On time` | The selected connection is currently usable. |
|
|
| `Delayed +N min` | The selected journey is delayed by more than 10 minutes. |
|
|
| `Departure missed` | The selected departure has already left. |
|
|
| `All journeys cancelled` | Every returned journey is cancelled. |
|
|
| `No journey data` | No usable journey data is available. |
|
|
|
|
## Notifications
|
|
|
|
Web reminders use browser notifications when permission is granted. Mobile reminders use local Expo notifications.
|
|
|
|
Mobile notifications are scheduled from stored events and settings. Because the mobile store does not retain live journey data, scheduled notification times use a conservative fallback based on event time, arrival buffer, and reminder buffer.
|
|
|
|
## Data and Privacy
|
|
|
|
Event data is stored locally in the browser or on the device. Some features send the minimum required request data to external services:
|
|
|
|
- Destination text is sent to Nominatim for geocoding.
|
|
- Coordinates are sent to OSRM for bike/walk route calculation.
|
|
- Station IDs and journey times are sent to ÖBB HAFAS.
|
|
- Coordinates or stop IDs are sent to Wiener Linien for nearby stops and departures.
|
|
- Google Calendar sync uses Google OAuth and server-side token cookies.
|
|
- Remote ICS imports fetch the provided calendar URL through the backend.
|
|
|
|
See the root [Privacy Policy](../PRIVACY_POLICY.md) for more detail.
|