Giving Codex a screenshot of a meeting and saying “Add this to my calendar” should be simple. But in my tests, it almost always used Computer Use: taking a screenshot, finding buttons, clicking, filling in fields, then taking another screenshot to confirm. It got the job done, but it was far too slow.
That repeated interaction with the interface was exactly what I wanted to skip. After trying a few existing tools, I built AppleCtl: a local CLI that agents can call directly to manage calendars and reminders through Apple’s public EventKit API.
The agent interprets the screenshot; AppleCtl carries out the actions and returns clear results to the agent.
Whiteboard
In both approaches, the agent interprets the content. What changes is how the actions are carried out.
There are already plenty of tools like this. The main differences are what they support and how agents connect to them. Here are the versions I used as references during development:
What matters more to me is that an agent can use the same interface for both kinds of tasks and check the results. AppleCtl also handles edge cases involving dates, time zones, and recurring events, supports previewing changes before writing them, and checks for stale updates. The reminders core is adapted from remindctl, while the calendar implementation draws on the other two projects. For details on the fixes, see AUDIT.md.
Sticking with Apple’s built-in Calendar and Reminders apps also keeps things simple: no extra calendar or to-do app to install, and no additional third-party subscription to pay for. Enable iCloud sync with the same Apple Account, and you can keep using them across your Mac, iPhone, and iPad.
I’d recommend letting Claude Code or Codex handle installation too. On the Mac where you want to use it, say:
“
Follow the README to install https://github.com/Jaaayden/applectl and its companion Skill. Prefer an official release package suitable for this Mac, and check permissions. Let me know whenever I need to grant permission manually.
Requires macOS 14+ and Python 3. You’ll need to grant access to Calendar and Reminders on first use; you may also need to allow the downloaded version to run in System Settings. For detailed steps, see the installation guide.
Once it’s installed, upload a screenshot of a meeting and say:
“
Add the meeting in this image to my calendar with a reminder 30 minutes before it starts. Ask me first if the time is ambiguous, and read back the details after adding it.
It may be a command-line tool, but I leave the commands to the agent. All I need to give it is an image or a sentence.
I’ve also been looking forward to Apple Intelligence taking care of little tasks like these. When it eventually launches in mainland China, I hope I’ll be able to add events straight from a screenshot, whether I’m on a Mac or an iPhone. The way I add them may change, but I can keep using Apple Calendar and Reminders as I always have.
Loading...
Loading...
Loading...
Loading...
Loading...
Handing an Agent a meeting screenshot to add to my calendar should save time, but repeated screenshots, clicks, and forms made it slow. So I built AppleCtl: a unified CLI that lets an Agent manage calendars and reminders through Apple’s public EventKit API. It returns JSON by default and can read entries back to verify results. The Agent interprets the content; AppleCtl executes, handling dates, time zones, and recurring events, with previews before saving and checks for stale edits. I keep using Apple’s built-in apps—no extra app or subscription—and iCloud syncs everything across devices. The Agent handles installation and commands; I just provide an image or a sentence. If the time is ambiguous, it asks first, then confirms once the entry is added.
Giving Codex a screenshot of a meeting and saying “Add this to my calendar” should be simple. But in my tests, it almost always used Computer Use: taking a screenshot, finding buttons, clicking, filling in fields, then taking another screenshot to confirm. It got the job done, but it was far too slow.
That repeated interaction with the interface was exactly what I wanted to skip. After trying a few existing tools, I built AppleCtl: a local CLI that agents can call directly to manage calendars and reminders through Apple’s public EventKit API.
The agent interprets the screenshot; AppleCtl carries out the actions and returns clear results to the agent.
In both approaches, the agent interprets the content. What changes is how the actions are carried out.
There are already plenty of tools like this. The main differences are what they support and how agents connect to them. Here are the versions I used as references during development:
Project
Scope
Agent integration
remindctl v0.3.8
Reminders
CLI with JSON support
apple-calendar-cli v0.1.1
Calendar
CLI + Skill, with JSON support
acal v0.4.0
Calendar
CLI + optional MCP, with structured results
AppleCtl
Calendar + Reminders
Unified CLI + Skill, with JSON output by default
What matters more to me is that an agent can use the same interface for both kinds of tasks and check the results. AppleCtl also handles edge cases involving dates, time zones, and recurring events, supports previewing changes before writing them, and checks for stale updates. The reminders core is adapted from remindctl, while the calendar implementation draws on the other two projects. For details on the fixes, see AUDIT.md.
Sticking with Apple’s built-in Calendar and Reminders apps also keeps things simple: no extra calendar or to-do app to install, and no additional third-party subscription to pay for. Enable iCloud sync with the same Apple Account, and you can keep using them across your Mac, iPhone, and iPad.
I’d recommend letting Claude Code or Codex handle installation too. On the Mac where you want to use it, say:
Requires macOS 14+ and Python 3. You’ll need to grant access to Calendar and Reminders on first use; you may also need to allow the downloaded version to run in System Settings. For detailed steps, see the installation guide.
Once it’s installed, upload a screenshot of a meeting and say:
It may be a command-line tool, but I leave the commands to the agent. All I need to give it is an image or a sentence.
I’ve also been looking forward to Apple Intelligence taking care of little tasks like these. When it eventually launches in mainland China, I hope I’ll be able to add events straight from a screenshot, whether I’m on a Mac or an iPhone. The way I add them may change, but I can keep using Apple Calendar and Reminders as I always have.