apple-reminders-applescript
Apple Reminders AppleScript
Use this skill when the task is about Apple Reminders.app on macOS and AppleScript is the required interface.
This guide only covers working with Reminders.
Main Rule
Do not put inline AppleScript in the answer when this repo already has a script for the action.
Run the scripts in scripts/account, scripts/list, and scripts/reminder.
Script Layout
scripts/account/list.applescriptscripts/list/list.applescriptscripts/list/create.applescriptscripts/list/show.applescriptscripts/list/edit.applescriptscripts/list/delete.applescriptscripts/list/search.applescriptscripts/list/get.applescriptscripts/list/exists.applescriptscripts/reminder/list.applescriptscripts/reminder/create.applescriptscripts/reminder/show.applescriptscripts/reminder/edit.applescriptscripts/reminder/delete.applescriptscripts/reminder/search.applescriptscripts/reminder/get.applescriptscripts/reminder/exists.applescriptscripts/reminder/count.applescriptscripts/reminder/complete.applescriptscripts/reminder/move.applescript
Accounts
List all accounts:
osascript scripts/account/list.applescript
Lists
List all lists:
osascript scripts/list/list.applescript
List lists in one account:
osascript scripts/list/list.applescript "iCloud"
Create a list:
osascript scripts/list/create.applescript "Errands"
Create a list with color and emblem:
osascript scripts/list/create.applescript "Errands" "#34C759" "list.bullet"
Show a list in the UI:
osascript scripts/list/show.applescript "Inbox"
Rename a list:
osascript scripts/list/edit.applescript "Inbox" name "Today"
Set list color:
osascript scripts/list/edit.applescript "Today" color "#34C759"
Set list emblem:
osascript scripts/list/edit.applescript "Today" emblem "list.bullet"
Delete a list:
osascript scripts/list/delete.applescript "Errands"
Check that a list exists:
osascript scripts/list/exists.applescript "Inbox"
Read a list property:
osascript scripts/list/get.applescript "Inbox" id
Supported list properties:
idnamecontainercoloremblem
Search lists by exact name:
osascript scripts/list/search.applescript exact-name "Inbox"
Search lists by id:
osascript scripts/list/search.applescript id "x-apple-reminder://LIST-ID"
Search lists by color:
osascript scripts/list/search.applescript color "#34C759"
Search lists by emblem:
osascript scripts/list/search.applescript emblem "list.bullet"
Search lists by text in the list name:
osascript scripts/list/search.applescript text "Err"
Reminders
List all reminders:
osascript scripts/reminder/list.applescript
List reminders in one list:
osascript scripts/reminder/list.applescript "Inbox"
Count reminders in one list:
osascript scripts/reminder/count.applescript "Inbox"
Create a reminder:
osascript scripts/reminder/create.applescript "Inbox" "Buy milk" "2 liters"
Show a reminder in the UI:
osascript scripts/reminder/show.applescript "Inbox" "Buy milk"
Edit one reminder property:
osascript scripts/reminder/edit.applescript "Inbox" "Buy milk" body "3 liters"
Set reminder priority:
osascript scripts/reminder/edit.applescript "Inbox" "Buy milk" priority 1
Set reminder flagged:
osascript scripts/reminder/edit.applescript "Inbox" "Buy milk" flagged true
Set reminder due date:
osascript scripts/reminder/edit.applescript "Inbox" "Buy milk" due_date "March 13, 2026 10:00"
Clear reminder due date:
osascript scripts/reminder/edit.applescript "Inbox" "Buy milk" due_date missing
Delete a reminder:
osascript scripts/reminder/delete.applescript "Inbox" "Buy milk"
Check that a reminder exists:
osascript scripts/reminder/exists.applescript "Inbox" "Buy milk"
Read a reminder property:
osascript scripts/reminder/get.applescript "Inbox" "Buy milk" body
Supported reminder properties:
nameidcontainercreation_datemodification_datebodycompletedcompletion_datedue_dateallday_due_dateremind_me_datepriorityflagged
Complete a reminder:
osascript scripts/reminder/complete.applescript "Inbox" "Buy milk"
Move a reminder to another list:
osascript scripts/reminder/move.applescript "Inbox" "Buy milk" "Errands"
Search
There is no native AppleScript command named search in Reminders.
Search means lookup by name or id, filtering with whose, or manual text scan.
Find one reminder by exact name inside one list:
osascript scripts/reminder/search.applescript exact-name "Inbox" "Buy milk"
Find one reminder by id:
osascript scripts/reminder/search.applescript id "x-apple-reminder://1234-ABCD"
Find incomplete reminders in all lists:
osascript scripts/reminder/search.applescript incomplete
Find incomplete reminders in one list:
osascript scripts/reminder/search.applescript incomplete "Inbox"
Find flagged reminders:
osascript scripts/reminder/search.applescript flagged
Find reminders by priority:
osascript scripts/reminder/search.applescript priority 1 "Inbox"
Find reminders that have a due date:
osascript scripts/reminder/search.applescript has-due-date "Inbox"
Find reminders by free text in title or notes:
osascript scripts/reminder/search.applescript text "milk" "Inbox"
AppleScript Command Map
These are the published Reminders AppleScript actions and the script to use for each one.
show:scripts/list/show.applescript,scripts/reminder/show.applescriptcount:scripts/reminder/count.applescriptdelete:scripts/list/delete.applescript,scripts/reminder/delete.applescriptexists:scripts/list/exists.applescript,scripts/reminder/exists.applescriptmake:scripts/list/create.applescript,scripts/reminder/create.applescriptmove:scripts/reminder/move.applescriptget:scripts/list/get.applescript,scripts/reminder/get.applescriptset:scripts/list/edit.applescript,scripts/reminder/edit.applescriptduplicate: exposed by the app, but unreliable for reminders. Do not use it as a normal workflow.open,close,save,print,quit: standard app and window actions. They are not part of reminder data work and are not wrapped here.
Limits
show-*opens the Reminders UI.duplicatecan fail with error-1717.- Date setters accept a macOS date string that AppleScript can parse on this Mac, or
missingto clear the field. - There is no published AppleScript API for tags, smart lists, recurrence rules, attachments, shared assignees, URLs, or section grouping.
- A reminder can report a
containerof typereminder, but the dictionary does not exposereminders of reminder, so subtask creation is not available as a normal operation.