Reminders.app: How to transform a TXT file to a proper ICS for an import?

I have a huge list of entries in a TXT file, which I like to import to Reminders.app.


The simple TXT file does not contain any time stamps etc., but just simple tasks, one per line.


The only possible format for an import is ICS.


How can I transform the list in the TXT file into a proper ICS file please?


Thanks.

MacBook Pro with Retina display, macOS High Sierra (10.13.2)

Posted on Jan 19, 2018 1:20 AM

Question marked as Top-ranking reply

Posted on Jan 19, 2018 1:58 AM

Here is the protocol specification: https://tools.ietf.org/html/rfc5545

ToDos are in section 3.6.2. There are some examples.


You can also just export your Reminders and open that file with a text editor. Use your current reminders as a template.

You can make up some dummy reminders so that you can see the format needed for particular elements such as alarms.


You can strip out the UIDs:, X-Apple stuff, and create/modified dates.

I don't know how much of the header info is required, here is an example of a copy/edit that imported just fine:

BEGIN:VCALENDAR

VERSION:2.0

PRODID:-//Apple Inc.//Mac OS X 10.13.3//EN

CALSCALE:GREGORIAN

BEGIN:VTODO

DUE;TZID=America/Chicago:20180407T190000

DTSTAMP:20171008T002219Z

DESCRIPTION:This is the Description

STATUS:NEEDS-ACTION

SUMMARY:Test Import of ics

DTSTART;TZID=America/Chicago:20180407T190000

RRULE:FREQ=MONTHLY;INTERVAL=6;BYDAY=1SA

BEGIN:VALARM

TRIGGER;VALUE=DATE-TIME:20180408T000000Z

DESCRIPTION:Event reminder

ACTION:DISPLAY

END:VALARM

END:VTODO

END:VCALENDAR

14 replies
Question marked as Top-ranking reply

Jan 19, 2018 1:58 AM in response to Community User

Here is the protocol specification: https://tools.ietf.org/html/rfc5545

ToDos are in section 3.6.2. There are some examples.


You can also just export your Reminders and open that file with a text editor. Use your current reminders as a template.

You can make up some dummy reminders so that you can see the format needed for particular elements such as alarms.


You can strip out the UIDs:, X-Apple stuff, and create/modified dates.

I don't know how much of the header info is required, here is an example of a copy/edit that imported just fine:

BEGIN:VCALENDAR

VERSION:2.0

PRODID:-//Apple Inc.//Mac OS X 10.13.3//EN

CALSCALE:GREGORIAN

BEGIN:VTODO

DUE;TZID=America/Chicago:20180407T190000

DTSTAMP:20171008T002219Z

DESCRIPTION:This is the Description

STATUS:NEEDS-ACTION

SUMMARY:Test Import of ics

DTSTART;TZID=America/Chicago:20180407T190000

RRULE:FREQ=MONTHLY;INTERVAL=6;BYDAY=1SA

BEGIN:VALARM

TRIGGER;VALUE=DATE-TIME:20180408T000000Z

DESCRIPTION:Event reminder

ACTION:DISPLAY

END:VALARM

END:VTODO

END:VCALENDAR

Jan 19, 2018 4:31 PM in response to Community User

My entries in the original TXT file are not sorted by any attribute but just by me manually.

Your sorting is irrelevant. Once imported into Reminders, the chosen sort will be used.

I don't know if you have Manually chosen for the sort how it will order the events.

No, have no program which does Mail Merge. Can you please explain, what you meant with that suggestion?

Some word processing apps have a "Mail Merge" feature which allows you to create "form" letters. Microsoft Word has one, and older versions of Pages can do it.


You would create a template file that has placeholders for certain text. In a form letter, it would be things like name, address, etc.

If you have a list of addressees in a spreadsheet, it can take each entry and create a letter with the placeholders replaced with the fields in the spreadsheet.


With this, the template would be the basic format fo the ics file, with placeholders for things like Description, Due Date, Status. The Mail Merge feature would go through the list of entries and create individual ToDos from them.


Your "template" would look something like this:

BEGIN:VTODO

DUE;TZID=[dueDate]

DTSTAMP:[createDate]

DESCRIPTION:[description]

STATUS:[status]

SUMMARY:[summary

END:VTODO


The items in brackets would be the column names of the spreadsheet list.

For each entry in the spreadsheet, the template would be copied and the things in brackets would be replaced with the contents of the matching cell.

Jan 21, 2018 7:21 AM in response to Community User

I created a dummy list and reordered it manually. When I exported, it added a "sort order" extension:

X-APPLE-SORT-ORDER:538239281


If you embed this in your ics file using 1 through N, it should import them into that order. If you are importing into a list with existing entries, you may have to export that list to determine where to start with the sequence numbers.

Jan 19, 2018 3:47 PM in response to Community User

Reminders can be sorted by various attributes. The display should be based upon that chosen sort.

Since you didn't at any date info, and the creation date for the entire import is likely the same, the only different characteristic is the Title.

I don't know if it breaks a Date Created tie with the Title, but I would assume so.


If you are sorting by Date Created, you may be able to embed that date/time stamp into the TODO.


I don't know of a tool to take a list of items and convert into ToDo Entries.

If you have a program that does Mail Merge, you may be able to use that.

Jan 21, 2018 6:18 AM in response to Community User

Even, when you export a task list from Reminders.app and reimport it to Reminders.app all order will be destroyed?

If there was no basis for the ordering, like Date Created, Date Due, Title, there will be no order to what is imported.

You can read for yourself in the linked RFC that there isn't a "Order"-type field in the object.


I do not know how Reminders initially orders them upon import. You may be able to figure it out by how they started and how they end up. You could then possibly re-order the import such that they import in the order you wish. It may require that you create a file for each entry and import those one-by-one. Probably easier to just re-order them in Reminders after import.

Jan 19, 2018 3:13 AM in response to Barney-15E

Thanks for the idea.


Before I posted here, I exported a dummy ics from reminders.app.


But the structure is to complicated to convert my text file manually.


Specially because you need something to make sure the original order as in the original text file is used.


When you import the following ICS, you get an alphabtical order in reminders.app:


BEGIN:VCALENDAR

VERSION:2.0

BEGIN:VTODO

SUMMARY:lorem

END:VTODO

BEGIN:VTODO

SUMMARY:ipsum

END:VTODO

END:VCALENDAR

Result:
* ipsum

* lorem


Correct would be:

* lorem

* ipsum



Is there really no ready to use tool for that purpose?

Jan 19, 2018 4:00 PM in response to Barney-15E

My entries in the original TXT file are not sorted by any attribute but just by me 🙂 manually.


When I understood you correctly, than you think that there's is no tool for that task.


No, have no program which does Mail Merge. Can you please explain, what you meant with that suggestion?



Jan 20, 2018 1:08 AM in response to Barney-15E

Barney-15E wrote:


My entries in the original TXT file are not sorted by any attribute but just by me manually.

Your sorting is irrelevant. Once imported into Reminders, the chosen sort will be used.

I don't know if you have Manually chosen for the sort how it will order the events.

Thanks for your detailled answer Barney.


I'm not sure, what you mean with "your sorting is irrelevant".


For the result it is a must have for me, that I get the original order.


In Reminders.app I choosed the sorting option "manually".


But it seems that such an option does not exist in form of an attribute in the ICS source code.


I need a method to make sure, that I get the original order from my TXT file after I imported the self made ICS to Reminders.



Jan 20, 2018 8:54 AM in response to Barney-15E

I'm not sure, if you missunderstand my issue or not.


My wish is extremly simple:


There's a manually ordered list of tasks in the App "Google Tasks".


I just like to get them - in whatever way - in exactly that order into Reminders.App.

No more, no less.


I suppose, the tool which can do that has to create fake dates, because time stamps are the only way to keep the order. May be a "manually order" has been "forgotten" in the definition of ICS.

Jan 21, 2018 2:27 AM in response to Barney-15E

When I understand you correctly, that means, a migration of manually ordered tasks is absolutely impossible with the software from Apple (and with any other software which uses ICS)?


Even, when you export a task list from Reminders.app and reimport it to Reminders.app all order will be destroyed?

Is that correct?


Uff, hard to believe.

Jan 21, 2018 6:44 AM in response to Barney-15E

Thanks for your time and your help 🙂


I will give up now.


Yes, I'm disappointed, that Apple choosed the format ICS, which does not contain a way to save a manually created order. And that though it is an option in the app.


In my humble view it is a bug, when a software does not allow to save all informations.

Jan 21, 2018 7:44 AM in response to Barney-15E

That solves my problem! Thanks a lot Barney.


Example:


BEGIN:VCALENDAR

VERSION:2.0

BEGIN:VTODO

X-APPLE-SORT-ORDER:1

SUMMARY:lorem

END:VTODO

BEGIN:VTODO

X-APPLE-SORT-ORDER:2

SUMMARY:ipsum

END:VTODO

END:VCALENDAR


I hope, Apple will integrate some more import options in the future. TXT and CSV for example.

The source code is so simple.

This thread has been closed by the system or the community team. You may vote for any posts you find helpful, or search the Community for additional answers.

Reminders.app: How to transform a TXT file to a proper ICS for an import?

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.