カレンダーと予定

このガイドでは、カレンダー、予定、それらの相互関係について説明します。

カレンダー

カレンダー 関連するイベントのコレクションと追加のメタデータ 概要、デフォルトのタイムゾーン、場所などが含まれます。各カレンダーは、 ID で識別されます。カレンダーには複数のオーナーを設定できます。

イベント

イベント 特定の日付または時間範囲に関連付けられたオブジェクト。イベントは一意の ID で識別されます。始点と終点の イベントには、概要、説明、 場所、ステータス、リマインダー、添付ファイルなど

イベントの種類

Google カレンダーでは、1 件繰り返しの予定がサポートされています。

  • 単一のイベントは、一意の発生回数を表します。
  • 定期的なイベントは、複数回発生するイベントを定義します。

予定に時間指定終日を指定することもできます。

  • 時間指定イベントは、2 つの特定の時点の間に発生します。時間制限のあるイベント start.dateTime フィールドと end.dateTime フィールドを使用して、 発生しません
  • 終日の予定は、丸 1 日、または連続した日数にまたがります。終日 イベントでは、start.date フィールドと end.date フィールドを使用して、発生タイミングを指定します。 タイムゾーン フィールドは終日の予定には関係ありません。
で確認できます。

主催者

予定の主催者は 1 つのカレンダー(メインコピーを含むカレンダー)です 表示されます。イベントに複数の 参加者に提供します。 参加者は通常、招待されたユーザーのメイン カレンダーです。

次の図は、カレンダー、ファイル、フォルダ、 イベント、その他の関連要素で構成されています。

メインのカレンダーと他のカレンダー

プライマリ カレンダーは、1 つのカレンダーに関連付けられた できます。このカレンダーは新しいユーザー アカウントごとに自動的に作成されます その ID は通常、ユーザーのメインのメールアドレスと一致します。限り、 そのメイン カレンダーを削除したり、「オーナーなし」としたりすることはできないによって できます。ただし、他のユーザーとの共有は引き続き可能です。

プライマリ カレンダーに加えて、任意の数のカレンダーを 他のカレンダーこれらのカレンダーは編集、削除、共有でき 管理できます。

カレンダーとカレンダー リスト

Calendars コレクション 既存のすべてのカレンダーを表します。kubectl を使用した作成と できます。すべての VM で共有されるグローバル プロパティを取得または設定することもできます。 ユーザーの追加や削除ができます。たとえば、カレンダーのタイトルやデフォルトの グローバル プロパティです。

CalendarList は ユーザーが自分のリストに追加したすべてのカレンダー エントリのコレクション( (ウェブ UI の左側のパネルにあります)。既存のアセットを追加したり削除したりするには ユーザーのリストとの間のやり取り。また、これを使用して 値(デフォルトのリマインダーなど)が含まれます。その他 前景色があります。これは、ユーザーごとに異なる色を使用できるためです。 同じカレンダーに対して設定されます。

次の表は、2 つのコレクションのオペレーションの意味を比較したものです。

オペレーション カレンダー CalendarList
insert 新しい予備カレンダーを作成します。デフォルトでは、このカレンダーには クリエイターのカレンダー リストに追加される。 既存のカレンダーをユーザーのリストに挿入します。
delete 予備カレンダーを削除します。 ユーザーのリストからカレンダーを削除します。
get カレンダーのメタデータを取得します。例:タイトル、タイムゾーン メタデータとユーザー固有のカスタマイズを取得する 色やリマインダーの上書きなどを 変更できます
patch/update カレンダーのメタデータを変更します。 ユーザー固有のカレンダー プロパティを変更します。

定期的な予定

毎週の会議など、定期的なスケジュールで複数回行われる予定もあります。 識別できます開始時刻と終了時刻が異なるほか 多くの場合、繰り返されるイベントは同一です。

定義済みのスケジュールに従って繰り返される予定は、繰り返しと呼ばれます。 単一イベントは定期的なものではなく、1 回のみ発生します。

繰り返しルール

定期的な予定のスケジュールは、次の 2 つの部分で定義されます。

  • その開始フィールドと終了フィールド(この最初の一致を 単独の単一イベントのみ)

  • 繰り返しフィールド(時間の経過とともにイベントを繰り返す方法を定義します)。

recurrence フィールドには、1 つまたは複数の文字列を表す文字列の配列が含まれます。 RFC で定義されている RRULERDATE、または EXDATE プロパティ 5545

RRULE プロパティは、特定の期間を対象とする通常のルールを定義するため、最も重要なプロパティです。 その予定を繰り返しますこれは複数のコンポーネントで構成されます。その一部を以下に示します。

  • FREQ - イベントの繰り返しの頻度( DAILYWEEKLY など)。必須です。

  • INTERVAL - FREQ と連携して、イベントの頻度を指定します。 繰り返す必要があります。たとえば、FREQ=DAILY;INTERVAL=2 は、 2 日間です。

  • COUNT - このイベントの繰り返し回数。

  • UNTIL - イベントを繰り返す日付または日時(両端を含む)。

  • BYDAY - イベントを繰り返す曜日(SUMOTU など)。その他の同様のコンポーネントには、BYMONTHBYYEARDAY、および BYHOUR

RDATE プロパティは、イベントが発生したときに追加の日付または日時を指定します。 発生する必要があります例: RDATE;VALUE=DATE:19970101,19970120これを使用して、RRULE でカバーされないオカレンスを追加します。

EXDATE プロパティは RDATE に似ていますが、日付または日時を指定する イベントを発生させないタイミング。つまり、それらの発生回数は 除外されます。これは、繰り返しルールによって生成された有効なインスタンスを指している必要があります。

EXDATERDATE にはタイムゾーンを指定できます。また、日時には日付を指定する必要があります 終日の予定の通知にも適しています。

各プロパティは繰り返しフィールド内に複数回出現できます。 繰り返しは、すべての RRULE ルールと RDATE ルールの和から、 すべての EXDATE ルールから除外されたルールです。

以下に、繰り返し発生するイベントの例を示します。

  1. 毎週火曜日と金曜日に始まる午前 6 時から午前 7 時まで開催されるイベント 2015 年 9 月 15 日から 9 月 29 日の 5 回目の発生後に停止した場合:

    ...
    "start": {
     "dateTime": "2015-09-15T06:00:00+02:00",
     "timeZone": "Europe/Zurich"
    },
    "end": {
     "dateTime": "2015-09-15T07:00:00+02:00",
     "timeZone": "Europe/Zurich"
    },
    "recurrence": [
     "RRULE:FREQ=WEEKLY;COUNT=5;BYDAY=TU,FR"
    ],
    …
    
  2. 2015 年 6 月 1 日から 3 日ごとに繰り返される終日の予定 6 月 10 日を除き、6 月 9 日と 11 日は除きます。

    ...
    "start": {
     "date": "2015-06-01"
    },
    "end": {
     "date": "2015-06-02"
    },
    "recurrence": [
     "EXDATE;VALUE=DATE:20150610",
     "RDATE;VALUE=DATE:20150609,20150611",
     "RRULE:FREQ=DAILY;UNTIL=20150628;INTERVAL=3"
    ],
    …
    

インスタンスと例外

定期的な予定は、複数のインスタンス(特定の発生回数)で構成されます 異なるタイミングで表示されます。これらのインスタンスは、それ自体がイベントとして機能します。

定期的な予定の変更は、予定全体に影響するか、 定期的な予定(およびそのすべての回)に絞り込むことも、個別の予定のみを含めることもできます。 親の定期的な予定とは異なるインスタンスは例外と呼ばれます。

たとえば、例外の概要、開始時間、開始時間、 そのインスタンスのみに招待された追加の参加者に アクセスできるようになりますまた、 その定期的な予定を削除することなく、 (インスタンスのキャンセルはイベント status)。

定期的な予定やインスタンスの操作方法の例: Google Calendar API については、こちらをご覧ください。

タイムゾーン

タイムゾーンは、統一された標準時間が適用される地域を指定します。 Google Calendar API では、 IANA タイムゾーン識別子。

カレンダーと予定の両方にタイムゾーンを設定できます。以下のセクション これらの設定の影響について説明します

カレンダーのタイムゾーン

カレンダーのタイムゾーンは、以下の理由により、デフォルトのタイムゾーンとも呼ばれます。 クエリの結果への影響を確認しますカレンダーのタイムゾーンが 時刻の値は、Pub/Sub によって解釈または提示され、 events.get() events.list()events.instances() メソッドを使用します。

クエリ結果のタイムゾーン変換
get() list()instances() メソッドは、timeZone パラメータを指定します。このパラメータを省略すると、これらのメソッドはすべてカレンダーを使用します。 設定しました。
終日の予定と時間で囲まれた検索語句の照合
list()instances() メソッドを使用すると、メソッド 返すことができます。カレンダーのタイムゾーン 終日イベントの開始時刻と終了時刻を計算して、 フィルタ指定の範囲にあてはまります。

予定のタイムゾーン

イベント インスタンスには開始時刻と終了時刻があります。これらの時間の仕様を タイムゾーンを含めることができます。タイムゾーンは複数の方法で指定できます。 次のすべてに同じ時刻を指定します。

  • dateTime フィールドにタイムゾーンのオフセットを含めます(例: 2017-01-25T09:00:00-0500)。
  • オフセットなしで時刻を指定します(例: 2017-01-25T09:00:00)。timeZone フィールドは空のままにします(これは暗黙的にデフォルトのタイムゾーンを使用します)。
  • オフセットなしで時刻を指定します(例: 2017-01-25T09:00:00)。ただし、timeZone フィールドを使用してタイムゾーンを指定します。

必要に応じて、イベントの時刻を UTC で指定することもできます。

  • 時刻を UTC(2017-01-25T14:00:00Z)で指定するか、ゼロ オフセット 2017-01-25T14:00:00+0000 を使用します。

いずれの場合もイベント時刻の内部表現は同じですが、 ただし、timeZone フィールドを設定すると、 Google カレンダーを使用して予定のタイムゾーンを設定する UI:

イベントのタイムゾーンを示すスクリーンショットの一部

定期的な予定のタイムゾーン

定期的な予定の場合は、常に単一のタイムゾーンを指定する必要があります。 これは、その予定の繰り返しを増やすために必要です。