macOS: Calendar access is denied silently for CLIs run inside T3 Code (missing NSCalendarsFullAccessUsageDescription)#21283

opened21d agoby11nto5

What happens Any command started from T3 Code (integrated terminal or agent tool calls) that uses EventKit fails right away, and macOS never shows a permission prompt:

1$ ekctl today --calendar adrian
2{ "error" : "Permission denied for Calendar. Please grant access in System Settings > Privacy & Security > Calendars.", "status" : "error" }

T3 Code also never appears in System Settings → Privacy & Security → Calendars, so the user has no way to grant access by hand.

Why T3 Code (Nightly).app/Contents/Info.plist has no NSCalendarsFullAccessUsageDescription (or NSCalendarsUsageDescription) key. As the responsible app, T3 Code is denied by TCC automatically, with no prompt. The same is probably true for Reminders, Contacts and Photos (NSRemindersFullAccessUsageDescription, NSContactsUsageDescription, NSPhotoLibraryUsageDescription).

Expected CLIs run in T3 Code trigger the normal macOS prompt, and T3 Code shows up in the Calendars privacy pane, the same way Terminal, Ghostty and other terminal apps work.

Suggested fix Add the usage description keys to Info.plist (in electron-builder: mac.extendInfo), e.g.:

json
1"NSCalendarsFullAccessUsageDescription": "Commands you run in T3 Code may need access to your calendars.",
2"NSRemindersFullAccessUsageDescription": "Commands you run in T3 Code may need access to your reminders."

Environment

  • T3 Code 0.1.1-nightly.20261018.3315
  • macOS 27.0.1
  • Tool: ekctl 1.6.0 (EventKit CLI)

Workaround Run the CLI as a launchd job (launchctl submit … -- ekctl …), so that it becomes its own responsible process.