Skip to content
MadSchedule

Privacy Policy

Effective date:

How MadSchedule handles your schedule, university sign-in, iCloud sync, location, and notifications. The short version comes first, then the details.

On this page

Summary

  • The app does not send your data to us. We do not run a server for MadSchedule, and MadSchedule does not create or manage its own user accounts. We get only what you email us and the statistics that Apple gives developers (see What we do not collect).
  • Your schedule stays in the app on your device, unless you export or share it. If iCloud sync (copying your schedule between your devices) is on, a copy also goes to your own iCloud Drive. Apple stores that copy under your Apple Account, and we cannot open it.
  • No ad, analytics, or tracking code. We do not sell your information or use it for ads.
  • Location is optional. The app uses it only on course detail screens and the Today screen, for building maps, directions, and travel times. For travel times, the app sends your location to Apple’s map service. The app does not save your location.
  • UW sign-in goes to UW and Duo. The app reads your class schedule and NetID (your UW username) from the schedule page. It does not save your password or Duo codes.
  • You control deletion. To delete your schedule, use Clear schedule data (in the app, Settings > Schedule) on each device. Then delete the iCloud copy in iOS Settings (see the steps in Deleting your data).

The sections below give the technical details for each point.

Who we are

MadSchedule is an iOS app for university class schedules. Haixing Zhu and Haoyu Zhang are the two independent developers of MadSchedule. In this policy, “we” and “us” mean the two developers.

MadSchedule has no affiliation with the University of Wisconsin–Madison. The university, Duo, and Apple operate their own services. Their sign-in, logging, data storage, and privacy practices apply to those services.

What we do not collect

We do not operate a server for MadSchedule. The app does not send your schedule, NetID, location, or settings to us. The app has no advertising, analytics, tracking, or third-party crash-reporting code.

Two exceptions are not part of the app:

  • Email. If you email us, we receive your email address and your message. We use them only to reply to you and to fix problems that you report.
  • Apple statistics. Apple always gives developers App Store totals, such as the number of downloads. Apple can also give developers crash and usage reports. To turn off these reports, open iOS Settings > Privacy & Security > Analytics & Improvements. Then turn off Share With App Developers. See Apple’s App Analytics & Privacy page.

What the app saves on your device

In short: the app saves your schedule and a few settings in its own storage on your device.

The app saves this information:

  • Schedule: course names and codes, terms, sections, meeting days and times, date ranges, class format, buildings and rooms, and exam details when available.
  • Import records: where each course came from, update times, and records that keep your own edits separate from later imports.
  • NetID: after a UW sign-in import, the app can save your NetID. Settings shows it so you know which account you imported.
  • Settings: which public calendars you show, whether reminders are on, and how early reminders come.
  • Public calendar data: UW academic dates and deadlines that the app downloads (see Public calendar downloads).
  • Sync records: if iCloud sync is on, the app saves records to match changes between devices. These records can contain extra copies of schedule data until the upload is complete and the app combines the changes from your devices.

If schedule storage becomes damaged, the app saves the damaged files for recovery. It does not delete them silently. Clear schedule data deletes these files when the operation succeeds.

The app does not set an expiry date for your schedule. Device backups and files that you save outside the app are not part of the app’s storage.

Schedule import and UW sign-in

In short: you can sign in with UW, import a JSON file (a schedule data file), or type your courses yourself. Of these three ways, only UW sign-in contacts the university from inside the app.

UW sign-in

UW sign-in opens the university and Duo sign-in pages in a browser inside the app. You give your sign-in information to those services, not to MadSchedule.

After you sign in, the app reads your course schedule and, when available, your NetID from the UW schedule page. The app does not save your password or Duo codes.

The in-app browser uses temporary website storage that the app keeps only in memory. The browser session stays open while the import screen is open, including retries and some error screens. When you close the import screen, the app stops using that session. Each new import starts a new, separate session. When the app starts, it also deletes website data that older versions of its sign-in browser left.

If you close the import screen, UW and Duo keep their records. The app does not sign you out of other browsers.

JSON import and manual entry

The app reads a JSON file that you choose and shows it to you for review on your device. The original file stays where it was, under the control of its storage provider.

The import screen links to MadSchedule Exporter on GitHub. That tool is a separate browser script that makes a JSON file from your UW schedule page. It runs in your browser, not in the app.

Manual entry does not need a university sign-in. Imported courses and courses that you add yourself use the same storage. Both can sync through iCloud.

What an import changes

An import replaces the imported courses for the terms that it updates. It keeps the courses that you added yourself. If a UW import cannot update a term, the app can keep the earlier data for that term.

Demo Mode

You can turn on Demo Mode in Settings to explore MadSchedule with a bundled sample schedule, without signing in to UW. Sample courses and changes you make in Demo Mode stay in a temporary session and are discarded when you exit. They do not replace your saved schedule, sync to iCloud, or trigger real class reminders. The iCloud and notification controls in Demo Mode use separate previews rather than your real iCloud data or device reminders.

Demo Mode does not simulate a successful UW sign-in. If you choose UW sign-in while using it, the app can still open the university and Duo pages. Public calendar downloads, maps, weather, and other available features may contact their usual services. If you export or share the sample schedule, that creates a separate copy outside the temporary demo session.

iCloud sync

In short: sync puts a copy of your schedule in your own iCloud Drive. It is on by default, and you can turn it off.

MadSchedule uses iCloud Drive with your Apple Account. It does not use a developer database. Apple stores the iCloud copy, and we cannot open it.

Sync sends this information to your iCloud Drive:

  • Imported courses and courses that you added yourself.
  • Your NetID, if the app has it, and import records.
  • Edit records, settings for which public calendars you show, and reminder settings.
  • Records that match changes and deletions between your devices.

Sync does not send your location, your heading (the direction your phone points), or the UW browser session.

When sync runs

Sync is on by default on new installations and needs an iCloud account on the device. UW and JSON imports keep your current sync setting. If you have turned sync off, importing a schedule does not turn it back on. Courses that you add or edit by hand also follow the current setting.

Sync runs while the app is open and when you return to it. If two devices have different versions of your schedule, the app can ask you which version to keep. If you change your Apple Account, sync stops until you reconnect it. The app does not delete your local data when this happens.

Turn sync off

You can turn off sync in the app, in Settings > iCloud. When you turn it off, the app stops sync on that device and deletes its local sync copies. It can keep damaged sync records, or sync records that it cannot read, for recovery instead of overwriting them.

When you turn off sync, the schedule that is already in iCloud stays there. The app cannot always cancel an upload that iCloud already started. If you turn sync on again, the app can restore that iCloud data.

Apple’s storage, protection, and retention of iCloud data depend on Apple’s services and your Apple Account settings. See Apple’s iCloud data security overview.

Location, maps, and weather

In short: location is optional. The app uses it only on course detail screens and the Today screen, and it does not save it.

Location and heading

The app asks for location access “while using the app.” It does not use location in the background. With your permission, the app uses your location and heading (the direction your phone points) to:

  • Show your position on a building’s map.
  • Show the direction to a building. The app calculates this direction on your device.
  • Estimate the travel time from where you are to your next class, including departure times on the Today screen.

Location updates start when you open a course detail screen, even for a course without a building. The Today screen starts them when your next in-person class has a known building. The app stops location updates when you leave these screens or when the app becomes inactive. It keeps your location and travel estimates only in memory. It does not save them in your schedule or in iCloud.

If you do not allow location access, the rest of the app still works. You can change this permission in iOS Settings.

Maps and directions

Building search uses a campus directory that is part of the app. Your search text stays on your device.

Maps and routes use Apple’s map service (MapKit). A route between two classes uses only the coordinates of the two buildings. A travel estimate from your current position sends your location to Apple as the start point. Apple receives the information that it needs for each map or route request. If you open directions in Apple Maps, Apple Maps handles that request.

Weather

Weather comes from Apple’s weather service (WeatherKit). The app asks for the weather at a fixed point on the UW–Madison campus, not at your location. The app keeps weather results only in memory. The app also loads the Apple Weather logo from Apple. If you open Apple’s Weather app, that app handles the request.

For Apple’s practices, see Apple’s Privacy Policy.

Public calendar downloads

The app downloads public academic dates and deadlines from UW–Madison websites. It can also do this during background refreshes that iOS schedules.

These requests do not include your schedule, your NetID, or cookies (small files that websites use to recognize you). The university’s servers can see ordinary connection information, such as your IP address (the network address of your device).

Notifications

In short: reminders come from your device, not from a server.

The app schedules class and exam reminders on your device after you allow notifications. It does not use a push notification server.

A reminder can show a course code, class or exam details, a time, and a location. Your notification settings decide if this text shows on the lock screen. You can turn reminders off or change their timing in the app. You can change notification permission and previews in iOS Settings.

Reminder settings can sync through iCloud. They do not give notification permission on another device. Each device needs its own permission.

Sharing and exporting

You can save your schedule as a calendar file (ICS) or share it as an image. Each export makes a separate copy of your course information. The place that you send it to controls that copy.

The app saves a temporary copy of a shared image on the device. When you make a new share image, the app can delete temporary images that are more than one day old. The app does not guarantee deletion after exactly one day. Clear schedule data does not delete copies that you saved or sent.

Deleting your data

In short: use Clear schedule data on each device, then delete the iCloud copy in iOS Settings.

Delete courses

You can edit or delete each course. If sync is on, a deletion also syncs to your other devices. The app saves a deletion record so that an older device cannot bring back a course that you deleted. This deletion does not reach copies in backups, exported files, or other places outside the app. A device with sync off gets the deletion when it syncs again. The app does not promise to delete every copy.

Clear schedule data

In the app, go to Settings > Schedule > Clear schedule data. This command deletes this device’s saved courses, exams, NetID, and damaged schedule files when the operation succeeds. It turns off sync on this device first.

It does not delete public calendar data or your settings. It does not delete the iCloud copy. If you turn sync on again, the iCloud copy can come back. The app can keep damaged sync records, or sync records that it cannot read, for recovery instead of overwriting them.

Delete the iCloud copy

The app has no command that deletes all iCloud copies. To delete them:

  1. On each device, turn off sync (in the app, Settings > iCloud) or use Clear schedule data. A device with sync on can upload the schedule again.
  2. Open iOS Settings, tap your name, then tap iCloud.
  3. Tap Storage or Manage Account Storage.
  4. If MadSchedule is in the list, tap it, then tap Delete Data from iCloud.

If MadSchedule is not in the list, email us for help.

Device backups in iCloud are in the Backups part of the same screen. See Apple’s guide to managing iCloud storage.

What stays after deletion

If you delete the app, your iCloud data, device backups, and exported files stay. UW, Duo, and Apple also keep their own records. Apart from emails that you send us and the Apple statistics in What we do not collect, we do not keep your data. To have us delete your emails, email us.

Your choices

  • Use JSON import or manual entry if you do not want to sign in with UW in the app.
  • Review JSON courses before you import them. Edit or delete saved courses at any time.
  • Turn iCloud sync off in the app. UW and JSON imports keep that setting, and you can turn sync on again in Settings whenever you want.
  • Use Clear schedule data to reset a device. Delete the iCloud copy separately.
  • Change location and notification permissions in iOS Settings. Features that need a permission do not work without it.
  • Change reminder timing and public calendar visibility in the app.
  • Decide if and where you save or share schedule files and images.

Children

We made MadSchedule for university students. We do not direct it to children under 13. We do not knowingly collect information from children, and the app does not send any personal information to us.

Changes to this policy

We can update this policy when MadSchedule’s features or data practices change. The date at the top of this page shows when the current version started to apply.

Contact

For questions about this policy, about how MadSchedule handles your information, or about deleting your data, email [email protected].