
Googleカレンダーとチャットワークのタスクを連携する方法
社内・社外のコミュニケーションツールにチャットワークを使っている方も多いのではないでしょうか?
今回はGoogleカレンダーとチャットワークのタスクの連携方法をお伝えします!
チャットワークのAPIトークンを取得する
①チャットワークの右上のアイコンをクリックし、「APIトークン」を選択します。
②チャットワークログイン時のパスワードを入力し、表示をクリックします。
③APIトークンが表示されるので、「コピー」をクリックします。
Googleカレンダーで新しいカレンダーを作成する
Googleカレンダーでチャットワーク用に新しいカレンダーを作成します。
既存のカレンダーと連携すると他の予定が消えてしまう可能性があるため、新規のカレンダーを作成することをおすすめします。
①Googleカレンダー画面から「新しいカレンダー」を作成する。
他のカレンダーの右にある「+」をクリックし「新しいカレンダーを作成」を選択する。
②作成したカレンダーの設定をします。
作成したカレンダーの︙をクリックし「設定と共有」を選択します。
カレンダーIDをコピーします。後ほどこのIDを使用します
GoogleドライブでGoogleAppsScriptを作成する
Googleドライブを開き、「+新規」ボタンからGoogleAppsScriptを選択します。
※ない場合は「+アプリを追加」からインストールしてください。
①無題のプロジェクトを立ち上げます。
赤枠は削除しておきます。
②以下のスクリプトをコピーし、スクリプトに貼り付けます。
/*—- 初期設定ここから—-*/
// チャットワークAPIトークンを設定
var ChatWorkToken = ‘チャットワークAPI’;
// googleカレンダーIDを設定 ※専用のカレンダーを作成することをオススメします
var CALENDAR_ID = ‘カレンダーID’;
/*—- 初期設定ここまで —-*/
// 識別キー
var SIGNATURE = “fromChatWork”;
/*—- メインFunction —-*/
function myFunction(){
// 最初にすべての予定をクリアする
clearAllEvents();
// ChatWork apiに投げるパラメータを設定
var params = {
headers : {“X-ChatWorkToken” : ChatWorkToken},
method : “get”
};
//未完了のタスクを取得するURL
var url = “https://api.chatwork.com/v2/my/tasks?status=open”;
//チャットワークAPIエンドポイントからレスポンスを取得
var strRespons = UrlFetchApp.fetch(url, params);
//レスポンスがない場合は終了
if(strRespons == “”) return false;
//レスポンス文字列をJSON形式として解析しJSONオブジェクトとして返す
var json = JSON.parse(strRespons.getContentText());
Logger.log( “未完了タスク数: ” + json.length );
// googleカレンダーオブジェクト作成
var calendar = CalendarApp.getCalendarById(CALENDAR_ID);
// タスク毎に予定を作成
json.forEach(function(obj) {
// タイトルを設定
var title = obj.body;
title = title.split(String.fromCharCode(10)).join(‘ ‘); // 改行をスペースに置換
title = title.replace(/\[/g, “<“); // chatworkのタグを “[” → “<” に変換 title = title.replace(/\]/g, “>”); // chatworkのタグを “]” → “>” に変換
title = title.replace(/<(“[^”]*”|'[^’]*’|[^'”>])*>/g, “”); // タグを削除
title = title.substring(0,50); // タイトルは50文字で切る
// 期限のないタスクの場合はログを残してスキップ
if( obj.limit_time !== 0 ){
// UNIXTIMEを変換してdateにセット
var date = new Date( obj.limit_time * 1000 );
// 説明欄を設定
var description = obj.body;
description += String.fromCharCode(10) + “——————————“;
description += String.fromCharCode(10) + obj.room.name; // ルーム名
description += String.fromCharCode(10) + “https://www.chatwork.com/#!rid” + obj.room.room_id; // ルームURL
description += String.fromCharCode(10) + “依頼者: ” + obj.assigned_by_account.name; // 依頼者
var options = {description: description};
// 終日のイベントを作成
var event = calendar.createAllDayEvent(title, date, options);
// イベントにタグ付け
event.setTag(SIGNATURE, “true”);
}
});
}
/*—- 前後1年間の予定をクリアするFunction —-*/
function clearAllEvents() {
// googleカレンダーオブジェクト作成
var calendar = CalendarApp.getCalendarById(CALENDAR_ID);
// 今日の日付取得
var date = new Date();
var d1 = new Date();
d1.setDate(1);
d1.setMonth(d1.getMonth()-12);
d1.setHours(0);
d1.setMinutes(0);
d1.setSeconds(0);
var d2 = new Date();
d2.setDate(1);
d2.setMonth(d2.getMonth()+12);
d2.setHours(0);
d2.setMinutes(0);
d2.setSeconds(0);
// 今日の年、月、日を格納
var year = date.getYear();
var month = date.getMonth();
var day = date.getDate();
// 予定を取得
var events = calendar.getEvents(d1,d2);
for (var i in events) {
var event = events[i];
event.deleteEvent();
}
}
③赤文字になっている「チャットワークAPI」と「カレンダーID」をそれぞれ置き換えます。
④保存ボタンをクリックし名前を付けて保存します。
スクリプトを実行する
①プルダウンメニューより「myFunction」を選択し▶ボタンをクリックしてスクリプトを実行します。
②実行の承認が求められるので「許可」ボタンを押します。
ログインをします。
許可をクリックします。
処理が完了すると、カレンダーに予定が追加されます。
トリガーを設定する
トリガーを設定すると、自動で最新タスクがカレンダーに反映されます。
時計マークをクリックし、トリガーを作成します。
追加ボタンを押すと作成画面が表示されます。
「myFunction」、「時間主導型」、「時間ベースのタイマー」、「1時間ごと」、「毎日通知を受ける」を選択し保存します。
1時間に1度、自動的にカレンダーに更新されるよう設定されました。
まとめ
いかがでしたでしょうか?普段の業務にチャットワークを利用される方も多いと思うので、連携ができると便利ですよね!
ぜひ一度ご活用ください!
関連する記事
Gmailから会議を打診!?Googleカレンダーを圧倒的に使いこなす方法

インファクト編集部

最新記事 by インファクト編集部 (全て見る)
- 【Google Chat】グーグルチャットツールの使い方|Google Workspace - 2024年1月19日
- 【最新】Canva Docsの使い方|おしゃれで見やすい文章作成ツール - 2023年9月1日
- 【パラメーターとは】Googleアナリティクスでパラメーターの表示方法 - 2023年8月16日