Google カレンダー で学校の予定を管理されていますか!?
せっかく、GoogleWorkspace を使ってるなら、使わないと損!
でも、予定をいちいち入れていくのは大変で…。
と、感じている方も多いのではないかと思います。
実際、学校は毎日本当にたくさんの予定に追われています。
それを全部入れる方法が….!?
ということで、こちらのツールになります。
Google スプレッドシート で予定を入力し、Google カレンダー に反映させるというものです!
[1] Google スプレッドシート の準備
こちらからプログラム入りのスプレッドシートのコピーを作成してください。
コピーの際は、このツールを使いたいアカウントで作成してください!
(Google カレンダー への反映をさせるためです)
作成されたスプレッドシートはこんな感じ。
また、月ごとのシートが用意されてます。
[2] 使い方
- 件名:カレンダーに表示させるタイトル
- 開始時間:予定が始まる時間(半角で入力!)
- 終了時間:予定が終わる時間(半角で入力!)
となっています。
同じ日に、同時に8件まで登録できるようになっています!
[3] 実行
黄色の出力のボタンをクリックしてください。
初めて実行しますので、このプログラムの権限を承認していく必要があります。
不安な方は↓を参考にしてください。
一度、許可をした後に、もう一度、黄色の出力ボタンをクリックしてください!
このような表示が出てきます。
Google カレンダー を確認しましょう!
今回は、12/23 に3件の予定が入っていますね!
そして、この時のカレンダーは、デフォルトとしてご自身のカレンダーに表示されています。
ご自身のカレンダーってどう言うことかというと。
マイカレンダーにご自身のアカウント名が出ているものがあります。
今回は、このマイカレンダーに登録されていることになります。
他にも、カレンダーをトピックのように分けることができるんです。
この辺りの解説は、記事末尾の[12] をご覧ください!!
[4] 応用
今回のプログラムを、少し変えると、スプレッドシートから任意のマイカレンダーに出力することができるようになります。
(マイカレンダーとは、編集権限があるカレンダーのことです。)
[4-1] マイカレンダー作成デモ
今回は、デモ用に新しくマイカレンダーを作ってみます。
Google カレンダー を開くと、左下に「他のカレンダー」というものがあります。
+をクリックします。
名前や説明を入れて、青色のカレンダーを作成をクリックしましょう。
左側にあるマイカレンダーに新しいカレンダーが作成されました!
このテスト用カレンダーとして出力してみたいと思います。
[5] カレンダーID の取得
マイカレンダーで任意の「カレンダーのID」を取得します。
今回は、テスト用カレンダーを取得してみたいと思います。
カレンダーにマウスのカーソルを当てると、3点リーダー( ⋮ )が出てきます。
これをクリックします。
「設定と共有」をクリックします。
(ここで色も変えられるの知っていました!?🤣)
「カレンダーの統合」をクリックします。
そうすると、各種情報が出てくるのですが、ここに「カレンダーID」があります。
このカレンダーIDをコピーしてください。
[6] プログラムの変更
それでは、プログラムの中身を編集していきましょう!
メニューバーの「拡張機能」、「Apps Script」をクリックしてください。
一番下が31行になっていますが、1行改行します。
こんな感じ。
そして、下記のプログラムを貼り付けましょう!
/**
* Lists the calendars shown in the user's calendar list.
* @see https://developers.google.com/calendar/api/v3/reference/calendarList/list
*/
function listCalendars() {
let calendars;
let pageToken;
do {
calendars = Calendar.CalendarList.list({
maxResults: 100,
pageToken: pageToken
});
if (!calendars.items || calendars.items.length === 0) {
Logger.log('カレンダーがありません。');
return;
}
// Print the calendar id and calendar summary
for (const calendar of calendars.items) {
Logger.log('%s (ID: %s)', calendar.summary, calendar.id);
}
pageToken = calendars.nextPageToken;
} while (pageToken);
}
貼り付け後は、↓のような感じなります。
そして、すでに組み込まれていた、15行目のプログラムを変更します。
上記の部分を、
let Calendar = CalendarApp.getCalendarById('ここにカレンダーIDを入れます');
に書き換えます。
↓のようになりますね!
次に、先ほど確認をしたカレンダーIDを ‘ ‘ の中に入れてください!
これを忘れずに!
プログラムを編集したので、💾(保存)をしましょう。
[7] テスト
それでは、もう一度、黄色の出力ボタンをクリックしてみましょう!
今回は、指定したカレンダーとして出力されていることが確認できると思います。
使い方としては、年度はじめに、生徒と共有する予定のカレンダーのIDを取得して利用すると、
一括して予定を入れたカレンダーを生徒とすぐに共有できますね!!
[8] Google カレンダー から Google スプレッドシート への書き出し
さらにおまけとして、Google カレンダー の予定を Google スプレッドシート に書き出す機能を追加してみましょう!
[9] 準備
最初に、スプレッドシートにシートを1枚追加します。
スプレッドシートの左下にある+をクリックしましょう。
新しく作ったシートを開いた状態にしておいてください。
ここにこれから Google カレンダー から取得したデータを出力していきます。
次に、もう一度、メニューバーの「拡張機能」から「Apps Script」をクリックして、プログラムの編集を行なっていきます。
また一番下を改行して増やして、以下のコードを貼り付けてみましょう。
function getCalendarEvents() {
var mySheet=SpreadsheetApp.getActiveSheet(); //シートを取得
const CALENDAR_ID = 'ここにカレンダーIDを入れます'; //カレンダーIDを取得
//ヘッダを入力
mySheet.getRange("A1").setValue("イベント名");
mySheet.getRange("B1").setValue("開始時間");
mySheet.getRange("C1").setValue("終了時間");
mySheet.getRange("D1").setValue("イベント登録者名");
const calendar = CalendarApp.getCalendarById(CALENDAR_ID);
const startTime = new Date('2022/04/01 00:00:00'); //スプレッドシートに書き込みたい期間のはじめの日付を変更して記述
const endTime = new Date('2022/12/01 00:00:00');//スプレッドシートに書き込みたい期間の終わりの日付を変更して記述
const events = calendar.getEvents(startTime, endTime);
const values = [];
for(const event of events){
const record = [
event.getTitle(),
//event.getStartTime(),
Utilities.formatDate(event.getStartTime(),"GMT+0900","yyyy年MM月dd日 HH時mm分") ,//文字列に変換
//event.getEndTime(),
Utilities.formatDate(event.getEndTime(),"GMT+0900","yyyy年MM月dd日 HH時mm分"),//文字列に変換
event.getCreators()[0]
];
values.push(record);
}
SpreadsheetApp.getActiveSheet().getRange(2, 1, values.length, values[0].length).setValues(values);
}
そして、スプレッドシートに書き出したいカレンダーIDを取得し、‘ ‘ の間に入れてください!
const CALENDAR_ID = 'ここにカレンダーIDを入れます'; //カレンダーIDを取得
また、カレンダーを出力すると言っても、10年分とか撮られても困りますよね…。
取得する期間を設定することができます。
以下の部分は適当に書き出したい期間を変更します。
半角で入力することに注意してください。
const startTime = new Date('2022/04/01 00:00:00'); //スプレッドシートに書き込みたい期間のはじめの日付を変更して記述
const endTime = new Date('2022/12/01 00:00:00');//スプレッドシートに書き込みたい期間の終わりの日付を変更して記述
それでは、💾(保存)をクリックしましょう。
[10] 実行
実行する名前を getCalendarEvents に変更して▶️(実行)をクリックしましょう。
↓のような感じに出力されます。
[11] 最後に
この記事を書いているのが、2022年の年末なんですが、そろそろ来年度の行事予定が決まってきましたよね??
ということで、2023年版のスプレッドシートはこちら!!
ぜひ、ご活用ください!
この記事のプログラムは、こちらの記事と同じ内容になっていますが、どちらも Google for Education 認定 トレーナー 鈴木江里 のトレーニング資料になります。
実は、↓のように、A1 のセルの値を2023に変えるだけなんですけどね!🤣
[12] さらにおまけ
Google カレンダー の使い方をまとめた資料になります!
ぜひご活用ください!
カレンダー講座資料ダウンロード (1821 ダウンロード)
コメント