[要約] RFC 9074は、iCalendarの"VALARM"コンポーネントに関する拡張を定義しており、より柔軟なアラームトリガーとアクションを可能にします。この拡張は、イベントやタスクのリマインダーをカスタマイズし、ユーザーのニーズに合わせた通知を提供するために利用されます。

Internet Engineering Task Force (IETF)                          C. Daboo
Request for Comments: 9074                                         Apple
Updates: 5545                                          K. Murchison, Ed.
Category: Standards Track                                       Fastmail
ISSN: 2070-1721                                              August 2021
        

"VALARM" Extensions for iCalendar

iCalendarの「valarm」拡張子

Abstract

概要

This document defines a set of extensions to the iCalendar "VALARM" component to enhance the use of alarms and improve interoperability between clients and servers.

このドキュメントは、アラームの使用を強化し、クライアントとサーバー間の相互運用性を向上させるために、iCalendar "Valarm"コンポーネントへの一連の拡張子を定義します。

This document updates RFC 5545.

この文書はRFC 5545を更新します。

Status of This Memo

本文書の位置付け

This is an Internet Standards Track document.

これはインターネット規格のトラック文書です。

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.

この文書は、インターネットエンジニアリングタスクフォース(IETF)の製品です。IETFコミュニティのコンセンサスを表します。それは公開レビューを受け、インターネットエンジニアリングステアリンググループ(IESG)による出版の承認を受けました。インターネット規格に関する詳細情報は、RFC 7841のセクション2で利用できます。

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at https://www.rfc-editor.org/info/rfc9074.

この文書の現在のステータス、任意のエラータ、およびフィードバックを提供する方法は、https://www.rfc-editor.org/info/frfc9074で入手できます。

Copyright Notice

著作権表示

Copyright (c) 2021 IETF Trust and the persons identified as the document authors. All rights reserved.

著作権(C)2021 IETF信頼と文書著者として識別された人。全著作権所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.

このドキュメントは、このドキュメントの発行日に有効なBCP 78およびIETFドキュメントに関連するIETFトラストの法的規定(https://trustee.ietf.org/license-info)の対象となります。 これらのドキュメントは、このドキュメントに関するお客様の権利と制限について説明しているため、注意深く確認してください。 このドキュメントから抽出されたコードコンポーネントには、Trust LegalProvisionsのセクション4.eで説明されているSimplifiedBSD Licenseテキストが含まれている必要があり、Simplified BSDLicenseで説明されているように保証なしで提供されます。

Table of Contents

目次

   1.  Introduction
   2.  Conventions Used in This Document
   3.  Extensible Syntax for VALARM
   4.  Alarm Unique Identifier
   5.  Alarm Related To
   6.  Alarm Acknowledgement
     6.1.  Acknowledged Property
   7.  Snoozing Alarms
     7.1.  Relationship Type Property Parameter
     7.2.  Example
   8.  Alarm Proximity Trigger
     8.1.  Proximity Property
     8.2.  Example
   9.  Security Considerations
   10. Privacy Considerations
   11. IANA Considerations
     11.1.  Property Registrations
     11.2.  Relationship Types Registry
     11.3.  Proximity Values Registry
   12. References
     12.1.  Normative References
     12.2.  Informative References
   Acknowledgements
   Authors' Addresses
        
1. Introduction
1. はじめに

The iCalendar specification [RFC5545] defines a set of components used to describe calendar data. One of those is the "VALARM" component, which appears as a subcomponent of the "VEVENT" and "VTODO" components. The "VALARM" component is used to specify a reminder for an event or task. Different alarm actions are possible, as are different ways to specify how the alarm is triggered.

iCalendar指定[RFC5545]は、カレンダーデータの記述に使用される一連のコンポーネントを定義します。その1つは、「VEVENT」および「VTODO」コンポーネントのサブコンポーネントとして表示される「Valarm」コンポーネントです。"Valarm"コンポーネントは、イベントやタスクのためのリマインダーを指定するために使用されます。アラームがどのようにトリガされるかを指定するためのさまざまな方法として、さまざまなアラームアクションが可能です。

As iCalendar has become more widely used and as client-server protocols, such as Calendaring Extensions to WebDAV (CalDAV) [RFC4791], have become more prevalent, several issues with "VALARM" components have arisen. Most of these relate to the need to extend the existing "VALARM" component with new properties and behaviors to allow clients and servers to accomplish specific tasks in an interoperable manner. For example, clients typically need a way to specify that an alarm has been dismissed by a calendar user or has been "snoozed" by a set amount of time. To date, this has been done through the use of custom "X-" properties specific to each client implementation, leading to poor interoperability.

iCalendarがより広く使用されているので、WebDAV(CALDAV)へのカレンダー拡張などのクライアントサーバープロトコルがより普及しているようになったので、「Valarm」コンポーネントのいくつかの問題が発生しました。これらのほとんどは、クライアントやサーバーが相互運用可能な方法で特定のタスクを実行できるように、既存の "Valarm"コンポーネントを新しいプロパティとビヘイビアに拡張する必要性に関連しています。たとえば、クライアントは通常、アラームがカレンダーユーザーによって解除されているか、または設定された時間だけ「Snoozed」されていることを指定する方法が必要です。今日まで、これは各クライアント実装に固有のカスタム「X-」プロパティを使用して行われ、相互運用性が悪くなりました。

This specification defines a set of extensions to "VALARM" components to cover common requirements for alarms not currently addressed in iCalendar. Each extension is defined in a separate section below. For the most part, each extension can be supported independently of the others; though, in some cases, one extension will require another. In addition, this specification describes mechanisms by which clients can interoperably implement common features, such as "snoozing".

この仕様では、現在iCalendarでアドレス指定されていないアラームの一般的な要件をカバーするための「valarm」コンポーネントへの一連の拡張子を定義します。各拡張子は以下の別のセクションで定義されています。ほとんどの場合、各拡張子は他の範囲とは無関係にサポートできます。ただし、場合によっては、1つの拡張子には別の拡張が必要になります。さらに、この仕様では、クライアントが「Snoozing」などの共通の機能を相互運用可能に実装できるメカニズムについて説明します。

2. Conventions Used in This Document
2. この文書で使用されている規約

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

この文書のキーワード "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", および "OPTIONAL" はBCP 14 [RFC2119] [RFC8174]で説明されているように、すべて大文字の場合にのみ解釈されます。

The notation used in this memo to (re-)define iCalendar elements is the ABNF notation of [RFC5234] as used by [RFC5545]. Any syntax elements shown below that are not explicitly defined in this specification come from iCalendar [RFC5545].

このメモに使用されている表記法は、(RFC5545]で使用されているように、[RFC5234]のABNF表記です。本明細書で明示的に定義されていない以下の構文要素は、iCalendar [RFC5545]から来ています。

When XML element types in the namespaces "DAV:" and "urn:ietf:params:xml:ns:caldav" are referenced in this document outside of the context of an XML fragment, the string "DAV:" and "CALDAV:" will be prefixed to the element type names, respectively.

ネームスペース "dav:"と "urn:ietf:params:xml:caldav"のXML要素の種類が "xml:ns:caldav"の場合、XMLフラグメント、文字列 "dav:"および "caldav:"のコンテキストの外側で参照されています。それぞれ要素タイプ名に接頭辞が付けられます。

3. Extensible Syntax for VALARM
3. valarm.のための拡張可能な構文

Section 3.6.6 of [RFC5545] defines the syntax for "VALARM" components and properties within them. However, as written, it is hard to extend this, e.g., by adding a new property common to all types of alarms. Since many of the extensions defined in this document need to extend the base syntax, an alternative form for the base syntax is defined here, with the goal of simplifying specification of the extensions while augmenting the existing functionality defined in [RFC5545] to allow for nested subcomponents (as required by proximity alarm triggers (Section 8)).

[RFC5545]のセクション3.6.6「Valarm」コンポーネントとそれらの中のプロパティの構文を定義します。しかしながら、書かれているように、これを延長することは困難であり、例えば、あらゆる種類のアラームに共通の新しいプロパティを追加することによって困難である。この文書で定義されている多くの拡張機能は基本構文を拡張する必要があるため、ここでは、[RFC5545]で定義されている既存の機能を強化しながら拡張機能の仕様を簡素化することを目的として、ここで定義されています。サブコンポーネント(近接アラームトリガーで要求されるように(セクション8))。

A "VALARM" calendar component is redefined by the following notation:

「valarm」カレンダーコンポーネントは、次の表記法によって再定義されています。

   alarmcext  = "BEGIN" ":" "VALARM" CRLF
                *alarmprop *alarm-subcomp
                "END" ":" "VALARM" CRLF
        
   alarmprop  = (
                ;
                ; the following are REQUIRED
                ; but MUST NOT occur more than once
                ;
                action / trigger /
                ;
                ; one set of action properties MUST be
                ; present and MUST match the action specified
                ; in the ACTION property
                ;
                actionprops /
                ;
                ; the following are OPTIONAL
                ; and MAY occur more than once
                ;
                x-prop / iana-prop
                ;
                )
        
   actionprops = *audiopropext / *disppropext / *emailpropext
        
   audiopropext  = (
                   ;
                   ; '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
                   ;
                   )
        
   disppropext = (
                 ;
                 ; the following are REQUIRED
                 ; but MUST NOT occur more than once
                 ;
                 description /
                 ;
                 ; 'duration' and 'repeat' are both OPTIONAL
                 ; and MUST NOT occur more than once each,
                 ; but if one occurs, so MUST the other
                 ;
                 duration / repeat
                 ;
                 )
        
   emailpropext = (
                  ;
                  ; the following are all REQUIRED
                  ; but MUST NOT occur more than once
                  ;
                  description / 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 is OPTIONAL
                  ; and MAY occur more than once
                  ;
                  attach
                  ;
                  )
        
   alarm-subcomp = (
                   ;
                   ; the following are OPTIONAL
                   ; and MAY occur more than once
                   ;
                   x-comp / iana-comp
                   ;
                   )
        
4. Alarm Unique Identifier
4. アラーム一意の識別子

This extension adds a "UID" property to "VALARM" components to allow a unique identifier to be specified. The value of this property can then be used to refer uniquely to the "VALARM" component.

この拡張子は、一意の識別子を指定できるようにするには、 "valarm"コンポーネントに "uid"プロパティを追加します。このプロパティの値は、 "Valarm"コンポーネントに一意に参照するために使用できます。

The "UID" property defined here follows the definition in Section 3.8.4.7 of [RFC5545] with the security and privacy updates in Section 5.3 of [RFC7986]. In particular, it MUST be a globally unique identifier that does not contain any security- or privacy-sensitive information.

ここで定義されている「UID」プロパティは、[RFC7986]のセキュリティとプライバシーの更新で[RFC5545]のセクション3.8.4.7の定義に従います。特に、セキュリティ上またはプライバシーに敏感な情報を含まないグローバルに一意の識別子でなければなりません。

The "VALARM" component defined in Section 3 is extended here as:

セクション3で定義されている「valarm」コンポーネントは、次のように拡張されています。

   alarmprop  =/ (
                 ;
                 ; the following is OPTIONAL
                 ; but MUST NOT occur more than once
                 ;
                 uid
                 ;
                 )
        
5. 関連するアラーム

It is often convenient to relate one or more "VALARM" components to other "VALARM" components (e.g., see Section 7). This can be accomplished if the "VALARM" components each have their own "UID" property (as per Section 4).

1つまたは複数の「VARARM」コンポーネントを他の「Valarm」コンポーネントに関連付けることが便利です(例えば、セクション7を参照)。これは、「Valarm」コンポーネントにそれぞれ独自の "UID"プロパティがある場合(セクション4に従って)実現できます。

This specification updates the usage of the "RELATED-TO" property defined in Section 3.8.4.5 of [RFC5545] to enable its use with "VALARM" components. Specific types of relationships between "VALARM" components can be identified by registering new values for the "RELTYPE" property parameter defined in Section 3.2.15 of [RFC5545].

この仕様は、[RFC5545]のセクション3.8.4.5で定義されている「関連する」プロパティの使用法を「Valarm」コンポーネントで使用できるように更新します。[RFC5545]のセクション3.2.15で定義されている「Reltype」プロパティパラメータに新しい値を登録することで、「Valarm」コンポーネント間の関係の特定の種類を識別できます。

The "VALARM" component defined in Section 3 is extended here as:

セクション3で定義されている「valarm」コンポーネントは、次のように拡張されています。

   alarmprop  =/ (
                 ;
                 ; the following is OPTIONAL
                 ; and MAY occur more than once
                 ;
                 related
                 ;
                 )
        
6. Alarm Acknowledgement
6. 警報確認

There is currently no way for a "VALARM" component to indicate whether it has been triggered and acknowledged. With the advent of a standard client/server protocol for calendaring and scheduling data ([RFC4791]), it is quite possible for an event with an alarm to exist on multiple clients in addition to the server. If each of those is responsible for performing the action when an alarm triggers, then multiple "alerts" are generated by different devices. In such a situation, a calendar user would like to be able to "dismiss" the alarm on one device and have it automatically dismissed on the others, too.

現在、「valarm」コンポーネントがそれが起動され認められたかどうかを示すための方法はありません。カレンダーおよびスケジューリングデータの標準クライアント/サーバープロトコルの出現([RFC4791])は、サーバーに加えて複数のクライアントにアラームが存在するイベントが非常に可能です。アラームトリガーがトリガーされたときにアクションを実行する責任がある場合は、さまざまなデバイスによって複数の「警告」が生成されます。このような状況では、カレンダーユーザーは1つのデバイス上のアラームを「閉じる」ことができて、それも他の人の上で自動的に解雇されます。

Also, with recurring events that have alarms, it is important to know when the last alarm in the recurring set was acknowledged so that the client can determine whether past alarms have been missed.

また、アラームを持つ繰り返しイベントを使用すると、クライアントが過去のアラームが見逃されているかどうかを判断できるように、繰り返しセット内の最後のアラームがいつ認識されたかを知ることが重要です。

To address these needs, this specification adds an "ACKNOWLEDGED" property to "VALARM" components to indicate when the alarm was last acknowledged (or sent, if acknowledgement is not possible). This is defined by the syntax below.

これらのニーズに対処するために、この仕様は「valarm」コンポーネントに「valarm」コンポーネントに追加して、アラームが最後に確認されたかを示す(または確認応答が不可能な場合は送信されます)。これは以下の構文によって定義されます。

   alarmprop       =/ (
                      ;
                      ; the following is OPTIONAL
                      ; but MUST NOT occur more than once
                      ;
                      acknowledged
                      ;
                      )
        
6.1. Acknowledged Property
6.1. 承認された財産

Property Name: ACKNOWLEDGED

プロパティ名:確認されました

Purpose: This property specifies the UTC date and time at which the corresponding alarm was last sent or acknowledged.

目的:このプロパティは、対応するアラームが最後に送信または認められたUTCの日付と時刻を指定します。

Value Type: DATE-TIME

値の種類:日付 - 時刻

Property Parameters: IANA and nonstandard property parameters can be specified on this property.

プロパティパラメータ:IANAおよび非標準プロパティパラメータは、このプロパティで指定できます。

Conformance: This property can be specified within "VALARM" calendar components.

適合性:このプロパティは、「Valarm」カレンダーコンポーネント内で指定できます。

Description: This property is used to specify when an alarm was last sent or acknowledged. This allows clients to determine when a pending alarm has been acknowledged by a calendar user so that any alerts can be dismissed across multiple devices. It also allows clients to track repeating alarms or alarms on recurring events or to-dos to ensure that the right number of missed alarms can be tracked.

説明:このプロパティは、アラームが最後に送信されたか確認されたかを指定するために使用されます。これにより、クライアントは、アラートが複数のデバイス間で解除される可能性があるように、保留中のアラームがカレンダーユーザーによって確認されたときに判断できます。また、クライアントは、繰り返しのイベントやDOSの繰り返しのアラームやアラームを追跡することもできます。これを確実に見つけることができます。

Clients SHOULD set this property to the current date-time value in UTC when a calendar user acknowledges a pending alarm. Certain kinds of alarms, such as email-based alerts, might not provide feedback as to when the calendar user sees them. For those kinds of alarms, the client SHOULD set this property when the alarm is triggered and the action is successfully carried out.

Calendarユーザーが保留中のアラームを確認すると、クライアントはこのプロパティをUTCの現在の日付時間の値に設定する必要があります。電子メールベースのアラートなどの特定の種類のアラームは、カレンダーユーザーがいつそれらを見るときにフィードバックを提供しない可能性があります。これらの種類のアラームの場合、アラームがトリガーされたときにクライアントはこのプロパティを設定し、アクションが正常に実行されます。

When an alarm is triggered on a client, clients can check to see if an "ACKNOWLEDGED" property is present. If it is, and the value of that property is greater than or equal to the computed trigger time for the alarm, then the client SHOULD NOT trigger the alarm. Similarly, if an alarm has been triggered and an "alert" has been presented to a calendar user, clients can monitor the iCalendar data to determine whether an "ACKNOWLEDGED" property is added or changed in the alarm component. If the value of any "ACKNOWLEDGED" property in the alarm changes and is greater than or equal to the trigger time of the alarm, then clients SHOULD dismiss or cancel any "alert" presented to the calendar user.

アラームがクライアント上で起動されると、クライアントは「確認された」プロパティが存在するかどうかを確認できます。そうであれば、そのプロパティの値がアラームの計算されたトリガー時間以上である場合、クライアントはアラームを起動しないでください。同様に、アラームがトリガされている場合、「警告」がカレンダーユーザーに提示されている場合、クライアントはiCalendarデータを監視して、「確認された」プロパティがアラームコンポーネントで追加または変更されたかどうかを判断できます。アラームの変更内の「確認された」プロパティの値がアラームのトリガー時間以上である場合、クライアントはカレンダーユーザーに提示された「アラート」を解除またはキャンセルする必要があります。

Format Definition: This property is defined by the following notation:

フォーマット定義:このプロパティは、次の表記法で定義されています。

      acknowledged = "ACKNOWLEDGED" *acknowledgedparam ":" datetime CRLF
        
      acknowledgedparam  = (
                           ;
                           ; the following is OPTIONAL
                           ; and MAY occur more than once
                           ;
                           (";" other-param)
                           ;
                           )
        

Example: The following is an example of this property:

例:このプロパティの例は次のとおりです。

ACKNOWLEDGED:20090604T084500Z

確認された:20090604T084500Z

7. Snoozing Alarms
7. スヌーズアラーム

Users often want to "snooze" an alarm, and this specification defines a standard approach to accomplish that.

ユーザーはしばしばアラームを「スヌーズ」したいと思う、この仕様はそれを達成するための標準的なアプローチを定義します。

To "snooze" an alarm that has been triggered, clients MUST do the following:

トリガーされたアラームを「snooze」するには、クライアントは次の手順を実行する必要があります。

1. Set the "ACKNOWLEDGED" property (see Section 6.1) on the triggered alarm.

1. トリガーアラームの「確認された」プロパティ(6.1を参照)を設定します。

2. Create a new "VALARM" component (the "snooze" alarm) within the parent component of the triggered alarm (i.e., as a "sibling" component of the triggered alarm).

2. トリガーされたアラームの親コンポーネント内の新しい "Valarm"コンポーネント( "Snooze"アラーム)を作成します(すなわち、トリガーアラームの「兄弟」コンポーネントとして)。

a. The new "snooze" alarm MUST be set to trigger at the user's chosen "snooze" interval after the original alarm is triggered. Clients SHOULD use an absolute "TRIGGER" property with a "DATE-TIME" value specified in UTC.

a. 元のアラームがトリガされた後に、新しい「Snooze」アラームをユーザーの選択された「Snooze」間隔でトリガーするように設定する必要があります。クライアントは、UTCで指定された「日付 - 時刻」値を持つ絶対的な "trigger"プロパティを使用する必要があります。

b. The new "snooze" alarm MUST have a "RELATED-TO" property (see Section 5) with a value set to the "UID" property value of the original "VALARM" component that was triggered. If the triggered "VALARM" component does not already have a "UID" property, the client MUST add one. The "RELATED-TO" property added to the new "snooze" alarm MUST include a "RELTYPE" property parameter with a value set to "SNOOZE" (see Section 7.1).

b. 新しい「Snooze」アラームには、トリガーされたオリジナルの "Valarm"コンポーネントの "uid"プロパティ値に設定されている値がある "関連する"プロパティ(セクション5を参照)を持つ必要があります。トリガーされた "valarm"コンポーネントに "uid"プロパティがまだない場合、クライアントは1を追加する必要があります。新しい「Snooze」アラームに追加された「関連する」プロパティは、「snooze」に設定された値を持つ "Reltype"プロパティパラメータを含める必要があります(セクション7.1を参照)。

3. When the "snooze" alarm is triggered, the client MUST do the following:

3. 「Snooze」アラームが起動されると、クライアントは次の手順を実行する必要があります。

a. Update the "ACKNOWLEDGED" property on the original related alarm.

a. 元の関連アラームの「確認された」プロパティを更新します。

b. If the "snooze" alarm is itself "snoozed", the client MUST remove the "snooze" alarm component and return to step 2.

b. 「Snooze」アラームがそれ自体「Snoozed」の場合、クライアントは「Snooze」アラームコンポーネントを削除して手順2に戻る必要があります。

Otherwise, if the "snooze" alarm is dismissed, the client MUST do one of the following:

それ以外の場合、「Snooze」アラームが解除されている場合、クライアントは次のいずれかを実行する必要があります。

* Set the "ACKNOWLEDGED" property on the "snooze" alarm.

* "Snooze"アラームに "承認された"プロパティを設定します。

* Remove the "snooze" alarm component.

* 「Snooze」アラームコンポーネントを削除します。

Note that regardless of the final disposition of the "snooze" alarm when triggered, the original "VALARM" component is left unchanged other than updating its "ACKNOWLEDGED" property.

トリガされたときの「Snooze」アラームの最終的な配置に関係なく、オリジナルの "Valarm"コンポーネントは "承認された"プロパティを更新する以外に変更されません。

7.1. Relationship Type Property Parameter
7.1. 関係式プロパティパラメータ

This specification adds the "SNOOZE" relationship type for use with the "RELTYPE" property defined in Section 3.2.15 of [RFC5545]. This is used when relating a "snoozed" "VALARM" component to the original alarm that the "snooze" was generated for.

この仕様は、[RFC5545]のセクション3.2.15で定義されている「RELTYPE」プロパティで使用する「Snooze」リレーションシップタイプを追加します。これは、「Snoozed」コンポーネントを「Snooze」が生成されたオリジナルアラームに関連付ける場合に使用されます。

7.2. Example
7.2. 例

The following example shows the "snoozing", "re-snoozing", and dismissal of an alarm. Note that the encompassing "VCALENDAR" component has been omitted for brevity and that the line breaks surrounding the "VALARM" components are for clarity only and would not be present in the actual iCalendar data.

次の例は、「Snoozing」、「Re-Snoozing」、およびアラームの解雇を示しています。「Vcalendar」コンポーネントを網羅することは、簡潔にするために省略されており、「valarm」コンポーネントを取り囲むラインブレークは明確にするためのものであり、実際のiCalendarデータには存在しません。

Assume that we have the following event with an alarm set to trigger 15 minutes before the meeting:

会議の15分前にトリガーするアラームセットを使用して、次のイベントがあるとします。

   BEGIN:VEVENT
   CREATED:20210302T151004Z
   UID:AC67C078-CED3-4BF5-9726-832C3749F627
   DTSTAMP:20210302T151004Z
   DTSTART;TZID=America/New_York:20210302T103000
   DTEND;TZID=America/New_York:20210302T113000
   SUMMARY:Meeting
        

BEGIN:VALARM UID:8297C37D-BA2D-4476-91AE-C1EAA364F8E1 TRIGGER:-PT15M DESCRIPTION:Event reminder ACTION:DISPLAY END:VALARM

開始:Valarm Uid:8297C37D-BA2D-4476-91AJ-C1EAA364F8E1トリガー:-pt15m説明:イベントリマインダーアクション:表示終了:valarm

END:VEVENT

終わり:vevent

When the alarm is triggered, the user decides to "snooze" it for 5 minutes. The client acknowledges the original alarm and creates a new "snooze" alarm as a sibling of, and relates it to, the original alarm (note that both occurrences of "VALARM" reside within the same "parent" VEVENT):

アラームが起動されると、ユーザーは5分間「スヌーズ」することにしました。クライアントは元のアラームを確認し、新しい「Snooze」アラームを兄弟として作成し、それを元のアラームに関連付けます(「valarm」の発生の両方が同じ「親」Vevent内に存在することに注意してください)。

   BEGIN:VEVENT
   CREATED:20210302T151004Z
   UID:AC67C078-CED3-4BF5-9726-832C3749F627
   DTSTAMP:20210302T151516Z
   DTSTART;TZID=America/New_York:20210302T103000
   DTEND;TZID=America/New_York:20210302T113000
   SUMMARY:Meeting
        

BEGIN:VALARM UID:8297C37D-BA2D-4476-91AE-C1EAA364F8E1 TRIGGER:-PT15M DESCRIPTION:Event reminder ACTION:DISPLAY ACKNOWLEDGED:20210302T151514Z END:VALARM

開始:Valarm UID:8297C37D-BA2D-4476-91AJ-C1EAA364F8E1トリガー:-pt15m説明:イベントリマインダーアクション:展示付き:20210302T1514Zエンド:valarm

   BEGIN:VALARM
   UID:DE7B5C34-83FF-47FE-BE9E-FF41AE6DD097
   TRIGGER;VALUE=DATE-TIME:20210302T152000Z
   RELATED-TO;RELTYPE=SNOOZE:8297C37D-BA2D-4476-91AE-C1EAA364F8E1
   DESCRIPTION:Event reminder
   ACTION:DISPLAY
   END:VALARM
        

END:VEVENT

終わり:vevent

When the "snooze" alarm is triggered, the user decides to "snooze" it again for an additional 5 minutes. The client once again acknowledges the original alarm, removes the triggered "snooze" alarm, and creates another new "snooze" alarm as a sibling of, and relates it to, the original alarm (note the different UID for the new "snooze" alarm):

「スヌーズ」アラームが起動されると、ユーザーはさらに5分間再び「スヌーズ」することにします。クライアントは再度オリジナルのアラームを確認し、トリガーされた「Snooze」アラームを削除し、その兄弟として別の新しい「Snooze」アラームを作成し、それを元のアラームに関連付けます(新しい「Snooze」アラームのさまざまなUIDに注意してください。:

   BEGIN:VEVENT
   CREATED:20210302T151004Z
   UID:AC67C078-CED3-4BF5-9726-832C3749F627
   DTSTAMP:20210302T152026Z
   DTSTART;TZID=America/New_York:20210302T103000
   DTEND;TZID=America/New_York:20210302T113000
   SUMMARY:Meeting
        

BEGIN:VALARM UID:8297C37D-BA2D-4476-91AE-C1EAA364F8E1 TRIGGER:-PT15M DESCRIPTION:Event reminder ACTION:DISPLAY ACKNOWLEDGED:20210302T152024Z END:VALARM

開始:Valarm UID:8297C37D-BA2D-4476-91AJ-C1EAA364F8E1トリガー:-pt15m説明:イベントリマインダーアクション:展示付き:20210302T152024Zエンド:valarm

   BEGIN:VALARM
   UID:87D690A7-B5E8-4EB4-8500-491F50AFE394
   TRIGGER;VALUE=DATE-TIME:20210302T152500Z
   RELATED-TO;RELTYPE=SNOOZE:8297C37D-BA2D-4476-91AE-C1EAA364F8E1
   DESCRIPTION:Event reminder
   ACTION:DISPLAY
   END:VALARM
        

END:VEVENT

終わり:vevent

When the second "snooze" alarm is triggered, the user decides to dismiss it. The client acknowledges both the original alarm and the second "snooze" alarm:

2番目の「Snooze」アラームが起動されると、ユーザーはそれを閉じることを決定します。クライアントは、元のアラームと2番目の「Snooze」アラームの両方を確認します。

   BEGIN:VEVENT
   CREATED:20210302T151004Z
   UID:AC67C078-CED3-4BF5-9726-832C3749F627
   DTSTAMP:20210302T152508Z
   DTSTART;TZID=America/New_York:20210302T103000
   DTEND;TZID=America/New_York:20210302T113000
   SUMMARY:Meeting
        

BEGIN:VALARM UID:8297C37D-BA2D-4476-91AE-C1EAA364F8E1 TRIGGER:-PT15M DESCRIPTION:Event reminder ACTION:DISPLAY ACKNOWLEDGED:20210302T152507Z END:VALARM

開始:Valarm UID:8297C37D-BA2D-4476-91AJ-C1EAA364F8E1トリガー:-pt15m説明:イベントリマインダーアクション:展示付き:20210302T152507Zエンド:valarm

   BEGIN:VALARM
   UID:87D690A7-B5E8-4EB4-8500-491F50AFE394
   TRIGGER;VALUE=DATE-TIME:20210302T152500Z
   RELATED-TO;RELTYPE=SNOOZE:8297C37D-BA2D-4476-91AE-C1EAA364F8E1
   DESCRIPTION:Event reminder
   ACTION:DISPLAY
   ACKNOWLEDGED:20210302T152507Z
   END:VALARM
        

END:VEVENT

終わり:vevent

8. Alarm Proximity Trigger
8. アラーム近接トリガー

Currently, a "VALARM" is triggered when a specific date-time value is reached. It is also desirable to be able to trigger alarms based on location, e.g., when arriving at or departing from a particular location.

現在、特定の日時値に達すると、「valarm」がトリガされます。特定の場所から到着または逸脱するとき、位置に基づいて警報を誘発することができることも望ましい。

This specification adds the following elements to "VALARM" components to indicate when an alarm can be triggered based on location.

この仕様は、次の要素を「valarm」コンポーネントに追加して、位置に基づいてアラームを発生させることができるかを示す。

"PROXIMITY" property: indicates that a location-based trigger is to be used and which action is used for the trigger

"Procesimity"プロパティ:ロケーションベースのトリガーを使用すること、トリガーに使用されるアクションが使用されることを示します。

"VLOCATION" component(s) [RFC9073]: used to indicate the actual location(s) to trigger off of, specified with a URL property containing a 'geo' URI [RFC5870], which allows for two or three coordinate values with an optional uncertainty

"vlocation"コンポーネント(S)[RFC9073]:「Geo 'URI [RFC5870]を含むURLプロパティで指定された実際の位置を指定するために使用されます。オプションの不確実性

   alarmprop       =/ (
                      ;
                      ; the following is OPTIONAL
                      ; but MUST NOT occur more than once
                      ;
                      proximity
                      ;
                      )
        
   alarm-subcomp   =/ (
                      ;
                      ; the following is OPTIONAL
                      ; and MAY occur more than once but only
                      ; when a PROXIMITY property is also present
                      ;
                      locationc
                      ;
                      )
        

Typically, when a "PROXIMITY" property is used, there is no need to specify a time-based trigger using the "TRIGGER" property. However, since "TRIGGER" is defined as a required property for a "VALARM" component, for backwards compatibility, it has to be present but ignored. To indicate a "TRIGGER" that is to be ignored, clients SHOULD use a value a long time in the past. A value of "19760401T005545Z" has been commonly used for this purpose.

通常、 "Proximity"プロパティが使用されるとき、 "trigger"プロパティを使用して時間ベースのトリガを指定する必要はありません。ただし、「トリガー」は「valarm」コンポーネントに必要なプロパティとして定義されているため、下位互換性のためには存在するが無視される必要があります。無視される「トリガ」を示すために、クライアントは過去に長時間の値を使用する必要があります。この目的のために一般的に使用されています「19760401T005545Z」の値が一般的に使用されています。

8.1. Proximity Property
8.1. 近接性

Property Name: PROXIMITY

プロパティ名:近接性

Purpose: This property indicates that a location-based trigger is applied to an alarm.

目的:このプロパティは、位置ベースのトリガがアラームに適用されていることを示しています。

Value Type: TEXT

値の種類:テキスト

Property Parameters: IANA and nonstandard property parameters can be specified on this property.

プロパティパラメータ:IANAおよび非標準プロパティパラメータは、このプロパティで指定できます。

Conformance: This property can be specified within "VALARM" calendar components.

適合性:このプロパティは、「Valarm」カレンダーコンポーネント内で指定できます。

Description: This property is used to indicate that an alarm has a location-based trigger. Its value identifies the action that will trigger the alarm.

説明:このプロパティは、アラームに位置ベースのトリガーがあることを示すために使用されます。その値はアラームをトリガーするアクションを識別します。

When the property value is set to "ARRIVE", the alarm is triggered when the calendar user agent arrives in the vicinity of one or more locations. When set to "DEPART", the alarm is triggered when the calendar user agent departs from the vicinity of one or more locations. Each location MUST be specified with a "VLOCATION" component. Note that the meaning of "vicinity" in this context is implementation defined.

プロパティ値が「到着」に設定されている場合、カレンダーユーザーエージェントが1つ以上の場所の近くに到着したときにアラームが発生します。「出発」に設定すると、カレンダーユーザーエージェントが1つ以上の場所の近くから出発したときにアラームが発生します。各場所は「vlocation」コンポーネントで指定する必要があります。これに関連した「近く」の意味は実装定義されていることに注意してください。

When the property value is set to "CONNECT", the alarm is triggered when the calendar user agent connects to an automobile to which it has been paired via Bluetooth [BTcore]. When set to "DISCONNECT", the alarm is triggered when the calendar user agent disconnects from an automobile to which it has been paired via Bluetooth. Note that neither current implementations of proximity alarms nor this document have a mechanism to target a particular automobile. Such a mechanism may be specified in a future extension.

プロパティ値が "Connect"に設定されている場合、カレンダーユーザーエージェントがBluetooth [BTCORE]を介してペアになっている自動車に接続したときにアラームが発生します。「切断」に設定すると、カレンダーのユーザーエージェントがBluetooth経由でペアになっている自動車から切断されたときにアラームが発生します。近接アラームの現在の実装もこの文書も特定の自動車をターゲットにするメカニズムもありません。そのようなメカニズムは、将来の拡張で指定されてもよい。

Format Definition: This property is defined by the following notation:

フォーマット定義:このプロパティは、次の表記法で定義されています。

      proximity = "PROXIMITY" *proximityparam ":" proximityvalue CRLF
        
      proximityparam  = (
                        ;
                        ; the following is OPTIONAL
                        ; and MAY occur more than once
                        ;
                        (";" other-param)
                        ;
                        )
        
      proximityvalue  = "ARRIVE" / "DEPART" /
                        "CONNECT" / "DISCONNECT" / iana-token / x-name
        
8.2. Example
8.2. 例

The following example shows a "VALARM" component with a proximity trigger set to trigger when the device running the calendar user agent leaves the vicinity defined by the URL property in the "VLOCATION" component. Note use of the "u=" parameter with the 'geo' URI to define the uncertainty of the location determination.

次の例は、カレンダーユーザーエージェントを実行しているデバイスが「vlocation」コンポーネントのURLプロパティで定義された付近を離れたときにトリガーに設定されたプロキシミティトリガーを持つ "Valarm"コンポーネントを示しています。注意位置決定の不確実性を定義するための「u =」パラメータを使用する。

   BEGIN:VALARM
   UID:77D80D14-906B-4257-963F-85B1E734DBB6
   ACTION:DISPLAY
   TRIGGER;VALUE=DATE-TIME:19760401T005545Z
   DESCRIPTION:Remember to buy milk
   PROXIMITY:DEPART
   BEGIN:VLOCATION
   UID:123456-abcdef-98765432
   NAME:Office
   URL:geo:40.443,-79.945;u=10
   END:VLOCATION
   END:VALARM
        
9. Security Considerations
9. セキュリティに関する考慮事項

In addition to the security properties of iCalendar (see Section 7 of [RFC5545]), a "VALARM", if not monitored properly, can be used to disturb users and/or leak personal information. For instance, an undesirable audio alert could cause embarrassment; an unwanted display alert could be considered an annoyance; or an email alert could be used to leak a user's location to a third party or to send unsolicited email to multiple users. Therefore, CalDAV clients and servers that accept iCalendar data from a third party (e.g., via iCalendar Transport-Independent Interoperability Protocol (iTIP) [RFC5546], a subscription feed, or a shared calendar) SHOULD remove each "VALARM" from the data prior to storing in their calendar system.

iCalendarのセキュリティプロパティに加えて([RFC5545]のセクション7を参照)、正しく監視されていない場合は「valarm」を使用してユーザーを邪魔したり、個人情報を漏らすことができます。たとえば、望ましくないオーディオアラートは恥ずかしさを引き起こす可能性があります。不要な表示警告は迷惑と見なすことができます。あるいは、ユーザーの場所を第三者に漏らすため、または複数のユーザーに迷惑メールを送信するために、電子メールの警告を使用することができます。したがって、(例えば、iCalendarトランスポート非依存型相互運用性プロトコル(ITIP)[RFC5546]、サブスクリプション、または共有カレンダー)からのICRENDARデータを受け入れるCALDAVクライアントとサーバーは、データから各「valarm」を削除する必要があります。カレンダーシステムに格納する。

Security considerations related to unique identifiers for "VALARM" are discussed in Section 4.

「valarm」の固有識別子に関連するセキュリティ上の考慮事項については、セクション4で説明しています。

10. Privacy Considerations
10. プライバシーに関する考慮事項

A proximity "VALARM", if not used carefully, can leak a user's past, present, or future location. For instance, storing an iCalendar resource containing proximity "VALARM"s to a shared calendar on CalDAV server can expose to anyone that has access to that calendar the user's intent to leave from or arrive at a particular location at some future time. Furthermore, if a CalDAV client updates the shared iCalendar resource with an "ACKNOWLEDGED" property when the alarm is triggered, this will leak the exact date and time that the user left from or arrived at the location. Therefore, CalDAV clients that implement proximity alarms SHOULD give users the option of storing and/or acknowledging the alarms on the local device only and not storing the alarm and/or acknowledgement on a remote server.

近接の「valarm」は、慎重に使用されていない場合は、ユーザーの過去、現在、または将来の場所を漏らす可能性があります。たとえば、Caldav Server上の共有カレンダーに「valarm」を含むiCalendarリソースを格納することは、そのカレンダーにアクセスできる人にさらされることができます。さらに、ALARMがトリガーされたときにCALDAVクライアントが「承認された」プロパティで共有iCalendarリソースを更新した場合、これはユーザーが場所に残されたか到着した正確な日時をリークします。したがって、近接アラームを実装するCALDAVクライアントは、ローカルデバイス上のアラームを保存および/または確認するオプションをユーザーに提供する必要があり、アラームおよび/または承認をリモートサーバーに保存しないでください。

Privacy considerations related to unique identifiers for "VALARM" are discussed in Section 4.

「valarm」の固有の識別子に関連するプライバシーに関する考慮事項については、セクション4で説明しています。

11. IANA Considerations
11. IANAの考慮事項
11.1. Property Registrations
11.1. プロパティ登録

This document defines the following new iCalendar properties that have been added to the "Properties" registry defined in Section 8.2.3 of [RFC5545] and located here: <https://www.iana.org/assignments/ icalendar>.

このドキュメントでは、[RFC5545]のセクション8.2.3で定義されている「プロパティ」レジストリに追加された次の新しいiCalendarプロパティを定義します。<https://www.iana.org/assignments / iCalendar>。

            +==============+=========+=======================+
            | Property     | Status  | Reference             |
            +==============+=========+=======================+
            | ACKNOWLEDGED | Current | RFC 9074, Section 6.1 |
            +--------------+---------+-----------------------+
            | PROXIMITY    | Current | RFC 9074, Section 8.1 |
            +--------------+---------+-----------------------+
        

Table 1: Additions to the Properties Registry

表1:プロパティレジストリへの追加

11.2. Relationship Types Registry
11.2. 関係タイプレジストリ

This document defines the following new iCalendar relationship type that has been added to the "Relationship Types" registry defined in Section 8.3.8 of [RFC5545] and located here: <https://www.iana.org/assignments/icalendar>.

このドキュメントでは、[RFC5545]のセクション8.3.8で定義されている「関係タイプ」レジストリに追加された次の新しいiCalendar関係タイプを定義し、ここにあります。<https://www.iana.org/ashignments/Calendar>。

          +===================+=========+=======================+
          | Relationship Type | Status  | Reference             |
          +===================+=========+=======================+
          | SNOOZE            | Current | RFC 9074, Section 7.1 |
          +-------------------+---------+-----------------------+
        

Table 2: Addition to the Relationship Types Registry

表2:関係タイプのレジストリへの追加

11.3. Proximity Values Registry
11.3. 近接値レジストリ

A new iCalendar registry for values of the "PROXIMITY" property has been created and is located here: <https://www.iana.org/assignments/ icalendar>.

"Proximity"プロパティの値の新しいiCalendarレジストリが作成され、ここにあります。<https://www.iana.org/assignments / iCalendar>。

Additional values MAY be used, provided the process described in Section 8.2.1 of [RFC5545] is used to register them, using the template in Section 8.2.6 of [RFC5545].

[RFC5545]のセクション8.2.1で説明されているプロセスを使用して、[RFC5545]のセクション8.2.6のテンプレートを使用して、追加値を使用することができます。

The following table has been used to initialize the Proximity Value Registry.

次の表は、近接値レジストリを初期化するために使用されています。

             +============+=========+=======================+
             | Value      | Status  | Reference             |
             +============+=========+=======================+
             | ARRIVE     | Current | RFC 9074, Section 8.1 |
             +------------+---------+-----------------------+
             | DEPART     | Current | RFC 9074, Section 8.1 |
             +------------+---------+-----------------------+
             | CONNECT    | Current | RFC 9074, Section 8.1 |
             +------------+---------+-----------------------+
             | DISCONNECT | Current | RFC 9074, Section 8.1 |
             +------------+---------+-----------------------+
        

Table 3: Initial Contents of the Proximity Values Registry

表3:近接値レジストリの初期内容

12. References
12. 参考文献
12.1. Normative References
12.1. 引用文献

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, <https://www.rfc-editor.org/info/rfc2119>.

[RFC2119] BRADNER、S、「RFCSで使用するためのキーワード」、BCP 14、RFC 2119、DOI 10.17487 / RFC2119、1997年3月、<https://www.rfc-editor.org/info/RFC2119>。

[RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", STD 68, RFC 5234, DOI 10.17487/RFC5234, January 2008, <https://www.rfc-editor.org/info/rfc5234>.

[RFC5234] Crocker、D.、ED。2008年1月、<https://www.rfc-editor.org/info/rfc-editor.org/info/rfc- editor.org/info/rfc523,2008、<https://www.rfc-editor.org/info/rfc- editor.org/info/rfc- editor.org/info/rfc- editor.org/info/rfc- editor.org/info/rfc- editor.org/info/rfc5234>。

[RFC5545] Desruisseaux, B., Ed., "Internet Calendaring and Scheduling Core Object Specification (iCalendar)", RFC 5545, DOI 10.17487/RFC5545, September 2009, <https://www.rfc-editor.org/info/rfc5545>.

[RFC5545] Desruisseaux、B.、ED。、「インターネットカレンダーとスケジューリングコアオブジェクト仕様(iCalendar)」、RFC 5545、DOI 10.17487 / RFC5545、2009年9月、<https://www.rfc-editor.org/info/RFC5545>。

[RFC5870] Mayrhofer, A. and C. Spanring, "A Uniform Resource Identifier for Geographic Locations ('geo' URI)", RFC 5870, DOI 10.17487/RFC5870, June 2010, <https://www.rfc-editor.org/info/rfc5870>.

[RFC5870] MayRhofer、A.およびC. Spanring、「地理的位置の統一資源識別子( 'Geo' Uri)」、RFC 5870、DOI 10.17487 / RFC5870、2010年6月、<https://www.rfc-編集者。org / info / rfc5870>。

[RFC7986] Daboo, C., "New Properties for iCalendar", RFC 7986, DOI 10.17487/RFC7986, October 2016, <https://www.rfc-editor.org/info/rfc7986>.

[RFC7986] Daboo、C.、「ICALendarの新しいプロパティ」、RFC 7986、DOI 10.17487 / RFC7986、2016年10月、<https://www.rfc-editor.org/info/rfc7986>。

[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, <https://www.rfc-editor.org/info/rfc8174>.

[RFC8174] Leiba、B、「RFC 2119キーワードの大文字の曖昧さ」、BCP 14、RFC 8174、DOI 10.17487 / RFC8174、2017年5月、<https://www.rfc-editor.org/info/RFC8174>。

[RFC9073] Douglass, M., "Event Publishing Extensions to iCalendar", RFC 9073, DOI 10.17487/RFC9073, August 2021, <https://www.rfc-editor.org/info/rfc9073>.

[RFC9073] Douglass、M。、「イベント発行拡張機能」、RFC 9073、DOI 10.17487 / RFC9073、2021年8月、<https://www.rfc-editor.org/info/rfc9073>。

12.2. Informative References
12.2. 参考引用

[BTcore] Bluetooth Special Interest Group, "Bluetooth Core Specification Version 5.0 Feature Overview", December 2016, <https://www.bluetooth.com/bluetooth-resources/ bluetooth-5- go-faster-go-further/>.

[BTCORE] Bluetooth特別興味グループ、「Bluetooth Core Specification Version 5.0機能概要」、2016年12月、<https://www.bluetooth.com/bluetooth-resources/ Bluetooth-5- Bluetooth-5-さらに/>。

[RFC4791] Daboo, C., Desruisseaux, B., and L. Dusseault, "Calendaring Extensions to WebDAV (CalDAV)", RFC 4791, DOI 10.17487/RFC4791, March 2007, <https://www.rfc-editor.org/info/rfc4791>.

[RFC4791] Daboo、C.、Desruisseaux、B.、およびL. DusseAll、「WebDAVへのカレンダー拡張(Caldav)」、RFC 4791、DOI 10.17487 / RFC4791、2007年3月、<https://www.rfc-編集者。ORG / INFO / RFC4791>。

[RFC5546] Daboo, C., Ed., "iCalendar Transport-Independent Interoperability Protocol (iTIP)", RFC 5546, DOI 10.17487/RFC5546, December 2009, <https://www.rfc-editor.org/info/rfc5546>.

[RFC5546] Daboo、C、ED。、「ICALENDAR Transponite-Decendent Intemoperability Protocol(ITIP)」、RFC 5546、DOI 10.17487 / RFC5546、2009年12月、<https://www.rfc-editor.org/info/rfc5546>。

Acknowledgements

謝辞

This specification came about via discussions at The Calendaring and Scheduling Consortium. Also, thanks to the following for providing feedback: Bernard Desruisseaux, Mike Douglass, Jacob Farkas, Jeffrey Harris, Ciny Joy, Barry Leiba, and Daniel Migault.

この仕様は、CalendaringおよびScheduling Consortiumでの議論を介して行われました。また、フィードバックを提供するための次のおかげで、Bernard Desruisseaux、Mike Douglass、Jacob Farkas、Jeffrey Harris、Ciny Joy、Barry Leiba、Daniel Migault。

Authors' Addresses

著者の住所

Cyrus Daboo Apple Inc. 1 Infinite Loop Cupertino, CA 95014 United States of America

Cyrus Daboo Apple Inc. 1 Infinite Loop Cupertino、CA 95014アメリカ合衆国

   Email: cyrus@daboo.name
   URI:   http://www.apple.com/
        

Kenneth Murchison (editor) Fastmail US LLC Suite 1201 1429 Walnut St Philadelphia, PA 19102 United States of America

Kenneth Murchison(編集)Fastmail US LLC Suite 1201 1429 Walnut St Philadelphia、PA 19102アメリカ

   Email: murch@fastmailteam.com
   URI:   http://www.fastmail.com/