I make extensive use of the Reminders app* in OS X to keep track of tasks and to-do items, and I wanted a way to export a list of reminders to plaintext, so I knocked up a quick Python script to take an ICS file exported from a List in Reminders (which you can do from the File menu) and output it in plaintext. If this is something you find yourself needing to do then this might work for you.
Grab the script from GitHub or copy and paste it below:
#!/usr/local/bin/python
# -*- coding: utf-8 -*-
import re
from optparse import OptionParser
parser = OptionParser()
parser.add_option("-f", "--file", dest="filename", metavar="FILE",
help="read reminders from ICS FILE")
parser.add_option("-c", "--include-completed", action="store_true",
dest="include_completed", help="include completed tasks")
(options, args) = parser.parse_args()
if not options.filename:
print "No filename specified; -h for help"
exit(1)
with open(options.filename) as file:
ics_export = file.readlines()
file.close
todos = []
for ics_line in ics_export:
if "STATUS:COMPLETED" in ics_line and options.include_completed is None:
exclude = True
elif "STATUS:" in ics_line:
exclude = False
if "SUMMARY:" in ics_line and exclude is False:
bits = re.split(":", ics_line)
todos.append(bits[1].rstrip())
todos.sort(key=lambda y: y.lower())
for todo in todos:
print "•", todo
* Synced to my iPhone and other Macs via ownCloud on my Linux server, but that’s a story for another day.