LoginSignup
0
1

[Google Calendar API(V3)] GoogleカレンダーとEventクラス

Posted at

Googleフォームを生成したり、情報を取得する際に使用する
com.google.api.services.calendar.model.Eventクラス
と実際のGoogleカレンダーのUIを関連づけてみました。

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

No 目次
1 イベント全体
2 予定
1 イベントの開始時間・終了時間
2 会議関連情報
3 認証済みユーザーの予定のリマインダーに関する情報
4 予定の主催者
5 予定の添付ファイル
6 イベントの参加者
3 サイレントモード
4 不在
5 勤務場所
6 タスク
7 予約スケジュール
8 定義値(enum)

1. イベント全体

イベントの定義はEventクラスが保持します。

イベントのタイトル、開始時間、終了時間など共通して使用するフィールドは
Eventクラスに定義されています。
サイレントモードなどの固有の情報は、それぞれのクラスで設定します。

どのフィールドがどのUIに対応しているかは、2. 予定の画像をご覧ください。

Event

メソッド 戻り値 説明
id String イベントID
kind String リソースの種類
固定文字列:"calendar#event"
etag String Eタグ
eventType String イベントの特定タイプ
summary String 予定のタイトル

UI2. 予定
start EventDateTime イベントの開始時間

UI2. 予定
end EventDateTime イベントの終了時間

UI2. 予定
recurrence List<String> 定期的なイベントの RRULE、EXRULE、RDATE、EXDATE 行のリスト

UI2. 予定
conferenceData ConferenceData 会議関連情報

UI2. 予定
location String 自由形式のテキストで表されるイベントの地理的位置

UI2. 予定
reminders Reminders 認証済みユーザーの予定のリマインダーに関する情報

UI2. 予定
organizer Organizer 予定の主催者

UI2. 予定
colorId String イベントの色

UI2. 予定
transparency String カレンダー上のブロック状態

UI2. 予定
visibility String イベントの公開設定

UI2. 予定
attachments List<EventAttachment> 予定の添付ファイル
最大25個まで

UI2. 予定
description String イベントの説明(HTMLも可)

UI2. 予定
attendees List<EventAttendee> イベントの参加者

UI2. 予定
guestsCanModify Boolean 主催者以外の参加者が予定を変更できるか

UI2. 予定
guestsCanInviteOthers Boolean 主催者以外の参加者が他のユーザーを予定に招待できるか

UI2. 予定
guestsCanSeeOtherGuests Boolean 予定の参加者を主催者以外の参加者に表示するか

UI2. 予定
focusTimeProperties EventFocusTimeProperties サイレントモードのイベントデータ
outOfOfficeProperties EventOutOfOfficeProperties 不在のイベントデータ
workingLocationProperties EventWorkingLocationProperties 勤務場所のイベントデータ
anyoneCanAddSelf Boolean 自分自身を予定に招待できるか
attendeesOmitted Boolean イベントの表現から参加者が除外されている可能性があるか
extendedProperties ExtendedProperties イベントの拡張プロパティ
sequence Integer iCalendarに基づくシーケンス番号
カレンダーをまたがって一意なイベントID
status String イベントのステータス
created DateTime イベントの作成時刻
creator Creator イベントの作成者
source Source イベント作成元
updated DateTime イベントの最終更新日時

Creator

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

ExtendedProperties

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

Source

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

2. 予定

予定を入力することができます。

予定は全てのイベントの基本となる情報です。
例えば、タイトル(summary)や開始(start)、終了(end)などは
サイレントモードなどでも使用されます。

2.1. イベントの開始時間・終了時間

EventDateTime

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

2.2. 会議関連情報

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 会議データの署名

2.3. 認証済みユーザーの予定のリマインダーに関する情報

Reminders

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

EventReminder

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

2.4. 予定の主催者

Organizer

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

2.5. 予定の添付ファイル

EventAttachment

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

2.6. イベントの参加者

EventAttendee

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

3. サイレントモード

サイレント モードを使って特定の時間枠をブロックすることで、
誰にも邪魔されずに自分の仕事に集中できる時間を確保できます。

サイレントモードの情報は、EventのfocusTimePropertiesで設定します。

EventFocusTimeProperties

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

4. 不在

自分が会議やその他の予定に参加できないことを知らせる機能です。
不在に設定している日時に新しく招待された場合は自動で辞退されます。

不在の情報は、EventのoutOfOfficePropertiesで設定します。

EventOutOfOfficeProperties

メソッド 戻り値 説明
getAutoDeclineMode String 不在の予定と重複する会議の招待状を辞退するか

UI[会議への招待を自動的に辞退する]
getDeclineMessage String 既存の予定や新しい招待状がカレンダーで自動的に辞退された場合に設定する応答メッセージ

UI[会議への招待を自動的に辞退する][メッセージ]

5. 勤務場所

日ごと、時間ごとの勤務場所を設定できます。

勤務場所の情報は、EventのworkingLocationPropertiesで設定します。

EventWorkingLocationProperties

メソッド 戻り値 説明
getCustomLocation CustomLocation カスタムの場所で働いている場合の情報

UI[場所を選択][別の場所]
getHomeOffice java.lang.Object ユーザーが在宅勤務である場合の情報

UI[場所を選択][自宅]
getOfficeLocation OfficeLocation ユーザーがオフィスで働いている場合の情報

UI[場所を選択][オフィス、別のオフィス]
getType String 勤務場所の種類

UI[場所を選択]

CustomLocation

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

UI[その他の勤務場所]

OfficeLocation

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

6. タスク

時間が明確に決まっていない作業を設定できます。

タスクの操作はCalendar APIではなく、Tasks APIになります。

Tasks APIについては、
⧉[Google Tasks API(V1)] JavaでTasks APIを使う
の記事を参照ください。

7. 予約スケジュール

自動で予約を受け付けることができます。

執筆時点(2024/4)ではAPIは用意されていないようです。

2023年10月くらいにリリースされた機能みたいなので
待っていればそのうちAPIを用意してくれるかもしれません。
⧉Google Workspace Updates(2023/10)

⧉Google Calendar Help(Q:APIはありますか? A:利用できなければありません)

8. 定義値(enum)

定義値をまとめます。定義はすべて文字列で指定します。
JavaのEnumは用意されていません。

アクセス権限

定義値 説明
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 会議の招待状が拒否されないこと

UI[会議への招待を自動的に辞退する]の選択なし
declineAllConflictingInvitations 予定と競合する会議の招待状がすべて拒否

UI[会議への招待を自動的に辞退する][既存および新しい会議への招待]
declineOnlyNewConflictingInvitations 不在の予定中に到着した新しい会議招待状のみが拒否

UI[会議への招待を自動的に辞退する][新しい会議への招待のみ]

勤務場所

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

サイレントモードステータス

定義値 説明
doNotDisturb サイレント モードの選択あり
available サイレント モードの選択なし

リマインダーメソッド

定義値 説明
email リマインダーをメールで送信
popup リマインダーはUIポップアップを介して送信


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