LoginSignup
0
1

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

Last updated at Posted at 2024-04-02

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

イベントとGoogleカレンダーUIの関連性を知りたい方は
⧉[Google Calendar API(V3)] GoogleカレンダーとEventクラス
を参照ください。

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

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

1. イベント一覧の取得

指定したカレンダーのイベント一覧を取得します。

1.1. スコープ

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

CalendarScopes.CALENDAR_READONLY
CalendarScopes.CALENDAR
CalendarScopes.CALENDAR_EVENTS_READONLY
CalendarScopes.CALENDAR_EVENTS

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

1.2. 実行

public static void main(String[] args) throws Exception{
    Calendar calendar = getCalendar();
    
    Calendar.Events events = calendar.events();
    Calendar.Events.List list = events.list("カレンダーID");
    
    Events res = list.execute();
    System.out.println(res);
}

1.2.1. HTTPリクエスト

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

1.2.2. クエリパラメータ

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

メソッド 引数 説明
setEventTypes List<String> 取得するイベントタイプ
setICalUID String iCalendarイベントID
setMaxAttendees Integer 取得するイベント参加者の最大数
setMaxResults Integer 取得するイベントの最大数
デフォルトは250、最大は2500
setOrderBy String 結果で返されるイベントの順序
"startTime"(開始日時で並べ替え(昇順))
"updated"(最終更新日時(昇順))
setPrivateExtendedProperty List<String> propertyName=value として指定された拡張プロパティ制約(プライベート プロパティ)
setSharedExtendedProperty List<String> propertyName=value として指定された拡張プロパティ制約(共有プロパティのみ)
setQ String 検索クエリで対象となるフィールドのどれかと一致するイベントを返します
setShowDeleted Boolean 削除済みのイベント(status=「cancelled」)を結果に含めるか
setShowHiddenInvitations Boolean 非表示の招待を結果に含めるかどうか
setSingleEvents Boolean 定期的な予定をインスタンスに展開して、1 回限りの予定と定期的な予定のインスタンスのみを返すか
setTimeMax DateTime フィルタするイベントの開始時間の上限
setTimeMin DateTime フィルタするイベントの終了時間の下限
setTimeZone String レスポンスで使用されるタイムゾーン
setUpdatedMin DateTime フィルタするイベントの最終変更時刻の下限
setPageToken String 次のページで前のリスト要求を継続するためのトークン
レスポンスのgetNextPageTokenで取得が可能
setSyncToken String 結果を取得した後に変更された内容を取得するためのトークン
レスポンスのgetNextSyncTokenで取得が可能

イベントタイプ

定義値 内容
default 定期的なイベント
focusTime サイレント モードの予定
outOfOffice 不在の予定
workingLocation 勤務場所の予定

検索クエリで対象となるフィールド

フィールド メソッド
カレンダーのタイトル Events.getSummary()
カレンダーの説明 Events.getDescription()
場所 Events.getLocation()
参加者の名前 EventAttendee.getDisplayName()
参加者のメールアドレス EventAttendee.getEmail()
主催者の名前 Organizer.getDisplayName()
主催者のメールアドレス Organizer.getEmail()
働いているオフィスの建物の識別子 OfficeLocation.getBuildingId()
働いているオフィスのデスクID OfficeLocation.getDeskId()
働いているオフィスのオフィス名 OfficeLocation.getLabel()
働いているカスタム場所のラベル名 CustomLocation.getLabel()

1.3. レスポンスの内容

Events

メソッド 戻り値 説明
getKind String リソースの種類
固定文字列:"calendar#events"
getEtag String ETタグID
getSummary String カレンダーのタイトル
getDescription String カレンダーの説明
getUpdated DateTime カレンダーの最終更新日時
getTimeZone String カレンダーのタイムゾーン
getAccessRole String このカレンダーに対するユーザーのアクセス権限
getDefaultReminders List<EventReminder> 認証済みユーザーのカレンダーに表示されるデフォルトのリマインダー
getItems List<Event> カレンダーの予定のリスト
getNextPageToken String 次のページのページトークン
リストの最後の場合はNULL
getNextSyncToken String この結果が返された後に変更された内容を取得するためのトークン

EventReminder

メソッド 戻り値 説明
getMethod String このリマインダーで使用されるメソッド
getMinutes Integer リマインダーがトリガーされるイベント開始前の分
0~40320(4 週間分)

Event

メソッド 戻り値 説明
getId String イベントID
getKind String リソースの種類
固定文字列:"calendar#event"
getEtag String Eタグ
getAnyoneCanAddSelf Boolean 自分自身を予定に招待できるか
getAttachments List<EventAttachment> 予定の添付ファイル
最大25個まで
getAttendeesOmitted Boolean イベントの表現から参加者が除外されている可能性があるか
getAttendees List<EventAttendee> イベントの参加者
getColorId String イベントの色
getConferenceData ConferenceData 会議関連情報
getCreated DateTime イベントの作成時刻
getCreator Creator イベントの作成者
getDescription String イベントの説明(HTMLも可)
getEnd EventDateTime イベントの終了時間
getEndTimeUnspecified Boolean 終了時間が実際に指定されていないか
getEventType String イベントの特定タイプ
「default」、「workingLocation」のみ指定可能
getExtendedProperties ExtendedProperties イベントの拡張プロパティ
getFocusTimeProperties EventFocusTimeProperties サイレントモードのイベントデータ
getGadget Gadget ガジェットの情報
ガジェットは廃止
getGuestsCanInviteOthers Boolean 主催者以外の参加者が他のユーザーを予定に招待できるか
getGuestsCanModify Boolean 主催者以外の参加者が予定を変更できるか
getGuestsCanSeeOtherGuests Boolean 予定の参加者を主催者以外の参加者に表示するか
getHangoutLink String このイベントに関連付けられたGoogle ハングアウトへの絶対リンク
getHtmlLink String Googleカレンダーのウェブ版 UI に表示されているこの予定への絶対リンク
getICalUID String iCalendarイベントID
getLocation String 自由形式のテキストで表されるイベントの地理的位置
getLocked Boolean summary、description、location、start、end、recurrenceフィールドを変更できないか
getOrganizer Organizer 予定の主催者
getOriginalStartTime EventDateTime イベントが開始する時刻
getOutOfOfficeProperties EventOutOfOfficeProperties 不在のイベントデータ
getPrivateCopy Boolean イベントの伝播を無効にするか
getRecurrence List<String> 定期的なイベントの RRULE、EXRULE、RDATE、EXDATE 行のリスト
getRecurringEventId String 定期的な予定ID
getReminders Reminders 認証済みユーザーの予定のリマインダーに関する情報
getSequence Integer iCalendarに基づくシーケンス番号
getSource Source イベント作成元のソース
getStart EventDateTime イベントの開始時間
getStatus String イベントのステータス
getSummary String 予定のタイトル
getTransparency String カレンダー上のブロック状態
getUpdated DateTime イベントの最終更新日時
getVisibility String イベントの公開設定
getWorkingLocationProperties EventWorkingLocationProperties 勤務場所のイベントデータ

EventAttachment

メソッド 戻り値 説明
getFileId String 添付ファイルID
getTitle String 添付ファイルのタイトル
getFileUrl String 添付ファイルへのURL
getIconLink String 添付ファイルのアイコンへのURLリンク
getMimeType String 添付ファイルのインターネットメディアタイプ(MIME タイプ)

EventAttendee

メソッド 戻り値 説明
getId String 参加者のプロフィールID
getAdditionalGuests Integer 同伴者の人数
getComment String 参加者の返信コメント
getDisplayName String 参加者の名前
getEmail String 参加者のメールアドレス
getOptional Boolean 任意参加者か
getOrganizer Boolean 参加者が予定の主催者か
getResource Boolean 参加者がリソースか
getResponseStatus String 参加者の返信ステータス
getSelf Boolean このエントリがこの予定のコピーが表示されるカレンダーを表すか

ConferenceData

メソッド 戻り値 説明
getConferenceId String 会議ID
getConferenceSolution ConferenceSolution GoogleMeetなどの会議ソリューション
getCreateRequest CreateConferenceRequest 新しい会議を生成し予定に添付するためのリクエスト
getEntryPoints List<EntryPoint> 会議の個々のエントリポイントに関する情報

ConferenceSolution

メソッド 戻り値 説明
getIconUri String このソリューションのユーザーに表示されるアイコン。
getKey ConferenceSolutionKey このイベントの会議ソリューションを一意に識別できるキー
getName String ユーザーに表示されるこのソリューションの名前

ConferenceSolutionKey

メソッド 戻り値 説明
getType String 会議のソリューションタイプ

CreateConferenceRequest

メソッド 戻り値 説明
getRequestId String リクエストID
getConferenceSolutionKey ConferenceSolutionKey ハングアウトやGoogleMeetなどの会議ソリューション
getStatus ConferenceRequestStatus 会議作成リクエストのステータス

ConferenceRequestStatus

メソッド 戻り値 説明
getStatusCode String 会議作成リクエストステータス

EntryPoint

メソッド 戻り値 説明
getAccessCode String 会議にアクセスするためのアクセスコード(最大128文字)
getEntryPointType String 会議のエントリポイントタイプ
getLabel String URIのラベル(最大512文字)
getMeetingCode String 会議にアクセスするための会議コード(最大128文字)
getPasscode String 会議にアクセスするためのパスコード(最大128文字)
getPassword String 会議にアクセスするためのパスワード(最大128文字
getPin String 会議にアクセスするためのPIN(最大128文字)
getUri String エントリポイントのURI(最大1,300文字
getNotes String ユーザーに表示する追加情報(最大2,048文字)
getSignature String 会議データの署名

Creator

メソッド 戻り値 説明
getId String クリエイターのプロフィールID
getDisplayName String 作成者の名前
getEmail String クリエイターのメールアドレス
getSelf Boolean 作成者とこの予定のコピーが表示されるカレンダーが対応しているか

EventDateTime

メソッド 戻り値 説明
getDate DateTime 「yyyy-mm-dd」形式の日付
getDateTime DateTime 日付と時刻を組み合わせた時刻
getTimeZone String 時刻が指定されるタイムゾーン

ExtendedProperties

メソッド 戻り値 説明
getPrivate Map<String,String> このカレンダーに表示される予定のコピーに固有のプロパティ
Key:私有地の名前とそれに対応する値
getShared Map<String,String> 他の参加者のカレンダー上の予定のコピー間で共有されるプロパティ
Key:共有プロパティの名前と対応する値

EventFocusTimeProperties

メソッド 戻り値 説明
getAutoDeclineMode String サイレントモードの予定と重なる会議の招待状を辞退するか
getChatStatus String Chatと関連商品でユーザーにマークを付けるステータス
"available"、"doNotDisturb"
getDeclineMessage String 既存の予定や新しい招待状がカレンダーで自動的に辞退された場合に設定する応答メッセージ

Organizer

メソッド 戻り値 説明
getId String 主催者のプロフィールID
getDisplayName String 主催者の名前
getEmail String 主催者のメールアドレス
getSelf Boolean この予定のコピーが表示されるカレンダーに主催者が対応しているか

EventOutOfOfficeProperties

メソッド 戻り値 説明
getAutoDeclineMode String 不在の予定と重複する会議の招待状を辞退するか
getDeclineMessage String 既存の予定や新しい招待状がカレンダーで自動的に辞退された場合に設定する応答メッセージ

Reminders

メソッド 戻り値 説明
getOverrides List<EventReminder> オーバーライドのリマインダー
getUseDefault Boolean デフォルトのリマインダーを予定に適用するか

Source

メソッド 戻り値 説明
getTitle String ウェブページのタイトルやメールの件名等のタイトル
getUrl String リソースのURL

EventWorkingLocationProperties

メソッド 戻り値 説明
getCustomLocation CustomLocation カスタムの場所で働いている場合の情報
getHomeOffice java.lang.Object ユーザーが在宅勤務である場合の情報
getOfficeLocation OfficeLocation ユーザーがオフィスで働いている場合の情報
getType String 勤務場所の種類

CustomLocation

メソッド 戻り値 説明
getLabel String 追加情報を示す追加のラベル

OfficeLocation

メソッド 戻り値 説明
getBuildingId String 建物の識別子
getDeskId String デスクID
getFloorId String 階数ID
getFloorSectionId String 階数セクションID
getLabel String カレンダーのウェブクライアントとモバイルクライアントに表示されるオフィス名

アクセス権限

定義値 説明
none アクセス権がない
freeBusyReader 空き時間情報に対する読み取りアクセス権
reader 読み取りアクセス権
writer 読み取りと書き込みのアクセス権
owner のオーナー権限

特定タイプ

定義値 説明
default 通常のイベント、または指定されていないイベント
outOfOffice 不在の予定
focusTime サイレント モードの予定
workingLocation 勤務場所の予定

イベントのステータス

定義値 説明
confirmed イベントが確定
tentative イベントは暫定的に確定
cancelled 予定はキャンセル(削除)

ブロック状態

定義値 説明
opaque カレンダーの時間がブロック
ransparent カレンダーの時間がブロックされていない

イベントの公開設定

定義値 説明
default カレンダーの予定にデフォルトの公開設定を使用
public この予定は一般公開されており、予定の詳細はカレンダーのすべての読者に表示
private この予定は限定公開で、予定の詳細を閲覧できるのは予定の参加者のみ
confidential この予定は限定公開

参加者の返信ステータス

定義値 説明
needsAction 参加者は招待に応答していない
declined 参加者は招待を辞退
tentative 参加者は招待を仮承諾
accepted 参加者が招待を承諾

会議ID

定義値 説明
hangoutsMeet IDは10文字の会議コード
addOn IDはサードパーティプロバイダによって定義

会議のソリューションタイプ

定義値 説明
hangoutsMeet GoogleMeet
addOn サードパーティの会議プロバイダ

会議作成リクエストステータス

定義値 説明
pending 会議作成リクエストを処理中
success 会議作成リクエストが成功
failure 会議作成リクエストは失敗

会議のエントリポイントタイプ

定義値 説明
video HTTP 経由で会議に参加
phone 電話番号をダイヤルして会議に参加
sip SIP を介した会議に参加
more 追加の会議参加手順

招待状

定義値 説明
declineNone 会議の招待状が拒否されないこと
declineAllConflictingInvitations 予定と競合する会議の招待状がすべて拒否
declineOnlyNewConflictingInvitations 不在の予定中に到着した新しい会議招待状のみが拒否

勤務場所

定義値 説明
homeOffice 自宅で作業
officeLocation オフィスで作業
customLocation カスタムの場所で作業

2. イベントを取得

指定したカレンダーのイベントを取得します。

取得したいイベントIDは、
1. イベント一覧の取得(Event)のgetId()で取得した値を使います。

2.1. スコープ

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

CalendarScopes.CALENDAR_READONLY
CalendarScopes.CALENDAR
CalendarScopes.CALENDAR_EVENTS_READONLY
CalendarScopes.CALENDAR_EVENTS

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

2.2. 実行

public static void main(String[] args) throws Exception{
    Calendar calendar = getCalendar();
    
    Calendar.Events events = calendar.events();
    Calendar.Events.Get get = events.get("カレンダーID","イベントID");
    
    Event res = get.execute();
    System.out.println(res);
}

2.2.1. HTTPリクエスト

GET: https://www.googleapis.com/calendar/v3/calendars/{カレンダーID}/events/{イベントID}
が実行されます。

2.2.2. クエリパラメータ

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

メソッド 引数 説明
maxAttendees Integer 取得するイベント参加者の最大数
timeZone String レスポンスで使用されるタイムゾーン

2.3. レスポンスの内容

Event

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



おしまい。。
0
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
0
1