見出し画像

【GAS】Googleカレンダーとスプレッドシートを連携し、時間を可視化しよう!




時間という限られた資源


時間は限られた貴重な資源です。
私たちは日々、多くのタスクに追われ、時間を効率的に使うことが常に求められています。

時間管理への取り組みとGASの活用


最近私の夫は、時間管理の重要性を強く実感し、自身の日々の活動をGoogleカレンダーに詳細に記録するようになりました。きっかけは、経営学者ピーター・ドラッカーの「経営者の条件」を読んだこと言います。


ドラッカーは時間を賢く使うことが成功への鍵だと述べています。
まずは自分が何にどれだけの時間を費やしているのかを記録することが第一歩。そして効果的な分析が欠かせません。

そこでGoogle Apps Script(GAS)を使って彼のカレンダーの記録をスプレッドシートに簡単に出力できるコードを作ってみました。これによって夫は、自身の時間利用の実態をより深く理解し、生産性向上の示唆を得られるようになりました。

この記事では、私たちの経験を共有するとともに、時間管理の大切さやテクノロジーの活用メリット、実際にGASを使った方法などを紹介したいと思います。

時間管理の重要性:使った時間の記録

時間管理の核心部分は、単に「時間を大切にする」ことだけではありません。実際にどのように時間を使っているかを把握し、記録することが非常に重要です。ピーター・ドラッカーは「経営者の条件」の中で、「成果をあげるための第一歩は、実際の時間の使い方を記録することである。」と述べています。

時間の記録は、自己認識を深め、時間に対する意識を高めてくれます。私たちはしばしば、どれだけの時間を非生産的な活動に費やしているのか気づいていません。定期的に時間の使い道を記録し振り返ることで、時間の無駄遣いを減らし、意味のある活動にその時間を向けることができるのです。

加えて、時間の記録は効率的な時間活用を学ぶ上での基盤となります。記録を振り返ることで、どのタスクにどれだけの時間を費やし、どの活動が最も価値を生み出しているのかが明確にわかるからです。このように、使った時間を記録することは、自己管理と生産性向上における強力なツールなのです。

GASを使った実践的なアプローチ

Google Apps Script(GAS)は、Googleのサービスを自分でカスタマイズし活用できる便利なツールです。難しそうに聞こえますが、実はプログラミング初心者でも基礎を学べばすぐに使い始められます。今回は中でも、GoogleカレンダーのデータをGoogleスプレッドシートに出力する便利な方法をご紹介します。

想像してみてください。自分の1日のスケジュールが全てカレンダーに記録され、それが自動的にスプレッドシートに転記されるとしたら。これがGASの力です。カレンダーだけでは分かりづらい時間の使い方が、一目で明確になるのです。

カレンダーから出力したのは以下の項目です。

・日付: イベント実施日
・かかった時間: イベントの総時間(例:1時間)
・何時から何時まで : イベントの開始・終了時刻(例:10:00-11:00)
・色: カレンダーのイベント色(カテゴリーを識別)
・タイトル: イベント名(例:会議、企画等)

Google Apps Scriptを使えば、この情報を自動抽出し、定期的にスプレッドシートに出力することが可能です。


出力されるのは、こんなかんじ!

Googleカレンダーからスプレッドシートへの出力方法


ここでは、Googleカレンダーのイベントをスプレッドシートに出力する基本的なプロセスとサンプルコードをご紹介します。

ステップ 1: Google スプレッドシートの準備

  1. 新しいGoogleスプレッドシートを作成します。

  2. カラムを以下のように設定します: A: 日付、B: 開始時間、C: 終了時間、D: かかった時間、E: 色、F: タイトル

ステップ 2: Google Apps Scriptプロジェクトの作成

  1. スプレッドシートを開き、メニューから「拡張機能」>「Apps Script」を選択します。

  2. 新しいスクリプトファイルが開きます。

ステップ 3: スクリプトの作成

以下はイベントデータを取得し、スプレッドシートに出力する基本的なスクリプトの例です。

function exportEventsToSheet() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var calendarId = '**********@group.calendar.google.com'; // ここに対象のカレンダーIDを入れる
  var calendar = CalendarApp.getCalendarById(calendarId);

  var startDate = new Date('2024-01-01'); // 開始日を YYYY-MM-DD 形式で設定
  var endDate = new Date('2024-01-30');   // 終了日を YYYY-MM-DD 形式で設定
  var events = calendar.getEvents(startDate, endDate);


  events.forEach(function(event) {
    var startTime = event.getStartTime();
    var endTime = event.getEndTime();
    var duration = (endTime - startTime) / (1000*60*60); // Convert to hours
    var row = [
      Utilities.formatDate(startTime, Session.getScriptTimeZone(), "yyyy-MM-dd"),
      Utilities.formatDate(startTime, Session.getScriptTimeZone(), "HH:mm"),
      Utilities.formatDate(endTime, Session.getScriptTimeZone(), "HH:mm"),
      duration.toFixed(2),
      event.getColor(),
      event.getTitle()
    ];
    sheet.appendRow(row);
  });
}

ステップ 4: スクリプトの実行

  1. Apps Scriptのエディタで上記のスクリプトを貼り付けます。

  2. スクリプトエディタの実行ボタン(▶︎アイコン)をクリックしてスクリプトを実行します。

  3. 初回実行時には、Googleによる認証プロセスを完了する必要があります。


時間管理の第一歩は、現在の時間の使い方を理解することから始まります。Googleカレンダーに自分の活動を記録し、そのデータをGASを使ってスプレッドシートに出力し分析することで、自分の時間の使い方についての明確なイメージを持つことができます。このプロセスは、あなたが何に時間を費やしているか、またどの活動が最も価値をもたらしているかを理解する手助けとなります。


時間管理を始めましょう

この記事が、時間管理の大切さを認識し、新しい技術にチャレンジするきっかけになれば幸いです。私たちに与えられた時間は限られています。だからこそ、その時間を最も効果的に使う方法を見出し、一日一日を最大限に生きることが大切だと思います。 技術を活用して時間という貴重な資源を有意義に使えるようになることで、私たちの生活はより豊かなものへと変わっていくのではないでしょうか。 この記事がそんな気づきの一助となれば嬉しく思います!


ーーーーーーーーーー
私の書いた本が出版されました!
\Twitterからうまれた/
ちょっと理系なおうち遊びの本

Amazon 売れ筋ランキング  
幼児教育 カテゴリー  有料Top100
ベストセラー1位✨ になりました!
ありがとうございます!


KindleUnlimited, ペーパーバックでも読めます!





この記事が参加している募集

スキしてみて

仕事について話そう

この記事が気に入ったらサポートをしてみませんか?