🤖
GoogleカレンダーAPIで削除済みの予定の情報も取得する
以下のAPIでcalendarIdを指定して予定の一覧を取得することができます。
syncTokenのあるときとないときで削除済みの予定の扱いが異なっていたので整理します。
syncTokenとは、簡単に言うと予定の差分の取得に使う文字列です。
syncTokenなしのとき
デフォルトでは、削除済みの予定は一覧に含まれません。
パラメータにshowDeleted
というものがあるのでこれをtrue
にすると削除済みの予定も一覧に含まれます。
具体的には以下のように、予定オブジェクトの配列が取得できます。
showDeletedがtureの時、削除済みの予定はstatus
がcancelled
として取得されます。
[
// 一つ目の予定
{ updated: '2022-04-03T11: 47: 19.307Z',
eventType: 'default',
transparency: 'transparent',
created: '2022-04-03T11: 47: 19.000Z',
iCalUID: 'hogehoge@google.com',
organizer: { email: 'fugafuga@group.calendar.google.com',
displayName: 'testtest',
self: true
},
kind: 'calendar#event',
summary: '予定タイトル',
status: 'confirmed',
htmlLink: 'https: //www.google.com/calendar/event?eid=aaaaaaa',
description: 'desctest',
reminders: { overrides: [
[Object
]
], useDefault: false
},
sequence: 0,
end: { date: '2022-05-22'
},
etag: '"123456789000"',
creator: { email: 'abcd@gmail.com'
},
id: 'hogehoge',
start: { date: '2022-05-21'
}
},
// 二つ目の予定
{ end: { date: '2022-04-23'
},
sequence: 1,
summary: 'テストイベント削除済み',
creator: { email: 'aiueo@gmail.com'
},
organizer: { self: true,
email: 'fugafuga@group.calendar.google.com',
displayName: 'testtest'
},
eventType: 'default',
iCalUID: 'aaaaaaaaaaaaaaa@google.com',
status: 'cancelled',
htmlLink: 'https: //www.google.com/calendar/event?eid=bbbbbbbbbb',
start: { date: '2022-04-22'
},
transparency: 'transparent',
id: 'aaaaaaaaaaaaaaa',
kind: 'calendar#event',
reminders: { overrides: [
[Object
]
], useDefault: false
},
created: '2022-04-20T00: 16: 46.000Z',
updated: '2022-04-20T00: 22: 45.733Z',
etag: '"123456789000"'
}
]
syncTokenありのとき
syncTokenありのときは、なしのときと違ってデフォルトで削除した予定も取得されます。
ただし、削除済みのものは予定の詳細情報が取得できません。
[
// 一つ目の予定
{ id: '3abcdefgnvtqttbtka03icb74m',
etag: '"1234567898000"',
status: 'cancelled',
kind: 'calendar#event'
},
// 二つ目の予定
{ reminders: { overrides: [
[Object
]
], useDefault: false
},
updated: '2022-04-20T01: 05: 27.391Z',
iCalUID: 'hogehogen@google.com',
transparency: 'transparent',
start: { date: '2022-04-23'
},
creator: { email: 'fugafuga@gmail.com'
},
eventType: 'default',
created: '2022-04-20T01: 05: 27.000Z',
kind: 'calendar#event',
etag: '"1234562000"',
organizer: { displayName: 'aaaaaaaaaaa',
self: true,
email: 'abcdefg@group.calendar.google.com'
},
summary: 'テスト追加',
sequence: 0,
htmlLink: 'https: //www.google.com/calendar/event?eid=Naaaaaaaaaa',
status: 'confirmed',
end: { date: '2022-04-24'
},
id: 'hogehogen'
}
]
showDeleted
パラメータをtrue
でリクエストすると削除済みの予定の詳細も取得できるようになります。
[
// 一つ目の予定
{ status: 'cancelled',
start: { date: '2022-04-24'
},
kind: 'calendar#event',
organizer: { email: 'hogehoge@group.calendar.google.com',
displayName: 'fugafuga',
self: true
},
created: '2022-04-20T01: 09: 56.000Z',
sequence: 1,
htmlLink: 'https: //www.google.com/calendar/event?eid=aaaaaaaaaaaaaa',
etag: '"1111111111111000"',
summary: 'テスト追加2',
eventType: 'default',
end: { date: '2022-04-25'
},
transparency: 'transparent',
id: 'bbbbbbbbbbbbbbbbbbbb',
updated: '2022-04-20T01: 10: 35.552Z',
creator: { email: 'hoge@gmail.com'
},
reminders: { overrides: [
[Object
]
], useDefault: false
},
iCalUID: 'bbbbbbbbbbbbbbbbbbbb@google.com'
},
// 二つ目の予定
{ sequence: 0,
organizer: { email: 'hogehoge@group.calendar.google.com',
displayName: 'fugafuga',
self: true
},
created: '2022-04-20T01: 10: 44.000Z',
creator: { email: 'hoge@gmail.com'
},
status: 'confirmed',
eventType: 'default',
kind: 'calendar#event',
id: '123456788km',
transparency: 'transparent',
htmlLink: 'https: //www.google.com/calendar/event?eid=bbbbbbbbbbbbbbbbbbb',
end: { date: '2022-04-23'
},
reminders: { overrides: [
[Object
]
], useDefault: false
},
updated: '2022-04-20T01: 10: 44.899Z',
iCalUID: 'abbbbbbbbbbbb@google.com',
summary: 'テスト追加',
etag: '"11111111111111000"',
start: { date: '2022-04-22'
}
}
]
Discussion