Module: When::V
- Defined in:
- lib/when_exe/icalendar.rb,
lib/when_exe/googlecalendar.rb
Overview
An implementation of RFC 5545 - iCalendar ( tools.ietf.org/html/rfc5545 )
Extensions of RFC 5545
Multi Calendar
-
CALSCALE Property can specify calendars other than GREGORIAN
The value of CALSCALE Property is capitalized.
-
Date and Time Representation of DTSTART Property
When.exe Standard Representation is available except ','. (',' cannot be used as a decimal mark) Calendar can be specified by a notation '^^calnedar' or '^calnedar'. (same as epoch of When::TM::CalendarEra)
The extension of RRULE property
-
FREQ=duration
When.exe Standard Representation により duration を指定できる。 ただし、この指定は BYxxx とは共存できない。
-
BYHOUR=h(,..)
h に When.exe Standard Representation を使用できる example: 'BYHOUR=1,2' 夏時間から標準時間への切り替え時に 夏時間の1時,標準時間の2時 を生成 example: 'BYHOUR=1,1=,2' 夏時間から標準時間への切り替え時に 夏時間の1時,標準時間の1時,標準時間の2時 を生成 他のソフトウェアとの互換性を損なう可能性があるが、本ライブラリは両方の動作の違いを 記述できる必要があると判断。
-
BYDAY/c=n*e±s(,..)
c で指定したWhen::CalendarNoteオブジェクトのイベントeのうち、 n番目のものについて、その±s日目 デフォルトは n=all, s=0, cとeは省略不可(eはcのメソッドとして定義されている必要がある) example: 'BYDAY/Christian=easter-2' は、キリスト教の聖金曜日 example: 'BYDAY/SolarTerms=term180' は、秋分日(太陽黄経が180度になる日)
-
BYDAY/d=n*m±s(,..);DAYST=b
ユリウス日をdで除した余りがmになる日のうち、n番目のものについて、その±s日目 m は b を基点として計算する デフォルトは n=all, s=0, b=0, dとmは省略不可 /d がない場合、次項のBYWEEKDAYとして扱い、RFC 5545に対する互換性を確保する
-
BYWEEKDAY=n*m±s(,..);WKST=b
ユリウス日を7で除した余りがmになる日のうち、n番目のものについて、その±s日目 m は b を基点として計算する(mとbはともに文字列'MO','TU','WE','TH','FR','SA','SU'で指定) デフォルトは n=all, s=0, b=MO, mは省略不可
-
BYYEAR/d=n*m±s(,..);YEARST=b
通年をdで除した余りがmになる年のうち、n番目のものについて、その±s年目 m は b を基点として計算する デフォルトは n=all, s=0, b=4, dとmは省略不可 通年の意味は暦法に依存する
icd 形式の多言語対応
-
NAMESPACE Property を追加
-
LOCALE Property を追加
-
SUMMARY Property で表現を多言語対応文字列として解釈する
-
RFC6350 ( tools.ietf.org/html/rfc6350 ) 方式にも対応
Content Lines
RFC 5545 3.1 Content Lines では、記述が75文字を超える場合、改行してインデントする。
本ライブラリでは文字数によらず、BEGIN:の次の行を基準にして、より深いインデントがある場合は、
論理的1行を物理的に分割したものとみなして解釈している。実質的には上位互換と判断している
Limitations from RFC 5545
-
VALARM VENENT や VTODO に包含されている VALARM は無視される。 包含元のイベントからの差分時刻での計算に対応していないため。
-
RRULE BYYEARDAY, BYMONTHDAY, BYDAY が存在する場合 BYWEEKDAY の n と s は指定できない。 BYYEARDAY, BYMONTHDAY, BYWEEKDAY が存在する場合 BYDAY の n と s は指定できない。
Defined Under Namespace
Classes: Alarm, Calendar, Daylight, Event, Freebusy, Journal, Root, Standard, Timezone, TimezoneProperty, Todo