How to extract data from iCal to csv file

Hi there everybody, I started my quest with this topic but believe the problem should be narrowed and I’ll take a different approach.

Here is the problem: I keep records of my customers appointments in a iCal calendar and would like to retrieve the data into a csv file for further manipulation.
It’s easy to get data from one particular calendar into a text file using a simple Automator task.
I would like however, to separate the entries using comma separated values and, furthermore organize them by daily groups.

I realize writing this post that perhaps it needs more detail as towards what I want to obtain.

I keep records of my appointments putting customer name and topic in the event title.
I also specify time and location and add some simple notes in the notes field.

What I would like to achieve is an individual record in text file containing the title, date, time, location, note fields all comma separated, ending with a return.

Is this possible with Automator only or is a shell script needed?
Perhaps it has to be achieved with a combination of both.

I will be very grateful for any hints received.


I published an Automator Action that basically does what you ask for, except I didn´t yet include many event properties to the csv output. (That´s because it originally was written for another usage.)

You may have a look at it at
The name of the action is: get uid of iCal objects

If you know AS you could adjust this action to suit your needs. Note: it currently is a 10.5 xCode project.

Hello iCaldoit,

thanks for your reply and sorry for my delay in returning a feedback.
I am still exploring the several options I have available, iCaldoit seems promising but I probably need more time to learn how to use it and understand how to get the best out of it’s functions.

I can extract titles from my calendar using it and put them into a text file but not much more so far… :-/

BTW, as I am replicating my cal data on the cloud with Google Calendar, Google seems to have the solution ready.
There are published API’s that can do exactly what I want but I would rather prefer to find a fix within OSX.

(to be continued)


I put a preview of an extended version of the action “get uid of iCal objects” into the “nightlies”-folder. Note this is only a preview, not fully completed and poorly tested.

I added the whole set of properties for optional output. Just check those you need. (Some are very technical, I need those for debugging of other action results… That´s where the weird name of the action derives from. I will rename it in future releases.)

I will not include any kind of sorting mechnism into this action. This should be done by another action before passing the data to it. As Apple doesn´t provide such an action that´s just one more item on my to do-list…

You posted your question in the “Automator” board, so I assume you´re already using Automator. If you want to try this action (“get uid of iCal objects”), you simply pass the events to it and it will return a csv-formatted text.

I think this functionality is quite useful (export to database formats like csv and xml). I´m very thankful for feedback.

Thanks a lot for your help.
I have given it a quick glance and tried to do a few imports and the export to cvs file works great apparently. :slight_smile:
I need to refine the import in numbers part, though. It doesn’t split the csv data into separate columns.
Unfortunately I have limited time tonight but will try to keep you posted in the next few days with my results.

Bye for now