Skip to content
MadSchedule

Privacy Policy

Effective date:

How MadSchedule handles schedules, university sign-in, iCloud synchronization, and optional device features.

On this page

Introduction

MadSchedule is an independent iOS app for managing university class schedules. It is not affiliated with the University of Wisconsin–Madison. This policy describes information handled by the app and distinguishes that handling from services operated by Apple, the university, and its authentication providers.

Information MadSchedule processes

MadSchedule processes the schedules you import or enter, including course names and identifiers, academic terms, class sections, meeting days and times, date ranges, delivery formats, buildings and rooms, and exam details when available. It also keeps import information, update times, and information needed to distinguish your edits from later imports.

UW sign-in imports can retain your NetID to identify the imported account and display it in Settings. App preferences include calendar source visibility, whether reminders are enabled, and reminder lead times.

Location and heading are used for campus directions and travel estimates with your permission, as explained under maps and third-party services.

Schedule import and university authentication

You can sign in with UW, choose a supported schedule JSON file, or add courses manually. JSON files are read and reviewed on your device. Manual entry does not require university sign-in. Imported and manually entered courses use the same local schedule storage and can participate in iCloud synchronization.

UW sign-in opens university and Duo authentication pages in an embedded browser. Those services handle the sign-in information you submit. After authentication, MadSchedule reads course schedule information and, when available, your NetID from the university schedule page. It does not copy your password or Duo verification codes into your saved schedule.

The embedded browser uses a temporary, nonpersistent website data store. Its session can remain available while an import is open, including retries and some failure screens. Closing the import ends MadSchedule’s use of that browser session. A new import starts with a separate, nonpersistent browser session. Closing the app’s import does not delete authentication records held by the university or Duo, or sign you out of other browsers.

An import updates the imported courses for the affected terms while retaining manual courses. A partial UW import can retain earlier data for terms that could not be refreshed. The JSON file you selected remains under the control of its original storage provider.

Local storage

Schedules, available NetID information, public calendar data, preferences, and synchronization state are stored on your device. Synchronization state can contain additional copies of schedule information while changes are reconciled or waiting to upload.

If schedule storage becomes damaged, recovery can preserve damaged files so data is not silently discarded. These copies are included in the app’s clear-schedule operation when it succeeds. Preferences and public calendar data have separate lifecycles.

The app does not set a fixed expiry period for your saved schedule. Device backups and files you save outside the app are managed separately from the app’s local storage.

iCloud synchronization

MadSchedule uses iCloud Drive to synchronize schedules across devices using your Apple Account. Synchronized information includes imported and manual courses, available NetID and import metadata, edit information, calendar visibility preferences, reminder preferences, and records needed to reconcile changes and deletions. Device location, heading, and university browser sessions are not part of the schedule synchronization document.

Synchronization is enabled by default and requires an available iCloud account. Completing a UW or JSON import enables synchronization again, even if it was previously turned off. You can turn it off in the app’s iCloud settings. Manual additions and edits follow the current synchronization setting.

Changes can synchronize while the app runs or returns to the foreground. Conflicting schedules may require your review. A change of Apple Account pauses synchronization and requires an explicit reconnect; existing local data is not automatically erased.

Turning synchronization off stops the app’s reconciliation on that device and clears supported local synchronization copies. It does not erase an existing iCloud document or guarantee cancellation of a file upload already handed to iCloud. Turning it on again may restore cloud data. Apple’s storage, protection, and retention practices depend on its services and your account settings; see Apple’s iCloud security information.

Maps and third-party services

Campus building search uses a bundled campus directory on your device. Map displays and routes use Apple’s MapKit services. Routes between classes use the relevant building coordinates. With location permission, travel estimates also use your current device location as the route origin. Heading helps point toward a building on your device.

MadSchedule requests location access while in use for these features, including departure estimates on the Today screen. Its location tracking stops when the relevant view is left or the app becomes inactive. Location fixes and travel estimates are held in memory rather than written into your saved schedule or iCloud schedule document. Apple services receive the information needed for map and route requests. Opening directions in Apple Maps starts a separate interaction with that app.

Weather comes from Apple’s WeatherKit service using a fixed UW–Madison campus coordinate, rather than your current device location. Weather results are temporarily cached in memory. Opening Apple’s Weather app is a separate interaction.

MadSchedule also downloads public calendar and deadline information from UW–Madison websites, including during system-scheduled background refreshes. These requests do not include your saved schedule or NetID. The websites may receive ordinary connection information, such as your IP address, when handling these requests.

The app has no integrated advertising, analytics, or third-party crash-reporting SDK. Apple and the university operate their own services; their authentication, logging, retention, and privacy practices are separate from MadSchedule’s local processing. See Apple’s Privacy Policy for Apple’s practices.

Notifications

Class and exam reminders are scheduled locally on your device after notification permission is granted. MadSchedule does not use a remote push delivery service for these reminders.

Reminder content can include a course code, class or exam details, time-related information, and location. This information may appear on your lock screen according to your notification settings. You can disable reminders or adjust their lead times in the app, and control permissions and previews in iOS Settings. Synchronized reminder preferences do not grant notification permission on another device.

Data retention and deletion

You can edit or delete individual courses. With synchronization enabled, course deletions participate in synchronization; deletion records are retained to prevent older devices from restoring removed courses. This is not a promise to erase every historical or externally retained copy.

Clear schedule data clears this device’s saved courses, exams, available NetID information, and preserved damaged schedule copies when the operation succeeds. It first turns off synchronization on this device. Public calendar data and preferences remain. An existing iCloud schedule is retained and may return if you enable synchronization again. Unsupported or damaged synchronization metadata may be preserved for recovery instead of being overwritten.

There is no separate in-app command to erase all iCloud copies. Manage cloud storage and backups through Apple’s available account and storage controls. Deleting the app does not delete all cloud data, university records, backups, or exported files.

Saving an ICS calendar file or sharing a schedule image creates a separate copy of course information. The destination you choose may store or transmit it under its own practices. Temporary share images older than a day are eligible for cleanup when another image is created; this is not a guaranteed one-day deletion period. Copies you save or send are not removed by clearing the app’s schedule.

Your choices

  • Choose manual entry or JSON import instead of the embedded university sign-in flow.
  • Review JSON courses before importing, and edit or remove saved courses.
  • Turn iCloud synchronization off in the app, and check the setting again after a UW or JSON import.
  • Use Clear schedule data for the device-local reset described above, and manage cloud copies separately.
  • Change location and notification permissions in iOS Settings. Features requiring those permissions may be unavailable when permission is denied.
  • Adjust reminder lead times and public calendar source visibility in the app.
  • Decide whether and where to save or share schedule files and images.

Changes to this policy

We may update this Privacy Policy to reflect changes to MadSchedule’s features or data practices. The effective date shown above indicates when the current version took effect.

Contact

If you have questions about this Privacy Policy, how MadSchedule handles your information, or the data deletion options described above, contact zhxsend@outlook.com.