Codex Desktop on macOS cannot trigger Calendar/Reminders TCC prompts for EventKit CLIs
Summary
Codex Desktop on macOS cannot trigger or obtain Calendar/Reminders TCC permissions for EventKit-based CLI tools launched from the Codex app terminal/tool context.
The same third-party CLIs work from iTerm after macOS prompts for access, but fail from Codex with immediate access-denied errors and no permission prompt.
Environment
- Codex Desktop app:
26.429.61741(CFBundleIdentifier = com.openai.codex) - Codex CLI:
codex-cli 0.128.0-alpha.1 - macOS:
26.4.1(25E253) - EventKit CLIs:
rem-cli 0.10.2ical 0.9.0- Codex.app path:
/Applications/Codex.app
Reproduction
- Install EventKit-based Calendar/Reminders CLIs:
``sh``
brew tap BRO3886/tap
brew install rem-cli ical
- From iTerm, run the tools:
``sh``
rem lists
ical today
macOS prompts for Reminders/Calendar access and the tools can be authorized.
- From Codex Desktop's app terminal/tool context, run:
``sh``
rem lists
ical today
Actual behavior
rem lists fails immediately:
Error: failed to initialize Reminders access: reminders: access denied: reminders access denied
ical today fails immediately:
Calendar access denied. Grant access in System Settings > Privacy & Security > Calendars
No macOS permission prompt appears for Codex.
Resetting Codex's TCC entries does not change the behavior:
tccutil reset Reminders com.openai.codex
tccutil reset Calendar com.openai.codex
Running with broader Codex filesystem sandbox permissions also does not change the behavior, so this does not appear to be the Codex workspace/filesystem sandbox.
Expected behavior
When an EventKit-based child process launched by Codex requests Calendar or Reminders access, macOS should either:
- show a TCC prompt for Codex so the user can grant access, or
- allow Codex Desktop to declare/support the required Calendar/Reminders usage descriptions so EventKit tools can be authorized like they can under Terminal/iTerm.
Local app metadata
/Applications/Codex.app/Contents/Info.plist contains usage descriptions for Apple Events, audio, camera, and microphone, but does not appear to contain Calendar/Reminders usage descriptions:
NSCalendarsUsageDescription: not present
NSRemindersUsageDescription: not present
NSCalendarsFullAccessUsageDescription: not present
NSRemindersFullAccessUsageDescription: not present
codesign -d --entitlements - /Applications/Codex.app shows:
com.apple.security.app-sandbox = false
com.apple.security.automation.apple-events = true
com.apple.security.cs.allow-jit = true
com.apple.security.cs.allow-unsigned-executable-memory = true
com.apple.security.device.audio-input = true
com.apple.security.files.user-selected.read-write = true
com.apple.security.network.client = true
Notes
This seems related in class to other macOS TCC/entitlement issues, but I could not find an existing Calendar/Reminders/EventKit-specific issue in openai/codex.
3 Comments
I can confirm this is the same root issue with
remiin Codex Desktop on macOS.Environment:
26.519.3165126.5remi:0.2.0via HomebrewBehavior:
remi list <REMINDERS_LIST_NAME>works correctly.remi list <REMINDERS_LIST_NAME>fails withError: items.find is not a function.Additional detail:
remi authorizeopened System Settings and I granted Codex Full Disk Access.Privacy & Security > Reminders, but Codex did not appear in the app list and could not be added manually.remi doctor --syncin Codex reports that database access is granted, but Reminders access is not granted and 0 lists are returned.So this appears to be the same Codex-side Reminders TCC / missing usage-description problem described in this issue, with
remisurfacing a bad downstream error instead of a clean permission-denied message.The fix should be very simple: Codex.app needs to declare Calendar and Reminders privacy usage descriptions in its Info.plist.
At minimum:
NSCalendarsUsageDescriptionNSRemindersUsageDescriptionAnd ideally also the newer full-access EventKit keys:
NSCalendarsFullAccessUsageDescriptionNSRemindersFullAccessUsageDescription---
Maybe at some point Codex could even have native skills for such access points (like calendar, reminders, etc)
I can reproduce this on a newer Codex Desktop build.
Environment:
26.609.41114,CFBundleVersion = 3888com.openai.codex15.7.4(24G517),Darwin 24.6.0 arm64 armremat/Users/peter/.local/bin/remremindctl 0.1.1at/Users/peter/.local/bin/remindctlBehavior:
remworks from iTerm after granting Reminders permission there.REM_NO_UPDATE_CHECK=1 NO_COLOR=1 rem lists --countfails immediately with:remindctl statusinitially reportedNot determined, butremindctl authorizedid not produce a usable system prompt from Codex Desktop and moved toDenied.tccutil reset Reminders com.openai.codexsucceeds, but rerunning the command still fails with no macOS prompt.Local bundle metadata:
/Applications/Codex.app/Contents/Info.plistcontains usage strings for Apple Events, audio capture, camera, and microphone.NSRemindersUsageDescription,NSRemindersFullAccessUsageDescription,NSCalendarsUsageDescription, orNSCalendarsFullAccessUsageDescription.TCC log evidence after running
remfrom Codex Desktop:This confirms the access request is being attributed to Codex.app as the responsible process, and macOS refuses before displaying a consent prompt because the responsible app bundle does not declare the Reminders usage description.