dackdive's blog

新米webエンジニアによる技術ブログ。JavaScript(React), Salesforce, Python など

[Google Calendar API]transparencyプロパティの仕様

ドキュメント読んだけど UI との対応がよくわからなかったのでメモ。
Google Calendar API のバージョンは記事執筆時点で v3。

transparency プロパティについて、API のリファレンス より引用。

f:id:dackdive:20150730171153p:plain

Whether the event blocks time on the calendar. Optional. Possible values are:

  • "opaque" - The event blocks time on the calendar. This is the default value.
  • "transparent" - The event does not block time on the calendar.

transparency が示しているもの

このプロパティに対応するのは、予定の作成画面に表示される「外部向け表示」(英語だと「Show me as」)という項目らしい。

f:id:dackdive:20150730171422p:plain

予定あり:"opaque"(デフォルト)
予定なし:"transparent"

transparency による挙動の違い

簡単な検証を行ってみる。

f:id:dackdive:20150731175151p:plain

Google カレンダーで「外部向け表示」が「予定あり」の予定(タイトル:OPAQUE)と「予定なし」の予定(タイトル:TRANSPARENT)を作る。

Google Calendar API v3 の API Explorer で予定を取得する。

「予定あり」の予定 (OPAQUE) を取得した結果
{
  "kind": "calendar#event",
  "etag": ...,
  "id": ...,
  "status": "confirmed",
  "htmlLink": ...,
  "created": "2015-07-31T08:41:27.000Z",
  "updated": "2015-07-31T08:41:27.056Z",
  "summary": "OPAQUE",
  "creator": {...},
  "organizer": {...},
  "start": {
   "dateTime": "2015-07-31T10:00:00+09:00"
  },
  "end": {
   "dateTime": "2015-07-31T11:00:00+09:00"
  },
  "iCalUID": ...,
  "sequence": 0,
  "hangoutLink": ...,
  "reminders": {
   "useDefault": true
  }
},

transparency はデフォルト値の opaque なのでプロパティ自体が出力されないよう。
このへんの仕様は こないだguestCan... プロパティと一緒。

「予定なし」の予定 (TRANSPARENT) を取得した結果
{
  "kind": "calendar#event",
  "etag": ...,
  "id": ...,
  "status": "confirmed",
  "htmlLink": ...,
  "created": "2015-07-31T08:41:42.000Z",
  "updated": "2015-07-31T08:42:19.216Z",
  "summary": "TRANSPARENT",
  "creator": {...},
  "organizer": {...},
  "start": {
   "dateTime": "2015-07-31T11:00:00+09:00"
  },
  "end": {
   "dateTime": "2015-07-31T12:00:00+09:00"
  },
  "transparency": "transparent",  // ####これ####
  "iCalUID": "cc4u4eqfq106dquc60opl5298o@google.com",
  "sequence": 0,
  "hangoutLink": "https://plus.google.com/hangouts/_/zaki-yama.com/sissyduck?hceid=c2lzc3lkdWNrQHpha2kteWFtYS5jb20.cc4u4eqfq106dquc60opl5298o",
  "reminders": {
   "useDefault": true
  }
}

transparency="transparent" が出力されている。

また、UI 上の特徴として、「予定なし」で登録した予定は「時間を探す」で表示されるカレンダーには表示されないみたい。

f:id:dackdive:20150731181833p:plain

キャプチャは、予定を登録したユーザー(admin太郎)とは別のユーザー(さんぷる太郎)で表示しているが、
自分自身の予定を見るときも同じように「予定なし」の予定は表示されない。

リファレンス

あとこれは 3 年ぐらい前の記事だけど参考になりました。
http://blog.howdylikes.jp/entry/20120917/1347850190