Google Apps Scriptでカレンダーのイベント色を取得・変更する方法
Googleカレンダーのイベントの色をGASで取得や変更できたらいいなぁ…でもどうやって?

猫男

catman
よし、catmanが「GASでカレンダーのイベント色を取得・変更する方法」を教えてやろう!
GASを使ったカレンダーのイベント色の取得方法
GASを活用することで、Googleカレンダーのイベント色を簡単に取得することができる。まずはその取得方法について説明しよう。
イベント情報を取得する基本的なスクリプト
イベント情報を取得するには、まずカレンダーIDを指定して、そのカレンダー内のイベントを取得しよう。
function getEventColors() {
const calendar = CalendarApp.getCalendarById('your-calendar-id@example.com');
const events = calendar.getEvents(new Date(), new Date(new Date().setMonth(new Date().getMonth() + 1)));
events.forEach(event => {
Logger.log('Event: ' + event.getTitle() + ', Color: ' + event.getColor());
});
}
ここでは、特定のカレンダーIDに基づき、1か月間のイベントを取得して、その色をログに表示している。
getColorメソッドを使った色取得の解説
イベントオブジェクトのgetColorメソッドを使うことで、そのイベントの色を取得可能だ。
カレンダーのタイトルとともに色を出力するので、イベントの管理に役立つね。
GASを使ってカレンダーのイベント色を変更する方法
次に、取得したイベントの色を変更する方法を見ていこう。
イベント色を変更するスクリプト
イベントの色を変更するには、setColorメソッドを使用する。
function changeEventColors() {
const calendar = CalendarApp.getCalendarById('your-calendar-id@example.com');
const events = calendar.getEvents(new Date(), new Date(new Date().setMonth(new Date().getMonth() + 1)));
events.forEach(event => {
event.setColor(CalendarApp.EventColor.PALE_BLUE);
Logger.log('Changed color of Event: ' + event.getTitle());
});
}
このスクリプトでは、各イベントの色をPALE_BLUEに変えています。
setColorメソッドの使い方解説
setColorメソッドでCalendarApp.EventColorに定義されている色を指定し、変更を実行する。
こうすることで、特定の基準に合わせてイベントを色分けすることが可能になる。
練習問題
GASを利用して以下の課題に取り組んでみよう。
- 特定の日にちのイベントのみを取得して、それぞれの色を表示してみてください。
- イベントの色をPALE_BLUE以外の色に変更してみましょう。
解答・解説
下記のスクリプトで特定の日付のイベント色を取得し、別の色に変更できる。
function specificDateEventColors() {
const calendar = CalendarApp.getCalendarById('your-calendar-id@example.com');
const specificDate = new Date(2023, 10, 15); // 取得したい日の指定(例:2023年11月15日)
const events = calendar.getEventsForDay(specificDate);
events.forEach(event => {
Logger.log('Event on specific date: ' + event.getTitle() + ', Color: ' + event.getColor());
event.setColor(CalendarApp.EventColor.MAUVE);
Logger.log('Changed color to MAUVE for Event: ' + event.getTitle());
});
}
getEventsForDayメソッドで指定の日付のイベントを取得。
イベント色を変更したい場合は、setColorメソッドを使い、異なるEventColorを指定する。