SSブログ

アラームコンポーネント(VALARM)のつづき2 [iCalendar]

またまた前回の続きです。この書き方がいいかどうか微妙ですが、前回の様に列挙して行きます。

  • 「TRIGGER」プロパティはアラームの発生時期を記載する
    →EVENT、TODOの開始前いつぐらいかで指定
    →「RELATED」パラメータでEVENT、TODOの始まりもしくは終わりのどちらと関係があるかを記載
    →UTCでの日時で指定することも可能
  • アラームをEVENT、TODOの開始時にセットする場合、EVENT、TODOに「DTSTART」プロパティを記載すること(MUST)
  • アラームをEVENT、TODOの終了時にセットする場合、EVENT、TODOに「DTEND」プロパティを記載するか、「DTSTART」と「DURATION」プロパティを記載すること(MUST)
  • 「VTODO」カレンダーコンポーネント内でTODOの期限時に設定されたアラームは「DUE」プロパティを記載する(MUST)か、「DTSTART」プロパティと「DURATION」プロパティの両方を設定する(MUST)
  • 繰り返しでトリガーを立てる事も可能。
    →繰り返す場合、「DURATION」と「REPEAT」プロパティを含む事(MUST)
    →「DURATION」プロパティは繰り返し間隔。
    →「REPEAT」プロパティは繰り返し回数。初回は数に含まない
    →「DURATION」と「REPEAT」のいずれかのプロパティが無い場合は繰り返さない。


・・・なんか、ちゃんとまとめないと列挙してるだけでは、分かりにくいですね・・。と言うか、全体像がつかみにくいですね・・。

それはさておき、まだちょっとあるんですが、今回は力つきてしまいました・・・。だらだらしてますが、つづく。







アラームコンポーネント(VALARM)のつづき [iCalendar]

前回のつづきです。VALARMはなんか長いので、今回を入れて後3回分くらいになってしまうかも・・・。

書かれている内容を箇条書きで列挙して行きます。必須プロパティについて、前回の表を見れば分かる物の記述ははしょる事にします。

  • イベントやTO DOの備忘、通知のためのコンポーネント
  • 「ACTION」プロパティが「AUDIO」の場合、音声リソース(MUST)を指す「ATTACH」プロパティを一つのみ含む事ができる。
  • 「ACTION」プロパティが「DISPLAY」の場合、「DESCRIPTION」プロパティは通知の際に表示するテキストを含む。
  • 「ACTION」プロパティが「EMAIL」の場合:
    • 「DESCRIPTION」プロパティはメッセージボディのテキストを含む
    • 「SUMMARY」プロパティはメッセージのタイトル(件名)に使用されるテキストを含む
    • 「ATTENDEE」プロパティはメッセージの宛先のメールアドレスを含む
    • 「ATTACH」プロパティはメッセージに添付する物を含む
    • アラーム発生時にメールの送信が行われる
  • 「VEVENT」「VTODO」カレンダーコンポーネント内のみに記載可能(MUST)
  • ネストはできない
  • 一つの「VEVENT」「VTODO」カレンダーコンポーネント内に複数記載可


・・・中途半端な位置なのですが、今日は疲れたので、続きはまた次回にします。もう一回で、済みますかね。

つづく。



リンクシェア・ジャパンのレビューアフィリエイトで報酬をもらおう

アラームコンポーネント(VALARM) [iCalendar]

コンポーネント系の最後になりますが、「VALARM」です。「VEVENT」と「VTODO」に含まれる場合のあるコンポーネントですね。単独で存在できるのかどうかは、今のところ不明。アラームを定義するためのコンポーネントです。

定義は下記の通り。

alarmc     = "BEGIN" ":" "VALARM" CRLF
             (audioprop / dispprop / emailprop)
             "END" ":" "VALARM" CRLF

audioprop  = *(
           ;
           ; 'action' and 'trigger' are both REQUIRED,
           ; but MUST NOT occur more than once.
           ;
           action / trigger /
           ;
           ; 'duration' and 'repeat' are both OPTIONAL,
           ; and MUST NOT occur more than once each;
           ; but if one occurs, so MUST the other.
           ;
           duration / repeat /
           ;
           ; The following is OPTIONAL,
           ; but MUST NOT occur more than once.
           ;
           attach /
           ;
           ; The following is OPTIONAL,
           ; and MAY occur more than once.
           ;
           x-prop / iana-prop
           ;
           )

dispprop   = *(
           ;
           ; The following are REQUIRED,
           ; but MUST NOT occur more than once.
           ;
           action / description / trigger /
           ;
           ; 'duration' and 'repeat' are both OPTIONAL,
           ; and MUST NOT occur more than once each;
           ; but if one occurs, so MUST the other.
           ;
           duration / repeat /
           ;
           ; The following is OPTIONAL,
           ; and MAY occur more than once.
           ;
           x-prop / iana-prop
           ;
           )

emailprop  = *(
           ;
           ; The following are all REQUIRED,
           ; but MUST NOT occur more than once.
           ;
           action / description / trigger / summary /
           ;
           ; The following is REQUIRED,
           ; and MAY occur more than once.
           ;
           attendee /
           ;
           ; 'duration' and 'repeat' are both OPTIONAL,
           ; and MUST NOT occur more than once each;
           ; but if one occurs, so MUST the other.
           ;
           duration / repeat /
           ;
           ; The following are OPTIONAL,
           ; and MAY occur more than once.
           ;
           attach / x-prop / iana-prop
           ;
           )


「audioprop」「dispprop」「emailprop」の3つのパートに別れていますね。それぞれがサブコンポーネントになるんでしょうか? プロパティもそれぞれについて、定義されています。別々にまとめてみます。なお、「M」は「必須」、「M/O」は「場合によっては必須」、「O」は「オプション」です。

audioprop
actionM二つ以上設定しない(MUST NOT)
triggerM二つ以上設定しない(MUST NOT)
durationM/O二つ以上設定しない(MUST NOT)。「repeat」が設定された場合は必須(MUST)
repeatM/O二つ以上設定しない(MUST NOT)。「duration」が設定された場合は必須(MUST)
attachO二つ以上設定しない(MUST NOT)
x-propO二つ以上設定してもよい(MAY)
iana-propO二つ以上設定してもよい(MAY)
dispprop
actionM二つ以上設定しない(MUST NOT)
descriptionM二つ以上設定しない(MUST NOT)
triggerM二つ以上設定しない(MUST NOT)
durationM/O二つ以上設定しない(MUST NOT)。「repeat」が設定された場合は必須(MUST)
repeatM/O二つ以上設定しない(MUST NOT)。「duration」が設定された場合は必須(MUST)
x-propO二つ以上設定してもよい(MAY)
iana-propO二つ以上設定してもよい(MAY)
emailprop
actionM二つ以上設定しない(MUST NOT)
descriptionM二つ以上設定しない(MUST NOT)
triggerM二つ以上設定しない(MUST NOT)
summaryM二つ以上設定しない(MUST NOT)
attendeeM二つ以上設定してもよい(MAY)
durationM/O二つ以上設定しない(MUST NOT)。「repeat」が設定された場合は必須(MUST)
repeatM/O二つ以上設定しない(MUST NOT)。「duration」が設定された場合は必須(MUST)
attachO二つ以上設定してもよい(MAY)
x-propO二つ以上設定してもよい(MAY)
iana-propO二つ以上設定してもよい(MAY)


以下、説明が結構長いので、つづく。




セブンネットショッピング(旧セブンアンドワイ)

タイムゾーンコンポーネント(VTIMEZONE)のつづき [iCalendar]

前回の続きです。

前回見ましたようにVTIMEZONEコンポーネントはその中にプロパティとサブコンポーネントを含んでいます。まずは、サブコンポーネントの外にあるプロパティについて下記の通りに記述されています。

プロパティ名M/O概要
TZIDMTEXT iCalendarオブジェクト内で個々の「VTIMEZONE」コンポーネントを識別するために使用。
LAST-MODIFIEDOUTC(?) 本コンポーネントの定義の最終更新日時を設定する。
TZURLOURL 公開されている「VTIMEZONE」のURLを指定する。URLは誰でもアクセスできるリソースを指すべき(SHOULD)で、 「file:」URLや閉じた環境のURLであるべきでない(SHOULD NOT)。


また、「STANDARD」や「DAYLIGHT」サブコンポーネントのプロパティは下記の通りです。・・・前回の定義と記述順が違いますね・・・。いいですが・・。

プロパティ名M/O概要
DTSTARTMDATE-TIME サブコンポーネント定義が有効になる開始日時を指定。ローカル時刻で記載(MUST)。
TZOFFSETFROMMUTC offset タイムゾーンの適用開始時点を「DTSTART」からのオフセットで示す(?)
下記の例はニューヨークの秋から有効になることを示す。

DTSTART:19671029T020000
TZOFFSETFROM:-0400
TZOFFSETTOMUTC offset タイムゾーンが有効になった時のUTCオフセットを示す。
TZNAMEOTEXT タイムゾーンの表示名を記述する
RRULEO タイムゾーンの開始日時の指定に利用する。特に次の目的に利用。

・効果の満了日が分かっている場合は「UNTIL」を設定する(MUST)。また、その設定値はUTC time(MUST)。
・開始日が「RRULE」で決められる場合、「DTSTART」「TZOFFSETFROM」プロパティを使用する(MUST)
RDATEODATE-TIME(?) タイムゾーンの開始日時の指定に利用する。日時はローカルタイムで指定(MUST)。UTC offsetは「TZOFFSETFROM」に記述。
COMMENTOTEXT タイムゾーンに関する説明の文章を記載。


う~ん、今一意味が取れてないところもありますが、下記の例を見れば理解できるでしょうか・・。

BEGIN:VTIMEZONE
TZID:America/New_York
LAST-MODIFIED:20050809T050000Z
BEGIN:DAYLIGHT
DTSTART:19670430T020000
RRULE:FREQ=YEARLY;BYMONTH=4;
 BYDAY=-1SU;UNTIL=19730429T070000Z
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19671029T020000
RRULE:FREQ=YEARLY;BYMONTH=10;
 BYDAY=-1SU;UNTIL=20061029T060000Z
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19740106T020000
RDATE:19750223T020000
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART:19760425T020000
RRULE:FREQ=YEARLY;BYMONTH=4;
 BYDAY=-1SU;UNTIL=19860427T070000Z
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART:19870405T020000
RRULE:FREQ=YEARLY;BYMONTH=4;
 BYDAY=1SU;UNTIL=20060402T070000Z
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART:20070311T020000
RRULE:FREQ=YEARLY;BYMONTH=3;
 BYDAY=2SU
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20071104T020000
RRULE:FREQ=YEARLY;BYMONTH=11;
 BYDAY=1SU
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
END:STANDARD
END:VTIMEZONE
ニューヨークで1967年4月30日3:00:00 EDTに有効になるタイムゾーンルール。
BEGIN:VTIMEZONE
TZID:America/New_York
LAST-MODIFIED:20050809T050000Z
BEGIN:STANDARD
DTSTART:20071104T020000
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20070311T020000
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
END:VTIMEZONE
「DTSTART」プロパティのみを設定しているニューヨークのタイムゾーン情報。 2007年3月11日3:00:00 EDT ~2008年3月9日 1:59:59 ESTの間の繰り返しイベントのみに適合する。 例えば、2007年6月1日~2007年12月31日の毎週金曜日8:00am~9:00amに起こるイベントに利用可能。
BEGIN:VTIMEZONE
TZID:America/New_York
LAST-MODIFIED:20050809T050000Z
TZURL:http://zones.example.com/tz/
 America-New_York.ics
BEGIN:STANDARD
DTSTART:20071104T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20070311T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
END:VTIMEZONE
ニューヨークの「RRULE」を利用した現在のタイムゾーンの例。「STANDARD」「DAYLIGHT」のいずれも終了日は設定されていない。本日以降、永遠に有効なイベントとなる。
BEGIN:VTIMEZONE
TZID:Fictitious
LAST-MODIFIED:19870101T000000Z
BEGIN:STANDARD
DTSTART:19671029T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;
 BYMONTH=10
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19870405T020000
RRULE:FREQ=YEARLY;BYDAY=1SU;
 BYMONTH=4;UNTIL=19980404T070000Z
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
END:VTIMEZONE
終了日の設定されている架空のDaylight Timeルールのタイムゾーンの例。
BEGIN:VTIMEZONE
TZID:Fictitious
LAST-MODIFIED:19870101T000000Z
BEGIN:STANDARD
DTSTART:19671029T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19870405T020000
RRULE:FREQ=YEARLY;BYDAY=1SU;
 BYMONTH=4;UNTIL=19980404T070000Z
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART:19990424T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=4
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
END:VTIMEZONE
1つ目のDaylight Timeルールに終了日が設定されている架空のタイムゾーンの例。 2つ目のDaylight Timeルールは1つ目が終わった後に有効になる(?)


例がやたらと長くなりましたが、ちゃんと見てないので、意味が正しく取れてないかも知れません。



【参考】
What is an onset date? - YAHOO! ANSWERS






ブログを作る(無料) powered by SSブログ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。