CSV 形式のイベント一覧情報を Google カレンダーに一括登録する 2 つの方法 #GoogleAppsScript
はじめに
Google カレンダーでイベントを一括登録する方法を 2 つ紹介します。
- CSV をカレンダーにインポートする方法
- Google Apps Script を用いてスプレッドシートから登録する方法
1 と 2 の方法によって、登録できる情報が異なります。 1 の方法で済むなら、 1 でやった方が手続きが楽だと思います。参加者を登録する必要があれば、 2 の方法を選択する必要があります。
以下に詳細な手順を記載します。
1. CSV をカレンダーにインポートする方法
公式ヘルプ を参考に、 CSV ファイルを作成。
- Subject
- 予定の名前(必須)
- Start Date
- 予定の開始日(必須)
- Start Time
- 予定の開始時刻
- End Date
- 予定の終了日
- End Time
- 予定の終了時刻
- All Day Event
- 終日の予定であるかどうかを指定します。終日の予定の場合は「True」、そうでない場合は「False」と入力します
- Description
- 予定の説明やメモ
- Location
- 予定の場所
- Private
- 予定を限定公開にするかどうかを指定します。限定公開の場合は「True」、限定公開でない場合は「False」と入力します
https://calendar.google.com/ にアクセスして、 + ボタンを選択。
パソコンからファイルを選択
をクリックし、上記のフォーマットに従ったファイルを選択。
2. Google Apps Script を用いてスプレッドシートから登録する方法
以下のサンプルのスプレッドシートをもとに、イベント一覧を作成。コピーを自分のアカウントにコピーしてきていじってください。
https://docs.google.com/spreadsheets/d/1yoiwKPBs-FwGYq-zZkQza2B7VYpvvqcM0tCLDSyFiR8/edit#gid=0
https://script.google.com/ にアクセスして、新規スクリプトを選択。
https://github.com/tanabee/spreadsheet-to-calendar/blob/be1c6e755bbc2aa05fc739252bb1e76c1b9cfb90/main.js のスクリプトを Google Apps Script のエディタに貼り付け。
以下全文。
// 設定
function getConfig() {
return {
spreadSheetId: '',// スプレッドシートの ID を入力。
spreadSheetTabName: ''// スプレッドシートのタブ名を入力。
}
}
// カレンダーにイベントを登録
function registerAll() {
var config = getConfig();
var spreadSheet = SpreadsheetApp.openById(config.spreadSheetId);
var sheet = spreadSheet.getSheetByName(config.spreadSheetTabName);
var eventIds = sheet
.getDataRange()
.getValues()
.filter(function (e, i) {
return i !== 0 && e[6] === '';
}).map(function (e) {
var calendarEvent = CalendarApp.getDefaultCalendar().createEvent(
e[0], e[1], e[2],
{
description: e[3],
location: e[4],
guests: e[5]
});
return [calendarEvent.getId()];
});
if (eventIds.length === 0) return;
sheet.getRange('G2:G' + (eventIds.length+1) ).setValues(eventIds);
}
// 登録されたイベントをキャンセルして、シートから削除
function cancelAll() {
var range = 'G2:G1000';
var config = getConfig();
var spreadSheet = SpreadsheetApp.openById(config.spreadSheetId);
var sheet = spreadSheet.getSheetByName(config.spreadSheetTabName);
sheet
.getRange(range)
.getValues()
.filter(function (eventId) {
return eventId[0] !== '';
}).forEach(function (id) {
CalendarApp.getDefaultCalendar().getEventById(id).deleteEvent();
});
sheet.getRange(range).clear();
}
spreadSheetId にスプレッドシートの ID を入力。
spreadSheetTabName にスプレッドシートのタブ名を入力。
関数を選択 > registerAll を選択して ▶ ボタンをクリック。(取り消したいときは cancelAll を選択して実行)
GAS だと 50 行くらいでサクッとできて良いですね。以上。
関連記事
Author And Source
この問題について(CSV 形式のイベント一覧情報を Google カレンダーに一括登録する 2 つの方法 #GoogleAppsScript), 我々は、より多くの情報をここで見つけました https://qiita.com/tanabee/items/7ebcc63e5b561d18a582著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .