Skip to content

Instantly share code, notes, and snippets.

@n8henrie
Last active March 11, 2024 17:04
Show Gist options
  • Save n8henrie/c3a5bf270b8200e33591 to your computer and use it in GitHub Desktop.
Save n8henrie/c3a5bf270b8200e33591 to your computer and use it in GitHub Desktop.
Demonstration of using AppleScript with Reminders.app
--taken from http://benguild.com/2012/04/11/how-to-import-tasks-to-do-items-into-ios-reminders/#comment-1346894559
--set theFileContents to (read file "Users:n8henrie:Desktop:Reminders.txt") -- Change this to the path to your downloaded text file with your tasks in it! (Note the : instead of a / between folders) Or, just name them Reminders.txt and put them in your downloads folder
--set theLines to paragraphs of theFileContents
set theLines to {"task name 1", "task name 2"}
repeat with eachLine in theLines
tell application "Reminders"
set mylist to list "Your List Name"
tell mylist
make new reminder at end with properties {name:eachLine, due date:date "7/10/2014 3:00 PM"}
end tell
end tell
end repeat
(*
-- Properties that can be set for each task
name (text) : the name of the reminder
id (text, r/o) : the unique identifier of the reminder
body (text) : the notes attached to the reminder
completed (boolean) : Is the reminder completed?
completion date (date) : the completion date of the reminder
container (list, r/o) : the container of the reminder
creation date (date, r/o) : the creation date of the reminder
due date (date) : the due date of the reminder
modification date (date, r/o) : the modification date of the reminder
remind me date (date) : the remind date of the reminder
priority (integer) : the priority of the reminder
*)
@amelchi
Copy link

amelchi commented Dec 27, 2015

hello n8henrie,
how can you add a "note" text to your text? via a delimiter?
TIA

@n8henrie
Copy link
Author

n8henrie commented Mar 7, 2016

Based on the comment I put at the end of the script, I would guess it's something like adding the body property, e.g.

make new reminder at end with properties {name:eachLine, due date:date "7/10/2014 3:00 PM", body:"This is a note for the reminder"}

@amelchi
Copy link

amelchi commented Feb 4, 2017

how can you put in the actual note... sorry for my
dummy question

@eivindml
Copy link

Is there a way to read the repeat value of a task?

And what is the difference between due date and remind me date? Looks like the same value to me.

@rben01
Copy link

rben01 commented Nov 9, 2017

The due date is the actual due date, a piece of info; the remind me date is when your phone will alert you of the reminder. In the Reminders app, they are consolidated into one field, and changing this field will set both the due date and the remind me date, so they are never different. Other apps that hook into your reminders are free to set them separately.

@codycodes
Copy link

codycodes commented May 28, 2018

Also useful to write here this can easily be done using a GUI in the Automator.app (included on all macs, just search for it and you'll find it!)

  1. Start Automator
  2. Create a Service
  3. Search Reminders
  4. Configure as necessary!

image

@driekeerJ
Copy link

driekeerJ commented Sep 14, 2018

Great script! I use this for my grocery list.
There is one problem with reminders on the iPhone, it doesn't let you order on name or any other way. It is ordered by the moment it was added.
My list is an already sorted list with groceries.
To solve this I added a delay for every line it adds. This way I know for sure it is getting ordered the way I want it to.
So:

make new reminder at end with properties {name:eachLine}
delay 10

@rjqueen
Copy link

rjqueen commented Jul 18, 2021

Is there a way to script the "show" aspect of a reminder item?

@n8henrie
Copy link
Author

What do you mean?

@homosco
Copy link

homosco commented Jan 1, 2023

Thanks a lot for this example!

Helped me a lot with importing Omni-Focus CSV Export into Reminders! Added another Array with the description and copied the corresponding lines from csv into the script. Worked like a charm for about 200 entries.

@chrisgrieser
Copy link

chrisgrieser commented Jan 23, 2023

since I searched for it a bit, I wanna add that you can also set the property allday due date (date) to create a reminder that has not a specific time.

@diva-D
Copy link

diva-D commented May 30, 2023

Thank you @chrisgrieser! I was bashing my head trying to get rid of the time component. The allday keyword was the unlock.

@F-Baker
Copy link

F-Baker commented Aug 13, 2023

Thank you for the property names! "notes" is "body", got it. This really helped.
Thanks everyone!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment