GASでスムーズに管理!イベントの予定作成・変更・削除・取得の手順
会社でGASを使って作業を効率化するって言われたんですが、カレンダーのイベント管理が難しそうで…。予定を追加したり削除したりってどうやるんでしょう?

猫男

catman
心配するな。catmanが「GASでのカレンダーイベント」の基本について教えてやろう。このガイドで、君も立派なカレンダーマスターだ。
GASを使ったカレンダーの予定管理
GASを使用すれば、Googleカレンダーの予定を簡単に作成、取得、削除、変更することができる。ここでは各操作について順を追って説明する。
カレンダーの予定を作成する
新しいイベントをカレンダーに追加するのはとても簡単なことさ。
function createEvent() {
const calendar = CalendarApp.getDefaultCalendar();
calendar.createEvent('会議', new Date('2023-11-01T09:00:00'), new Date('2023-11-01T10:00:00'), {
location: 'オフィス',
guests: 'guest@example.com',
sendInvites: true
});
}
このスクリプトは、新しい「会議」というイベントをカレンダーに追加する。CalendarApp.getDefaultCalendar()
でデフォルトのカレンダーを取得し、createEvent
メソッドを使用するんだ。
カレンダーの予定を取得する
特定の期間のイベントを取得する方法も簡単だ。
function getEvents() {
const calendar = CalendarApp.getDefaultCalendar();
const events = calendar.getEvents(new Date('2023-11-01T00:00:00'), new Date('2023-11-30T23:59:59'));
events.forEach(event => {
Logger.log('タイトル: ' + event.getTitle());
});
}
getEvents
メソッドで指定した期間内のイベントリストを取得できる。タイトルなどの詳細もgetTitle
でログに出力できるんだ。
カレンダーの予定を削除する
予定の削除もdeleteEvent
メソッドでやさしくこなしちゃおう。
function deleteEvent() {
const calendar = CalendarApp.getDefaultCalendar();
const events = calendar.getEvents(new Date('2023-11-01T09:00:00'), new Date('2023-11-01T10:00:00'));
if(events.length > 0) {
events[0].deleteEvent();
Logger.log('イベントを削除した');
}
}
この例では、指定された期間に存在する最初のイベントを削除する。
カレンダーの予定を変更する
イベントの変更はsetTitle
やsetTime
を使って行える。
function updateEvent() {
const calendar = CalendarApp.getDefaultCalendar();
const events = calendar.getEvents(new Date('2023-11-01T09:00:00'), new Date('2023-11-01T10:00:00'));
if(events.length > 0) {
const event = events[0];
event.setTitle('更新された会議');
event.setTime(new Date('2023-11-01T10:00:00'), new Date('2023-11-01T11:00:00'));
Logger.log('イベントを更新した');
}
}
指定されたイベントのタイトルや時間を変更することが可能だ。
すごい!GASを使えば、いろいろなカレンダーの操作が簡単にできるんですね。

猫男

catman
ああ、まさにそのとおりだ。これで君もカレンダー管理の達人を目指せるだろう。
練習問題:GASでカレンダーイベントを操作する
- 新しいGASプロジェクトを作成し、イベントを追加するスクリプトを書いてみよう。
- 2023年の11月中に、特定のキーワードを含むイベントを取得し、そのタイトルをログに出力するスクリプトを書こう。
- 特定の日時に存在するイベントを削除するスクリプトを作成しよう。
- 取得したイベントの時間を変更してみよう。
練習問題の解答・解説
新しいイベントを追加する
function addNewEvent() {
const calendar = CalendarApp.getDefaultCalendar();
calendar.createEvent('新しいイベント', new Date('2023-12-01T10:00:00'), new Date('2023-12-01T11:00:00'), {
location: '図書館',
guests: 'guest@example.com',
sendInvites: true
});
}
createEvent
メソッドでイベントを追加する。イベントのタイトル、開始・終了時間、場所、ゲストなどを指定できる。
特定のキーワードを含むイベントを取得する
function searchEventByKeyword() {
const calendar = CalendarApp.getDefaultCalendar();
const events = calendar.getEvents(new Date('2023-11-01T00:00:00'), new Date('2023-11-30T23:59:59'));
events.forEach(event => {
if(event.getTitle().includes('キーワード')) {
Logger.log('見つかったイベント: ' + event.getTitle());
}
});
}
getTitle
でイベント名を取得し、includes
メソッドで特定のキーワードが含まれるかチェックする。
特定の日時のイベントを削除する
function removeEventAtSpecificTime() {
const calendar = CalendarApp.getDefaultCalendar();
const events = calendar.getEvents(new Date('2023-12-01T10:00:00'), new Date('2023-12-01T11:00:00'));
if(events.length > 0) {
events[0].deleteEvent();
Logger.log('イベントを削除した');
}
}
取得したイベントをdeleteEvent
を使用して削除する。
イベントの時間を変更する
function changeEventTime() {
const calendar = CalendarApp.getDefaultCalendar();
const events = calendar.getEvents(new Date('2023-12-01T10:00:00'), new Date('2023-12-01T11:00:00'));
if(events.length > 0) {
const event = events[0];
event.setTime(new Date('2023-12-01T11:00:00'), new Date('2023-12-01T12:00:00'));
Logger.log('イベントの時間を変更した');
}
}
setTime
メソッドでイベントの開始時間と終了時間を変更することができる。