Source

ical2org /

Filename Size Date modified Message
ical2org
scratch
tests
60 B
5.0 KB
62 B
1.2 KB

ical2org

ical2org is a command line tool for exporting data from the Mac OS X application iCal so it can be used with the emacs tool org-mode. Data transfer is one-way only (from iCal to emacs), and is intended to be used to show alarms and scheduled events managed by iCal within org's agenda view.

Installation

Use normal Python application steps to install ical2org:

$ pip install ical2org

or:

$ easy_install ical2org

The source distribution is created using Distribute, which will be installed with ical2org. The other dependencies (pytz and vobject) will also be installed automatically.

Generating org-mode Files

While ical2org supports multiple output formats, the default is an org-mode outline. Each calendar entry includes the summary, location, date and time, and complete description (useful for searching).

For example, to extract the entries from a calendar called "Meetup: Python", you would run:

$ ical2org "Meetup: Python"
Starting 14 days ago at 2010-01-03 00:00:00-05:00
Ending 30 days from now at 2010-02-17 00:00:00-05:00
Processing: Meetup: Python
  Python Atlanta February Meetup
# -*- coding: utf-8 -*-
* Meetup: Python    :clubs:
  :CATEGORY: Personal
** Python Atlanta February Meetup
   <2010-02-11 Thu 19:30-21:30>
   - PyAtl: Atlanta Python Programmers

     After an optional 6pm dinner at Figo Pasta at the corner of
     Howell Mill Road and Huff Road, we will meet as usual in the
     spacious and comfortable auditorium of the GTRI Food
     Processing Building at 7:30pm for our monthly meeting.

     Topics for this meeting:

     Brandon Rhodes will give his PyCon talk: "Learning Hosting
     Best-Practices From WebFaction"

     Atlanta, GA  30318 - USA

     Thursday, February 11 at 7:30 PM

     Photo: http://photos2.meetupstatic.com/photos/event/4/7/3/5/event_5238229.jpeg

     Attending: 3

     Details: http://www.meetup.com/python-atlanta/calendar/12325308/

Output is encoded as UTF-8, which may not work with Unix pipes and shell redirection. To save the output to a file instead of having it printed to standard output, use the -o option.

By default, ical2org processes all of the calendars which are displayed in iCal. Hidden calendars are ignored unless you give their name on the command line.

Generating Diary Files

The default output format uses org's outline structure. If you would rather use emacs' diary-mode, use -f diary to switch modes. The diary entries do not include the full text of the event.

Recurring Events

Recurring events in iCal are "exploded" to create separate entries in the output. This makes it easy to refile an event when you add notes, without having the notes from one meeting occurance appear on the wrong date.

Command Line Options

-h show this help message and exit
-c CONFIG_FILENAME, --config=CONFIG_FILENAME
 Configuration file name. Defaults to ~/.ical2org
-b DAYS_AGO, --begin=DAYS_AGO, --days-ago=DAYS_AGO
 Number of days back in time to search. Defaults to 14.
-e DAYS_AHEAD, --end=DAYS_AHEAD, --days-ahead=DAYS_AHEAD
 Number of days forward in time to search. Defaults to 30.
-v, --verbose Increase verbose level
-q, --quiet Turn off verbose output
-o OUTPUT_FILE_NAME, --output-file=OUTPUT_FILE_NAME
 Write the output to the named file instead of stdout
--all Include all calendars, not just active.
--input-directory=INPUT_DIRECTORY
 Directory containing calendars. Defaults to ~/Library/Calendars.
-f FORMAT, --format=FORMAT
 Output format. One of ['org', 'diary']. Defaults to "diary".
--opt=OPT, --formatter-option=OPT
 Formatter-specific option name=value
--help Verbose help
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.