前回はGoogleカレンダーとの連携の環境に関する部分を行った。

[iOS] Googleカレンダーと連携する iOS編(1) 環境を整える

今回はイベント操作のやり方に迫る。
 
カレンダーリストを取得する
イベント操作を行う前にカレンダーリストを取得しよう。
カレンダーIDが無いとイベントの操作を行うことが出来ないからだ。

基本的にはサンプルソースにあるイベントリストを取得するのと似ている。

1. カレンダーリストを取得するためのクエリを作成する。

2. 所有者権限があるカレンダーのみに限定する。
 これは状況に応じて設定すれば良いだろう。

3. クエリを実行する。
 実行結果を通知するためのセレクタを指定しておく。

4. 取得したカレンダーリストを確認する。

このメソッドを認証後に呼び出せばカレンダーリストを取得できる。
得たリストをTableViewで表示する等すれば良いだろう。

新しいイベントを追加する
新しいイベントを追加するにはGTLCalendarEventインスタンスを作成して、それを基にクエリを作成する。
その後はカレンダーリストの場合と同じだ。
実際の処理を見てみよう。

1. GTLCalendarEventインスタンスを作成する。

2. イベントの時刻を決める。
 ここでは2015/8/20の13:00から13:10までとしておく。

3. GTLCalendarEventインスタンスに値を設定する。

4. クエリを作成する。
 カレンダーIDは前もって取得しておこう。
 先ほどのカレンダーリストで取得したGTLCalendarCalendarListEntryの中から選択したもののIDを使用する。
 選択処理はここでは割愛する。

5. クエリを実行する。
 カレンダーリストを取得する場合と同じようにセレクタを指定しても良いのだが、今回のようにクロージャで指定したほうが簡単だろう。

ではこの処理を実行してみよう。
問題なくイベントが追加された。
以下は追加されたイベントのGoogleカレンダー上のスクリーンショットだ。
google_calendar_ios_2_1
追加したイベントは後で削除するため、イベントIDは控えておくようにしよう。

イベントを削除する。
イベントを削除するのは流れ的には追加の場合とほぼ同じだ。

1. カレンダーIDとイベントIDを基にクエリを作成する。

2. クエリを実行する。

これだけだ。
これでイベントの削除は完了だ。