GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/emacs/Diary-iCalendar-Display.html ・ emacs-doc.conao3.com

33.10.7.2 ダイアリーでのiCalendarエントリの表示

カレンダーデータを主にEmacs外で管理しつつ、Emacsのカレンダーやダイアリーでも確認したい場合は、ダイアリーファイルからiCalendarファイルを取り込むことで実現できます。

例えば、外部サーバーからAppointments.icsというファイルにカレンダーをダウンロードしたとしましょう。その場合、次のような行を記述することで、このファイルを日記に組み込むことができます。

#include "path/to/Appointments.ics"

日記ファイル内です。また、そのファイル内のデータを日記エントリとして表示し、カレンダーにマークするためのフックもいくつか設定する必要があります:

(add-hook 'diary-mark-entries-hook
          #'diary-mark-included-diary-files)
(add-hook 'diary-nongregorian-marking-hook
          #'diary-icalendar-mark-entries)
(add-hook 'diary-list-entries-hook
          #'diary-include-other-diary-files)
(add-hook 'diary-nongregorian-listing-hook
          #'diary-icalendar-display-entries)

これにより、Appointments.ics 内のイベント、タスク、日記エントリは、カレンダーから日記を表示した際に、該当する日付に表示されるようになります。日記の表示を参照してください。

この方法の利点は、カレンダーサーバーと日記ファイルの間でデータを同期させる必要がない点です。これは、日記形式とiCalendar形式の間で定期的にインポート・エクスポートを行うよりも、シンプルで信頼性が高くなります。

また、diary-icalendar-mailcap-viewer 関数を使用すれば、iCalendar 添付ファイルをダイアリーファイルにインポートすることなく、メールメッセージ内に表示することも可能です。この関数は、例えば変数 mailcap-user-mime-data に追加できます。詳細については、そのドキュメント文字列を参照してください。

iCalendarエントリの表示には、インポート時と同じ基盤が使用されるため、インポート形式をカスタマイズすると、表示されるエントリの形式も変更されます。iCalendarデータを日記エントリとしてインポートするを参照してください。