2
1

[Google Calendar API(V3)] Javaでカレンダーを取得する

Posted at

Google Calendar API V3(Java)を使用して、
Googleカレンダーを取得する方法
についてご紹介します。

Googleカレンダーの左下にあるマイカレンダー、他のカレンダーの情報が取得できます。

APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Google Calendar API(V3)] JavaでCalendar APIを使う
を参照ください。

No 目次
1 カレンダー一覧を取得
1 スコープ
2 実行
3 レスポンスの内容
2 カレンダーを取得
1 スコープ
2 実行
3 レスポンスの内容

1. カレンダー一覧を取得

Googleカレンダーの一覧を取得します。

1.1. スコープ

このAPIを実行するには、以下のいずれかのスコープを指定してください。

CalendarScopes.CALENDAR
CalendarScopes.CALENDAR_READONLY

⧉[Google Calendar API(V3)] JavaでCalendar APIを使う(2.2 Driveインスタンスを取得)
でスコープを指定してください。

1.2. 実行

public static void main(String[] args) throws Exception{
    Calendar calendar = getCalendar();
    
    Calendar.CalendarList calendarList = calendar.calendarList();
    Calendar.CalendarList.List list = calendarList.list();
    
    CalendarList res = list.execute();
    System.out.println(res);
}

1.2.1. HTTPリクエスト

GET: https://www.googleapis.com/calendar/v3/users/me/calendarList
が実行されます。

1.2.2. クエリパラメータ

Calendar.CalendarList.Listのsetメソッドにより、クエリパラメータを追加できます。

メソッド 引数 説明
setMaxResults Integer レスポンスで返されるエントリの最大数
デフォルトは100、最大250まで指定可能
setMinAccessRole String 最小のアクセス権限
setShowDeleted Boolean 削除されたカレンダーを含めるか
setShowHidden Boolean 非表示のエントリを含めるか
setPageToken String 次のページで前のリスト要求を継続するためのトークン
レスポンスのgetNextPageTokenで取得が可能
setSyncToken String 結果を取得した後に変更された内容を取得するためのトークン
レスポンスのgetNextSyncTokenで取得が可能

最小のアクセス権限

文字列 説明
freeBusyReader 空き時間情報を読み取ることが可能
owner イベントとアクセス制御リストの読み取りと変更を行うことが可能
reader 非公開ではないイベントを読み取ることが可能
writer イベントの読み取りと変更を行うことが可能

1.3. レスポンスの内容

CalendarList

メソッド 戻り値 説明
getKind String リソースの種類
固定文字列:"calendar#calendarList"
getEtag String Eタグ
getItems List<CalendarListEntry> カレンダー情報
getNextPageToken String 次のページのページトークン
リストの最後の場合はNULL
getNextSyncToken String この結果が返された後に変更された内容を取得するためのトークン

CalendarListEntry

メソッド 戻り値 説明
getAccessRole String 認証済みユーザーのカレンダーに対してのアクセスロール
getConferenceProperties ConferenceProperties 会議タイプ
getDefaultReminders List<EventReminder> 予定の通知
getDeleted Boolean 削除済みか
getDescription String 説明
getEtag String Eタグ
getHidden Boolean 非表示か
getId String カレンダーID
getKind String リソースの種類
固定文字列:"calendar#calendarListEntry"
getLocation String カレンダーの地域
getNotificationSettings NotificationSettings 予定の通知(その他の通知)
getPrimary Boolean 認証済みユーザーのメインカレンダーか
getSelected Boolean UIにコンテンツを表示するか
getSummary String 名前
getSummaryOverride String 概要
getTimeZone String タイムゾーン
getColorId String 色のID
getBackgroundColor String 背景色(16進数形式)
getForegroundColor String 前景色(16進数形式)

ConferenceProperties

メソッド 戻り値 説明
getAllowedConferenceSolutionTypes List<String> サポートされている会議タイプ
"hangoutsMeet"(http://meet.google.com)のみ

"eventHangout"、"eventNamedHangout"はサポートが終了しているので取得のみ(設定不可)

EventReminder

メソッド 戻り値 説明
getMethod String 通知方法
"email":メール、"popup":通知(UIポップアップ)
getMinutes Integer イベント開始の何分前に通知するか
0〜40320分まで指定可能

NotificationSettings

メソッド 戻り値 説明
getNotifications List<CalendarNotification> その他の通知

CalendarNotification

メソッド 戻り値 説明
getMethod String 通知方法
"email":メールで通知
getType String 通知タイプ

通知タイプ

文字列 説明
eventChange 予定の変更
このカレンダー上の予定が変更された場合
eventCancellation 予定のキャンセル
このカレンダー上の予定がキャンセルされた場合
eventResponse 予定への返信
ゲストがこのカレンダー上の予定に返信した場合
agenda 今日の予定リスト
このカレンダー上の予定の概要が毎日メールで届きます

アクセスロール

文字列 説明
freeBusyReader 空き時間情報への読み取りアクセス権を付与
reader カレンダーへの読み取り権限を付与
writer カレンダーへの読み取りおよび書き込み権限を付与
owner カレンダーの所有権を提供

2. カレンダーを取得

指定したカレンダーの情報を取得します。

取得したいカレンダーIDは、
1. カレンダー一覧を取得(CalendarListEntry)のgetId()で取得した値を使います。

2.1. スコープ

このAPIを実行するには、以下のいずれかのスコープを指定してください。

CalendarScopes.CALENDAR
CalendarScopes.CALENDAR_READONLY

⧉[Google Calendar API(V3)] JavaでCalendar APIを使う(2.2 Driveインスタンスを取得)
でスコープを指定してください。

2.2. 実行

public static void main(String[] args) throws Exception{
    Calendar calendar = getCalendar();
    Calendar.CalendarList calendarList = calendar.calendarList();
    Calendar.CalendarList.Get get = calendarList.get("カレンダーID");
    
    CalendarListEntry res = get.execute();
    System.out.println(res);
}

2.2.1. HTTPリクエスト

GET: https://www.googleapis.com/calendar/v3/users/me/calendarList/{カレンダーID}
が実行されます。

2.2.2. クエリパラメータ

クエリパラメータはありません。

2.3. レスポンスの内容

CalendarListEntry

1.3. レスポンスの内容(CalendarListEntry)と同じです。



おしまい。。
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1