特にiOS
、Gmail
、Outlook
、Android
およびWindows Phone
. グーグルで調べたところ、2009年に提案された標準、別名RFC5546が見つかりました。私はこのドキュメントを読み、非常に興味深く、問題を解決できる可能性があるポイントを見つけました。VEVENT カレンダー コンポーネントのメソッドのセクションでは、メソッド REQUEST と PUBLISH の違いについて説明します。しかし、私にははっきりしない点がいくつかあります。
- パブリッシュは何をすべきですか?新しいカレンダーを追加する必要がありますか? (Outlook や iOS のように) 新しいカレンダーを作成する必要がありますか? または (Gmail や Lightning のように) 既存のユーザーカレンダーにイベントを追加する必要がありますか? 編集: 電子メールに添付されたファイルとしてカレンダーに注意してください。
- PUBLISH に複数のイベントを含めることはできますか? ドキュメントから、論理的にはそうですが、Gmail はリストの最初のイベントのみを追加します。Lightning はイベントを 1 つだけ追加し、804a0004 エラーを返します。
- REQUEST はどのように機能しますか? ドキュメントには次のように記載されて
VEVENT | 1+ | All components MUST have the same UID.
います。つまり、カレンダーには複数の VEVENT が含まれる可能性がありますが、それらは同じ UID を持つ必要があります。次に、クライアントはこれらのイベントをどのように区別できますか? 実際、私が試したクライアントは、同じ UID で生成されたイベントを区別できませんでしたが、SEQUENCE が最も高いものだけを追加しました。論理的には、招待状ごとに複数のイベントを送信したくありませんが、RFC ではそれが許可されています (私のケース スタディでは送信したいと考えています)。 - REQUEST ではステートメントを忘れて
VEVENT | 1+ | All components MUST have the same UID.
、ICS ファイル内の各イベントに一意の UID を提供します。Gmail と iOS はファイルに含まれるすべてのイベントを追加しますが、Lightning と Outlook は最初のイベントのみを追加します。この道を追求する方法はありますか、それとも許可されるべきではないので、別の方法を見つける必要がありますか? - 基本的に、私が言及したプラットフォームのユーザーのカレンダーに、単一の ICS ファイルを使用してより多くのイベントを追加するにはどうすればよいでしょうか?
PUBLISH 用のサンプル ICS:
BEGIN:VCALENDAR
PRODID:-//prodid//product//IT
VERSION:2.0
METHOD:PUBLISH
CALSCALE:GREGORIAN
BEGIN:VEVENT
UID:uid1
DTSTAMP:20130515T121437Z
DTSTART:20130619T205000
DTEND:20130619T215000
DESCRIPTION:Desc 1
SUMMARY:Sum 1
LOCATION:location
ORGANIZER:mailto:organizer@somedomain
SEQUENCE:1
STATUS:CONFIRMED
END:VEVENT
BEGIN:VEVENT
UID:uid2
DTSTAMP:20130515T121437Z
DTSTART:20130719T205000
DTEND:20130719T215000
DESCRIPTION:Desc 2
SUMMARY:Sum 2
LOCATION:location
ORGANIZER:mailto:organizer@somedomain
SEQUENCE:1
STATUS:CONFIRMED
END:VEVENT
END:VCALENDAR
リクエストのサンプル:
BEGIN:VCALENDAR
PRODID:-//prodid//product//IT
VERSION:2.0
METHOD:REQUEST
CALSCALE:GREGORIAN
BEGIN:VEVENT
UID:uid1
DTSTAMP:20130515T121437Z
DTSTART:20130619T205000
DTEND:20130619T215000
DESCRIPTION:Desc 1
SUMMARY:Sum 1
LOCATION:location
ORGANIZER:mailto:organizer@somedomain
ATTENDEE;RSVP=TRUE;CN=attendee cn:mailto:attendee@email
SEQUENCE:1
STATUS:CONFIRMED
END:VEVENT
BEGIN:VEVENT
UID:uid2
DTSTAMP:20130515T121437Z
DTSTART:20130719T205000
DTEND:20130719T215000
DESCRIPTION:Desc 2
SUMMARY:Sum 2
LOCATION:location
ORGANIZER:mailto:organizer@somedomain
ATTENDEE;RSVP=TRUE;CN=attendee cn:mailto:attendee@email
SEQUENCE:1
STATUS:CONFIRMED
END:VEVENT
END:VCALENDAR