32.10.7 Importing and Exporting Diary Entries

You can transfer diary entries between Emacs diary files and a variety of other formats.

You can import diary entries from Outlook-generated appointment messages. While viewing such a message in Rmail or Gnus, do M-x diary-from-outlook to import the entry. You can make this command recognize additional appointment message formats by customizing the variable diary-outlook-formats. Other mail clients can set diary-from-outlook-function to an appropriate value.

The icalendar package allows you to transfer data between your Emacs diary file and iCalendar files, which are defined in RFC 2445—Internet Calendaring and Scheduling Core Object Specification (iCalendar) (as well as the earlier vCalendar format).

The command icalendar-import-buffer extracts iCalendar data from the current buffer and adds it to your diary file. This function is also suitable for automatic extraction of iCalendar data; for example with the Rmail mail client one could use:

(add-hook 'rmail-show-message-hook 'icalendar-import-buffer)

The command icalendar-import-file imports an iCalendar file and adds the results to an Emacs diary file. For example:

(icalendar-import-file "/here/is/calendar.ics"
                       "/there/goes/ical-diary")

You can use an #include directive to add the import file contents to the main diary file, if these are different files. See Fancy Diary Display.

Use icalendar-export-file to interactively export an entire Emacs diary file to iCalendar format. To export only a part of a diary file, mark the relevant area, and call icalendar-export-region. In both cases, Emacs appends the result to the target file.