Yuanhao Feng

Back

iCloud Reminders Desktop

A tray-first Windows client for viewing, completing and quickly capturing iCloud Reminders.

Reminders in the tray#

iCloud Reminders Desktop is a Windows tray app that reads and writes iCloud Reminders directly through CloudKit. Click the tray icon or press a global shortcut to open the panel, do what you need, close it, and sync keeps running in the background.

Three windows#

The main panel is for organizing. Beyond individual lists, it offers Today, Upcoming, and Flagged views; search matches titles and notes across the account. Reminders can be completed, restored, reordered within a list, or moved to another. Click one open to see its due date, priority, flag, and notes.

The mini window keeps only outstanding items, resizes freely, and pins above other windows. Quick Add is simpler still: Ctrl+Alt+N opens a capture box, you pick a list, type a title, press Enter, and it’s gone. Both shortcuts are configurable.

Due and overdue items trigger notifications; a daily summary fires on first load each day. The app supports English and Simplified Chinese, light and dark themes, launch at sign-in, and GitHub Release updates.

Architecture#

The Electron main process handles the tray, windows, shortcuts, notifications, settings, updates, and the Python backend lifecycle. Renderer windows have no Node.js access; every operation goes through a context-isolated preload bridge. The main process calls a Flask + Waitress service on 127.0.0.1:18923, which handles Apple authentication, two-factor verification, and CloudKit operations. Older reminder accounts can fall back to pyicloud’s legacy API.

The data path is short: reminder and auth traffic goes from the user’s machine straight to Apple, with only update checks touching GitHub. With Remember Me enabled, credentials go to Windows Credential Manager via Python keyring; session cookies stay in AppData. Signing out clears both.

The sign-in flow also handles the spots where Windows users tend to get stuck: trusted-device codes, SMS fallback, session recovery, and endpoint switching for mainland China phone-number accounts that hit Apple’s 503 responses.

Limits#

This is an unofficial client built on Apple web services and internal CloudKit behavior. Changes to Apple’s authentication or record formats can break things without warning. Installers and known issues are on GitHub Releases.