GASでカレンダーを取得、登録してみます。
GASでカレンダーを取得するには、カレンダーの取得 → イベントの取得という流れを取ります。
カレンダーを取得するにはgetCalendarById()
またはgetCalendarsByName()
があり、
自分のカレンダーを取得する場合はIDで取得、その他の場合はNameで取得が楽かと思います。
自分のカレンダーを取得する際は、CalendarApp.getCalendarById('自分のメールアドレス')
が一番簡単です。
var cal = CalendarApp.getCalendarById('自分のメールアドレス');
var date = new Date();
// 明日の予定を取得する場合は以下をコメントアウト
// var date.setDate(date.getDate() + 1);
var events = cal.getEventsForDay(date);
Logger.log(events[0].getTitle());
自分の予定以外を取得する際は、カレンダーの名前またはIDを指定する必要があります。
カレンダーのIDは、カレンダーの設定ページの中段にカレンダーIDがあるので、そこで取得することができます。
IDを取得したら後は同じ流れ。以下に参考コードを示します。
カレンダーをIDや名前からゲット
var cal = CalendarApp.getCalendarById("カレンダーID");
// カレンダー名で取得する場合は以下 配列でゲットするので、[0]を忘れないように!!
// var cal = CalendarApp.getCalendarsByName("カレンダー名")[0];
var date = new Date();
// 明日の予定を取得する場合は以下をコメントアウト
// var date.setDate(date.getDate() + 1);
var events = cal.getEventsForDay(date);
Logger.log(events[0].getTitle());
公式リファレンス: CalendarEvent
以下のものが取得できます。
関数 | 帰ってくるもの |
---|---|
getStartTime() | 開始時刻 |
getColor() | カレンダーの色 |
getCreators() | 作成者 |
getDateCreated() | 作成日時 |
getDescription() | 解説 |
getEmailReminders() | リマインドが流れる日時 |
getEndTime() | 終了時刻 |
getGuestByEmail(email) | ゲストオブジェクト |
getGuestList() | ゲストオブジェクトの配列 |
getId() | イベントID |
getLastUpdated() | イベントの最終更新日時 |
getLocation() | 場所 |
getPopupReminders() | リマインドが流れる日時 |
getSmsReminders() | リマインドが流れる日時 |
getStartTime() | 開始時刻 |
getTag(key) | タグ |
getTitle() | イベントの名前 |
getVisibility() | イベントが視えるかどうかを表示 |
ここでは、参加者全員のメールアドレス、イベントの名前、開始時刻と終了時刻を取得し、リマインドメールを送ってみます。
get_and_remind_event.js
// カレンダーの取得
var cal = CalendarApp.getCalendarById("カレンダーID");
var date = new Date();
// イベントの取得 → 色々と取得
// 実際は event_nameでフィルタリングをかける、等のことをしてください。
var event = cal.getEventsForDay(date)[0];
var event_name = event.getTitle();
var start_time = event.getStartTime();
var end_time = event.getEndTime();
var guests = event.getGuestList();
var guest_names = [];
var guest_emails = [];
for each(var guest in guests) {
guest_names.push(guest.getName());
guest_emails.push(guest.getEmail());
}
// メールの中身を作成する
var mail_title = "リマインドメール(" + event_name + ")"
var mail_content =
"リマインドです。\n" +
"会議名: " + event_name + "\n" +
"参加者: " + guest_names.join(", ") + "\n" +
"開始日時: " + start_time + "\n" +
"終了日時: " + end_time + "\n"
// メール送信
MailApp.sendEmail(
guest_emails,
mail_title,
mail_content,
);
※ メールの送信部分に関しては、GASでメールを送信する、等を参照されたし。
以下を適当な関数の中に突っ込んで実施すると、以下のようにリマインドメールが送られます。
今回は以上です。