Calendar
Orchard gives your AI client full read/write access to macOS Calendar events, along with a standalone date-conversion tool. Calendar is one of the three apps enabled on the Free plan.
What you can do
- “Schedule a team sync tomorrow from 2 to 3pm and remind me 15 minutes and 1 hour before.”
- “What’s on my calendar next week?”
- “Move my dentist appointment to Friday at 9am.”
- “What is today’s date in the Chinese lunar calendar?”
- “Cancel the ‘Product Review’ event on my Work calendar.”
Available tools
| Tool | Description |
|---|---|
calendar_event_create | Create an event with title, start/end time, calendar, location, notes, URL, and alarms. |
calendar_event_update | Update an existing event’s fields, including moving it to a different calendar. |
calendar_event_delete | Delete an event by ID. |
calendar_info | List calendars, or list events within a date range. |
calendar_convert | Convert a Gregorian date to another calendar system. |
Events support multiple alarms expressed as minutes before the start time — for example [15, 60, 1440] for 15 minutes, 1 hour, and 1 day before. calendar_info with type=calendars accepts a calendar_type filter of event (default) or birthday.
Supported calendar systems for calendar_convert
calendar_convert translates a date into any of these 13 calendar systems:
| Identifier | Calendar |
|---|---|
gregorian | Gregorian |
buddhist | Buddhist |
chinese | Chinese lunar |
hebrew | Hebrew |
islamic | Islamic (Umm al-Qura) |
islamicCivil | Islamic Civil |
indian | Indian National |
japanese | Japanese |
persian | Persian |
coptic | Coptic |
ethiopicAmeteMihret | Ethiopic (Amete Mihret) |
ethiopicAmeteAlem | Ethiopic (Amete Alem) |
iso8601 | ISO 8601 |
Required permissions
Calendar needs Calendars full access. macOS prompts for this the first time you use a calendar tool, or during onboarding if you selected Calendar on the Choose Your Features screen.
Birthday calendar quirk
Listing the birthday calendar (calendar_info with calendar_type=birthday, or orchard calendar info --type calendars --calendar-type birthday on the CLI) works when Reminders access is granted, not just Calendars access. If this call fails with a permission error even though Calendars is authorized, check that Reminders access is granted too. See Troubleshooting for this exact symptom.
CLI usage
The orchard calendar command exposes the same five operations as subcommands.
orchard calendar create --title "Team sync" --start "2026-07-14T14:00:00" --end "2026-07-14T15:00:00" --alarms "15,60"orchard calendar info --type events --from "2026-07-14T00:00:00" --to "2026-07-21T00:00:00"orchard calendar info --type calendars --calendar-type birthdayorchard calendar update --event-id ABC123 --start "2026-07-18T09:00:00" --end "2026-07-18T09:30:00"orchard calendar update --event-id ABC123 --calendar-id "personal-calendar-id" --url "" --alarms "15,60"orchard calendar convert --date "2026-07-13T00:00:00" --calendar chineseEvery subcommand accepts --json for machine-readable output. Run orchard calendar <subcommand> --help (or orchard help calendar <subcommand>) for the full flag list — see the CLI Reference for more.
Tips & limitations
- Calendar is enabled by default alongside Reminders, so most users see it working immediately after onboarding.
- To move an event to a different calendar, update it with a new
calendar_id(or--calendar-idon the CLI).calendar_event_updaterefuses to move an event into a calendar that isn’t an event calendar or that doesn’t allow content modifications. - All-day events are created by passing
--all-day(CLI) orall_day: true(tool); omit end-of-day handling — Orchard uses the dates you provide as-is. - Passing an empty
urlvalue on update clears the event’s URL (--url ""on the CLI); passing an emptyalarmsarray clears all alarms (--alarms ""on the CLI).