GASでカレンダーイベントを自在に操作
GAS連携でカレンダー詳細を取得
Google Apps Script(GAS)を使って、Google カレンダーのイベント詳細を取得する方法を紹介します。まずは CalendarApp を利用し、指定したカレンダーからイベントを取得します。以下のコードは、今日の日付から1週間分のイベントを取得し、詳細情報をログに出力するサンプルです。
function getUpcomingEvents() {
const calendar = CalendarApp.getCalendarById('primary');
const now = new Date();
const oneWeekLater = new Date(now.getTime() + 7 * 24 * 60 * 60 * 1000);
const events = calendar.getEvents(now, oneWeekLater);
events.forEach(event => {
Logger.log('タイトル: ' + event.getTitle());
Logger.log('開始: ' + event.getStartTime());
Logger.log('終了: ' + event.getEndTime());
Logger.log('説明: ' + event.getDescription());
});
}
このスクリプトを実行すると、カレンダー詳細が取得でき、必要に応じて他の処理へ渡すことが可能です。
イベント削除(deleteEvent)の実装
取得したイベントを削除するには、deleteEvent メソッドを使用します。以下は、特定のイベントIDを持つイベントを削除する例です。
function deleteSpecificEvent(eventId) {
const calendar = CalendarApp.getCalendarById('primary');
const event = calendar.getEventById(eventId);
if (event) {
event.deleteEvent();
Logger.log('イベントを削除しました: ' + eventId);
} else {
Logger.log('イベントが見つかりません: ' + eventId);
}
}
イベント削除は不可逆的な操作ですので、実行前に必ず確認を行うようにしましょう。
タイトル変更(setTitle)と説明追加(setDescription)
既存のイベントのタイトルや説明を変更するには、setTitle と setDescription を使用します。以下のサンプルでは、イベントのタイトルを「会議」から「ミーティング」に変更し、説明を追加しています。
function updateEventDetails(eventId) {
const calendar = CalendarApp.getCalendarById('primary');
const event = calendar.getEventById(eventId);
if (event) {
event.setTitle('ミーティング');
event.setDescription('プロジェクト進捗確認のためのミーティングです。');
Logger.log('イベントを更新しました: ' + eventId);
} else {
Logger.log('イベントが見つかりません: ' + eventId);
}
}
タイトル変更と説明追加は、イベントの可視性や参加者への情報共有に大きく影響します。変更後は必ず確認を行いましょう。
ゲスト追加(addGuest)の使い方
イベントにゲストを追加するには、addGuest メソッドを利用します。以下の例では、メールアドレスを指定してゲストを追加し、招待メールを送信します。
function addGuestToEvent(eventId, guestEmail) {
const calendar = CalendarApp.getCalendarById('primary');
const event = calendar.getEventById(eventId);
if (event) {
event.addGuest(guestEmail);
Logger.log('ゲストを追加しました: ' + guestEmail);
} else {
Logger.log('イベントが見つかりません: ' + eventId);
}
}
ゲスト追加は、イベントの参加者管理に不可欠です。招待メールの送信設定はカレンダー側で有効にしておくと、追加時に自動でメールが送られます。
コメント
コメントを投稿