A command-line interface for macOS Calendar and Reminders, backed by a sandboxed app that holds the necessary TCC permissions.
icli is a thin CLI that communicates with a companion macOS app (iCLI.app) over a local Unix socket. The app holds Calendar and Reminders entitlements; the CLI forwards commands to it and prints the results.
-
macOS 14 (Sonoma) or later
-
Xcode 16 or later — required to build the project
-
Tuist — used to generate the Xcode workspace
brew install tuist
-
~/.local/binin your PATH — the default install prefix; add the following to your shell profile if needed:export PATH="$HOME/.local/bin:$PATH"
Install via Homebrew:
brew install --cask 4rays/tap/icliBuild and install from source:
make installThis generates the workspace, builds both the app and CLI, then installs them to ~/.local/lib/icli/ with a symlink at ~/.local/bin/icli.
On first run, macOS will prompt for Calendar and Reminders access. Grant both.
icli calendar <subcommand>
icli reminder <subcommand>make uninstallGenerate the Xcode workspace first:
tuist generate --no-openmake generate # regenerate Xcode workspace via Tuist
make build # build without installing
make reset # kill app, remove socket, reset TCC permissions
make clean # delete derived data