GoogleCalendarのカレンダー属性情報、イベント属性情報の取得方法まとめ
こんなカレンダーがあったとする。
- 仕事
- 4/1 15:00 客先訪問
- 4/2 納品
- プライベート
- 4/3 13:00 花見
- 4/4 19:00 飲み会
【仕事】、【プライベート】がカレンダー
その他がイベント情報とする。
カレンダー情報の取得
(GDataFeedCalendar *)feed からカレンダー情報を取り出す
以下のコードで「calendar」変数にカレンダー情報を一つずつセットしておく。
for (GDataEntryCalendar *calendar in [feed entries])
属性 | 取得方法 | 型 | データ例 |
---|---|---|---|
カレンダー名 | [[calendar title] stringValue] | NSString | 仕事 |
説明 | [calendar description] | NSString | カレンダーの説明 |
場所 | [[calendar locations] description] | NSString | 東京 |
説明 | [[calendar locations] description] | NSString | カレンダーの説明 |
カレンダーの表示色 | [[calendar color] stringValueForAttribute:[colorProp attributeName]] | NSString | #2952A3 |
タイムゾーン | [timezoneProp stringValueForAttribute:[timezoneProp attributeName]] | NSString | Asia/Tokyo |
カレンダーへのURL | [[calendar alternateLink] [link URL] | NSURL | ※ |
※【https://www.google.com/calendar/feeds/xxx/private/full】
xxxにカレンダー名が入る
イベント情報の取得
(GDataFeedCalendar *)feed からイベント情報を取り出す
以下のコードで「gDataEvent」変数にイベント情報をセットしておく。
for (GDataEntryCalendarEvent *gDataEvent in [feed entries])
属性 | 取得方法 | 型 | データ例 |
---|---|---|---|
カレンダー名 | [[feed title] stringValue] | NSString | 仕事 |
イベント名 | [[gDataEvent title] stringValue] | NSString | 客先訪問 |
説明 | [[gDataEvent content] stringValue] | NSString | ○×会社訪問 |
更新日時 | [[gDataEvent updatedDate] date] | NSDate | 2012-04-01 11:10:20 +0000 |
場所 | [[[gDataEvent locations] objectAtIndex:0] stringValue] | NSString | 東京 |
時間データを取得するには、まずこれをやってから
GDataWhen *when = [[gDataEvent times] objectAtIndex:0];
属性 | 取得方法 | 型 | データ例 |
---|---|---|---|
開始時間 | [[when startTime] date] | NSDate | 2012-04-01 15:00:00 +0000 |
終了時間 | [[when endTime] date] | NSDate | 2012-04-01 16:00:00 +0000 |
「終日」(時間指定なし)であるかどうかは、「hasTime」の結果で判断できる
終日の場合は、hasTimeがFalseになる
if ( !([[when startTime] hasTime]) && !([[when endTime] hasTime]) ) { // 開始時間、終了時間ともに時間指定がないため、「終日」である }
他にも属性があるが、必要な情報はこんな感じ。
これらのプロジェクトファイル一式はここ。
yuriken27/GoogleCalendarAccessTest · GitHub