Previous: XOXO export, Up: Exporting


12.8 iCalendar export

Some people like to use Org mode for keeping track of projects, but still prefer a standard calendar application for anniversaries and appointments. In this case it can be useful to have deadlines and other time-stamped items in Org files show up in the calendar application. Org mode can export calendar information in the standard iCalendar format. If you also want to have TODO entries included in the export, configure the variable org-icalendar-include-todo. iCalendar export will export plain time stamps as VEVENT, and TODO items as VTODO. It will also create events from deadlines that are in non-TODO items. Deadlines and scheduling dates in TODO items will be used to set the start and due dates for the todo entry1.

The iCalendar standard requires each entry to have a globally unique identifier (UID). Org creates these identifiers during export. If you set the variable org-icalendar-store-UID, the UID will be stored in the :ID: property of the entry and re-used next time you report this entry. Since a single entry can give rise to multiple iCalendar entries (as a timestamp, a deadline, a scheduled item, and as a TODO item), Org adds prefixes to the UID, depending on what triggered the inclusion of the entry. In this way the UID remains unique, but a synchronization program can still figure out from which entry all the different instances originate.

C-c C-e i
Create iCalendar entries for the current file and store them in the same directory, using a file extension .ics.
C-c C-e I
Like C-c C-e i, but do this for all files in org-agenda-files. For each of these files, a separate iCalendar file will be written.
C-c C-e c
Create a single large iCalendar file from all files in org-agenda-files and write it to the file given by org-combined-agenda-icalendar-file.

The export will honor SUMMARY, DESCRIPTION and LOCATION properties if the selected entries have them. If not, the summary will be derived from the headline, and the description from the body (limited to org-icalendar-include-body characters).

How this calendar is best read and updated, that depends on the application you are using. The FAQ covers this issue.


Footnotes

[1] See the variables org-icalendar-use-deadline and org-icalendar-use-scheduled.