Privacy policy

What Departures does with your information

Effective October 23, 2026

Departures is a personal iPhone app that shows your day as split-flap boards, in StandBy widgets and on a work display. This page explains, in plain language, what the app reads, where each request goes, what stays on your iPhone, and how to disconnect. It covers the app, its widgets, and this website.

Departures is a personal project by one developer (GitHub: samporter14). “I” below means that developer.

The short version

  • No accounts with me. You never create an account for Departures.
  • No servers of mine. I run none, so I never receive your calendar, tasks, location or anything else. I can’t see it, sell it or share it.
  • No analytics, ads or tracking. The app contains no analytics, advertising or tracking code and no third-party software libraries.
  • Requests go straight from your iPhone to the services you turn on (Google, Todoist, Open-Meteo, a bus agency, ESPN), over HTTPS. They are listed below.
  • Everything the app keeps is on your iPhone: sign-ins and keys in the Keychain, settings and the latest copy of each board in the app’s shared storage.
  • Read only. Departures never creates, changes, completes or deletes anything in your calendars or task apps.
  • You can disconnect any service in the app, and revoke access at Google or Todoist, whenever you like.

What Departures does not do

What each board reads, and where the request goes

A board only makes requests once you have set it up. Boards you haven’t set up make none. Like any app or website, each service you connect can see your iPhone’s IP address and the time of the request, plus a short User-Agent that names the app and its version. Departures sends no device identifier, and each service’s own privacy policy applies to what it receives.

Clock, My board and the work display

Reads
The iPhone’s clock; the text you type into My board; and, on the work display, whether the iPhone is charging (so it can say when it isn’t).
Goes to
Nowhere. These boards make no requests.

Calendar, from the calendars on your iPhone

Asks iOS for
Full calendar access, which iOS requires in order to read event titles.
Reads
Titles, start and end times, the all-day flag and calendar names of events from the start of today through the next two days, from the calendars you choose (every calendar by default, including Google, iCloud and Exchange calendars you have added to the iPhone).
Goes to
Nowhere. Events are read on the iPhone and never leave it.
Never
Creates, edits or deletes an event.

Calendar, from a secret iCal address

Reads
A calendar’s iCal feed, using the “secret address in iCal format” you paste in (for Google Calendar: Settings, the calendar, Integrate calendar). That feed can hold a calendar’s whole history, so Departures reads it as a stream and keeps only the next couple of days.
Goes to
The address’s own host, calendar.google.com for a Google calendar. The app also accepts addresses on outlook.office365.com, outlook.live.com and iCloud (icloud.com) and refuses any other host.
Sent
An ordinary request for that address. The address is itself the credential, so it is part of the request. There is no Google sign-in for this.
How often
Roughly every ten minutes at most for each calendar. The app and its widgets each keep their own ten-minute timer.

Google Tasks

Sign-in
Google’s own sign-in page, shown in the system’s web sign-in sheet (accounts.google.com), which can use the Google session already in your browser. Departures never sees your Google password.
Asks Google for
Permission to view your tasks (read-only), plus basic sign-in and your email address, so the app can show which account is connected.
Goes to
oauth2.googleapis.com to exchange the sign-in for tokens and to renew them, and tasks.googleapis.com to read your task lists and open tasks.
Reads
The names of your task lists, and each chosen list’s open tasks: title, due date (Google keeps no time), position and parent task. Completed, deleted and hidden tasks are not requested.
Never
Creates, edits, completes or deletes a task. The permission it holds cannot.
Note
While the app’s Google project is in Google’s testing stage, Google ends each sign-in after seven days. Departures then shows Reconnect, and it schedules a reminder notification on your iPhone shortly before that.

Todoist

Connect with
Todoist’s sign-in (read-only data:read permission), or a personal API token you paste in from Todoist’s developer settings.
Goes to
api.todoist.com, and Todoist’s own sign-in service when you connect with sign-in.
Reads
Tasks for the view you choose (today and overdue, next seven days, high priority, or your own filter): title, priority, due date and time, project and whether it is done. For “Upcoming reminders” it also reads your reminders.
Sent
Your token, and the filter text for the view you chose. If you write a custom filter, that text goes to Todoist exactly as typed.
Never
Adds, changes, completes or deletes a task. Notifications still come from Todoist, not Departures.

Weather

Goes to
Open-Meteo: api.open-meteo.com for the forecast and geocoding-api.open-meteo.com for city search.
Sent
A latitude and longitude, your temperature unit, and a request for the local time zone. The coordinates are either your iPhone’s location rounded to two decimal places (about 1 km) before it is saved or sent, or the coordinates of a city you chose. When you search for a city, the words you type (two letters or more) go to Open-Meteo’s search.
Reads
Current temperature and feels-like, today’s high and low, and the rain chance for the coming hours.
Location
Optional. If you allow it, Departures asks iOS for an approximate position once, when weather is due, and does not track you continuously. The saved position is ignored after 24 hours, and it is deleted as soon as you turn off Follow iPhone location. You can choose a fixed city instead and never share location.

Transit

Goes to
Your chosen agency’s bus-prediction service: TheRide (rt.theride.org) or U-M Magic Bus (mbus.ltp.umich.edu).
Sent
The API key you got from the agency (their service takes it as part of the request), and the route, direction and stop you chose. The app doesn’t send your location; you pick the stop.
Reads
Lists of routes, directions and stops, and the next predicted departures at your stop.

Sports

Goes to
ESPN’s public site data, site.api.espn.com. It has no account or key, and isn’t an official API.
Sent
The league, team and game identifiers and the dates it needs for the teams you follow. Nothing else about you, beyond what any web request reveals.
Reads
Team lists for the picker, each followed team’s next game, and live scores and recent finals.

Those are all of the places the app contacts. Departures only connects to the hosts above, over HTTPS, and follows redirects only within the same host. It uses a temporary network session that writes no cookies or web cache to disk.

iPhone permissions and local features

What is stored, and where

Everything is stored on your iPhone. Nothing is stored on a server of mine, because there isn’t one.

In the iPhone Keychain

These items are readable after the iPhone has been unlocked once since it started, so that widgets can refresh on a locked StandBy display. They are marked “this device only”, so they don’t sync through iCloud Keychain or move to a new phone. The app and its widgets share them through the app’s own Keychain access group.

In the app’s shared storage (an App Group)

Backups and deleting the app

The app’s saved settings and board copies are part of your iPhone’s backups, as with any app. Deleting the app removes its stored settings and board copies. To make sure its sign-ins and keys are removed as well, use Disconnect in the app before you delete it.

Widgets

Departures’ widgets run in separate extensions that read the same shared storage and Keychain, and make the same kinds of request directly. iOS decides when a widget refreshes. Weather has its own extension so that the other widgets never ask for location. The Protect personal boards setting lets iOS hide Calendar, Todoist, Google Tasks, transit and My board content when its privacy protection is active, for example on a locked screen.

Disconnect and revoke

In the app. Each board’s settings has a Disconnect (Todoist, Google, a transit agency), and a calendar address can be removed from the list. That deletes the sign-in, token, key or address from your iPhone, clears that board’s saved data and refreshes its widget. Turning off Follow iPhone location deletes the saved location. iOS Settings can turn off calendar and location access.

At the source. Disconnecting inside Departures forgets the sign-in on your iPhone only. It does not contact Google or Todoist. To withdraw the permission itself:

The Todoist sign-in return page

When you sign in to Todoist from Departures, Todoist sends your browser back to a page on this site, samporter14.github.io/departures/todoist/callback/, with a single-use code in the address. That page does one thing: a few lines of JavaScript pass the code straight on to the Departures app on your iPhone. The page stores nothing, loads nothing from any other site, sends nothing anywhere else, and sets a “no-referrer” policy so the address isn’t passed along when you leave it. It doesn’t display the code. The page is just a static file, but it is hosted by GitHub Pages, and GitHub may log requests to it like any web host (see This website).

Google user data

This section applies to information Departures receives from Google when you sign in with Google for the Google Tasks board.

Departures’ use and transfer to any other app of information received from Google APIs will adhere to the Google API Services User Data Policy, including the Limited Use requirements.

This website

The home page and this policy are plain pages: no cookies, no scripts, no web fonts, no analytics and nothing loaded from other sites. They are hosted by GitHub Pages, which, like any web host, may keep ordinary request logs under GitHub’s privacy statement. Links to other sites (Google and GitHub) leave this site, and those sites have their own policies.

Not affiliated

Departures is not created by, affiliated with, or supported by Todoist, and likewise not by Google, Apple or ESPN. It also has no connection with Open-Meteo, TheRide or the University of Michigan, whose public data it displays. Todoist, Google, Google Tasks, Apple, iPhone, StandBy and ESPN are trademarks of their owners.

Children

Departures isn’t directed at children. Because I receive no data from anyone, I don’t knowingly collect information from children or from anyone else.

Changes

If the app starts to do something that changes this policy (a new service, say), I’ll update this page and its effective date before that version is used. Please check the date at the top.

Contact

Questions about this policy or the app: open an issue on GitHub. Please don’t include tokens, secret calendar addresses or other private details in a public issue.