以下のコマンドで、日記のエントリをiCalendar形式でエクスポートできます。
diary-icalendar-export-file ¶日記ファイルをiCalendar形式でエクスポートします。
diary-icalendar-export-region ¶日記テキストの範囲をiCalendar形式にエクスポートします。
iCalendarエクスポートは、diary-icalendar-exportカスタマイズグループに含まれる、ユーザーがカスタマイズ可能な複数の変数に依存しています。これらの変数はM-x customize-groupで確認およびカスタマイズできます。カスタマイズグループを参照してください。
日記のエントリをiCalendarにエクスポートするには、iCalendarプロパティを解析できるよう、日記内で特定の規約に従う必要があります。
デフォルトでは、エクスポーターはエントリの1行目(日時の後)をiCalendarのサマリーとして、残りの部分をiCalendarの説明として使用します。また、他のiCalendarプロパティも、次のようにエントリ内の別行にエンコードできます。
2025/11/11 Bender's birthday bash
Location: Robot House
Attendees:
Fry <philip.fry@mars.edu>
Günter <guenter@mars.edu>
この形式は、デフォルトのインポート関数によって生成される形式と一致します。
インポート形式をカスタマイズする場合や、日記エントリを別の形式でエクスポートしたい場合は、日記エントリの形式を判別できるようエクスポート変数をカスタマイズする必要があります。最も一般的なiCalendarプロパティは、正規表現を用いて日記エントリから解析されます。これらのプロパティの解析方法を変更するには、diary-icalendar-exportカスタマイズグループ内のdiary-icalendar-*-regexpという名前の変数を参照してください。
その他のiCalendarプロパティをエクスポートする必要がある場合や、より複雑なパースを行う場合は、そのための関数を定義して変数 diary-icalendar-other-properties-parser
の値として設定できます。詳細はそのドキュメント文字列を参照してください。
デフォルトでは、エクスポーターは各日記エントリが単一のiCalendarイベントを表すものと想定します。1日1エントリの形式で日記を付け、同一エントリ内の継続行に異なるイベントを記載したい場合でも、そのようなエントリを個別のiCalendarイベントとしてエクスポートすることが可能です。これを行うには、変数
diary-icalendar-export-linewise にnil以外の値を設定してください。
例えば、この変数を設定した後、次のような記述:
2025-05-03
9AM Lab meeting
Günter to present on new assay
Start experiment A
12:30-1:30PM Lunch with Phil
16:00 Experiment A finishes; move to freezer
4つのイベントとしてエクスポートされます。それぞれ同日ですが、開始時刻は異なります(ただし、開始時刻のない2番目のイベント「Start
experiment A」は除きます)。詳細については、diary-icalendar-export-linewise のドキュメント文字列を参照してください。