お知らせ/コラム

コラム

Googleカレンダーをスプレッドシートと連携!GASで工数管理を効率化

毎日、Googleカレンダーを見ながらスプレッドシートに予定を転記していませんか?

手作業での入力は時間がかかるだけでなく、入力漏れやミスの原因にもなります。

本記事では、Google Apps Script(GAS)を使って、カレンダーの予定を自動でGoogleスプレッドシートに出力する方法を初心者の方にもわかりやすく解説します。

Googleスプレッドシートマクロ・GAS開発/作成 基本料金 20,000円〜

GASを駆使し、Gmailやカレンダー、フォームをシームレスに連携します。リアルタイムでの進捗管理やデータ分析を可能にします。既存シートの改修から完全カスタマイズまで柔軟に対応可能です。まずはお気軽にクラリテまでご相談ください。

Googleスプレッドシートマクロ・GAS開発/作成のサービス概要はこちら

\業務の手間を解消いたします/

Googleカレンダーとスプレッドシートを連携する3つのメリット

GASを使ってGoogleカレンダーの予定をスプレッドシートに自動出力することで、得られるメリットは計り知れません。主な3つのメリットを詳しく解説します。

  • 転記ミスや入力漏れを完全に防止できる
  • 日報作成や工数集計の時間を大幅に削減できる
  • チーム全体の稼働状況をリアルタイムで可視化できる

それぞれ見ていきましょう。

転記ミスや入力漏れを完全に防止できる

手動でカレンダーからスプレッドシートへ予定を移す際、どうしても避けられないのが「写し間違い」や「項目の漏れ」です。特に忙しい時期や予定が立て込んでいるときほど、開始時間の微調整や会議名の入力ミスが発生しやすくなります。

GASによる自動出力なら、システムが直接カレンダーのデータを読み取ってシートに書き込むため、人為的なミスが入り込む余地がありません。常に正確なデータが蓄積されることで、後から「この時間は何をしていたっけ?」と記憶をたどる必要がなくなり、情報の信頼性が高まります。

日報作成や工数集計の時間を大幅に削減できる

「今日一日の振り返りを日報にまとめる」「プロジェクトごとの工数を集計する」といった作業を自動出力できるよう設定しておけば、一日の終わりにスプレッドシートを開くだけで、その日の活動一覧がすでに完成します。

あとは必要に応じて一言添えるだけで日報が完成し、集計も関数一つで済むようになります。

小さな時間の積み重ねをカットすることで、本来注力すべきクリエイティブな業務に集中できる環境を整えることが可能です。

チーム全体の稼働状況をリアルタイムで可視化できる

個人の効率化だけでなく、チーム運営においても自動化は強力な武器になります。複数人のカレンダー情報を一つのスプレッドシートに集約するように設定すれば、誰が・いつ・どの案件に・どれだけの時間を使っているかが一目瞭然になります。

カレンダー画面を一人ずつ切り替えて確認する手間がなくなれば、マネージャーはチーム全体の負荷状況をリアルタイムで把握することが可能です。

「特定のメンバーに業務が偏っていないか」「予定外の打ち合わせが増えていないか」といった課題を早期に発見し、迅速なリソース調整ができます。

\業務の手間を解消いたします/

【事前準備】Googleカレンダーとスプレッドシートの連携に必要な3つのアイテム

Googleカレンダーとスプレッドシートを連携させる前に、あらかじめ手元に用意しておくべきものが3つあります。

  • 書き出し先となるスプレッドシート
  • 連携したいカレンダーの「カレンダーID」
  • GASを実行する権限

これらを揃えておくだけで、後述する設定作業がスムーズに進みます。

書き出し先となるスプレッドシート

まずは、カレンダーの予定を流し込むための「箱」となるスプレッドシートを1枚用意します。新規作成したもので構いません。

このシートには、後ほど「日付」「予定名」「開始時間」「終了時間」などの見出しを作成しますが、準備段階ではファイルを作成して開いておくだけで大丈夫です。GASはこのシートの「ID(URLに含まれる文字列)」を識別してデータを書き込むため、ブラウザのタブで常に開ける状態にしておくと作業効率が上がります。

連携したいカレンダーの「カレンダーID」

GASが「どのカレンダーからデータを取ってくるか」を判断するために必要なのが「カレンダーID」です。通常、自分のメインカレンダーであれば自身のメールアドレスがそのままIDになります。

もし、チームで共有している別カレンダーや特定のプロジェクト専用カレンダーから出力したい場合は、カレンダー設定の「カレンダーの統合」セクションから固有のIDをコピーしておく必要があります。IDが1文字でも間違っているとエラーの原因になるため、必ず設定画面から直接コピーして控えておきましょう。

GASを実行する権限

最後に、スクリプトを実行するための「権限」の確認です。基本的にはGoogleアカウントを持っていれば誰でも利用可能ですが、会社の組織アカウントを使用している場合、管理者によって外部サービスとの連携やGASの実行が制限されているケースがあります。

初めてGASを触る方は、スプレッドシートのメニューから「拡張機能」→「Apps Script」が開くかを確認してください。エディタ画面が無事に表示されれば準備完了です。もし制限されている場合は、事前に社内のIT担当者に相談しておくとスムーズです。

\業務の手間を解消いたします/

Googleカレンダーとスプレッドシートを連携するための5ステップ

事前準備が整ったら、以下の手順でGASを設定していきましょう。

  • ステップ1:スプレッドシートを作成し見出しを整える
  • ステップ2:スクリプトエディタを起動してコードを貼り付ける
  • ステップ3:取得したい期間とカレンダーIDを指定する
  • ステップ4:スクリプトを実行しGoogleの承認操作を行う
  • ステップ5:トリガーを設定して毎日自動で実行させる

 基本的には「コピー&ペースト」と「簡単な情報の書き換え」だけで完結します。

ステップ1:スプレッドシートを作成し見出しを整える

まずは、Googleカレンダーから出力されるデータを受け取るためのシートを整形します。スプレッドシートを開き、1行目に取得したい項目を入力しましょう。

【例】
「日付」「開始時間」「終了時間」「予定タイトル」など

見出しを入力したら、その行を太字にしたり背景色をつけたりしておくと、後からデータが流れ込んだ際に見やすくなります。また、シート名を「カレンダー出力」などに変更しておくと、複数のシートを扱う際に管理がしやすくなるためおすすめです。

ステップ2:スクリプトエディタを起動してコードを貼り付ける

次に、スプレッドシートのメニューバーにある「拡張機能」から「Apps Script」をクリックします。すると、新しいタブでスクリプトエディタが立ち上がります。

画面には最初から「function myFunction() { … } 」という文字が入っていることがありますが、これらをすべて削除して空の状態にします。そこに、カレンダー情報を取得するためのプログラムコードを貼り付けてください。

function exportCalendarToSheet() {
  // 1. スプレッドシートとカレンダーの準備
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const calendarId = ‘ここにカレンダーIDを入力’; // ステップ3で書き換えます
  const calendar = CalendarApp.getCalendarById(calendarId);
  // 2. 取得する期間を設定(例:今日の予定)
  const today = new Date();
  const events = calendar.getEventsForDay(today);
  // 3. カレンダーから情報を抽出してシートに書き込む
  events.forEach(event => {
    const title = event.getTitle();
    const start = event.getStartTime();
    const end = event.getEndTime();
    // シートの最終行の次にデータを追加
    sheet.appendRow([today, start, end, title]);
  });
}

コードはインターネット上で公開されているテンプレートなどを活用すれば、自分で一から書く必要はありません。

ステップ3:取得したい期間とカレンダーIDを指定する

貼り付けたコードの中に、自分の環境に合わせて書き換える場所が数箇所あります。重要なのが「カレンダーID」と「取得期間」です。

コード内の該当部分を、事前準備で控えておいた自分のカレンダーIDに置き換えます。

また、「いつからいつまでの予定を取得するか」も指定します。例えば、「new Date() 」という関数を使えば「今日」の予定を取得できます。

昨日の分を振り返りとして出力したい場合は「マイナス1日」する設定を加えるなど、自分の用途に合わせて数字を調整しましょう。ここを正確に設定することで、必要なデータだけをピンポイントで抽出できるようになります。

貼り付けができたら、画面上部の「プロジェクトを保存(フロッピーディスクのアイコン)」をクリックして保存しましょう。

ステップ4:スクリプトを実行しGoogleの承認操作を行う

設定ができたら、エディタ画面上部にある「実行」ボタンを押してみましょう。初めて実行する際は、「承認が必要です」というポップアップが表示されます。

承認が終わるとプログラムが走り出し、スプレッドシートにカレンダーの予定が自動で書き込まれます。

ステップ5:トリガーを設定して毎日自動で実行させる

手動での実行が成功したら、最後はこれを「自動」で動かす設定をします。エディタの左側にある時計アイコンをクリックし、「トリガーを追加」を選択してください。

「イベントのソース」を「時間主導型」にし、「時間ベースのタイマー」から「日付ベースのタイマー」を選びます。

時刻を「午前0時〜1時」などに設定しておけば、あなたが寝ている間や業務開始前に、前日分の実績や当日分の予定が自動的にシートへ出力されます。

\業務の手間を解消いたします/

Googleカレンダーとスプレッドシートの連携がうまくいかない時のチェックリスト

「実行ボタンを押したのにシートに何も表示されない」「エラーメッセージが出てしまう」といった場合に、まず確認すべき3つのポイントをまとめました。

  • カレンダーIDが正確に入力されているか確認する
  • スクリプトの実行権限(承認)が許可されているか確認する
  • 取得期間内に予定が1件以上存在するか確認する

それぞれ確認していきましょう。

カレンダーIDが正確に入力されているか確認する

最も多いミスがカレンダーIDの入力不備です。GASは指定されたIDを元にカレンダーを探しに行きますが、ここが1文字でも間違っていると「カレンダーが見つかりません」といったエラーになります。

特に、自分のメールアドレスではない共有カレンダーなどを使っている場合は注意が必要です。設定画面の「カレンダーの統合」からIDをコピーする際、前後に余計なスペースが入っていないか、’ ‘(シングルクォーテーション)を消してしまっていないか、今一度コードを見直してみましょう。

スクリプトの実行権限(承認)が許可されているか確認する

GASを実行するには、Googleアカウントによる「承認」が不可欠です。承認フローを途中でキャンセルしてしまったり、複数のGoogleアカウントにログインしていて権限が混線したりすると、プログラムは正常に動きません。

もし動かない場合は、一度エディタ画面をリロードして再度「実行」を押し、改めて承認画面が出るか試してみてください。

取得期間内に予定が1件以上存在するか確認する

プログラムは正常に動いているのにシートに何も書き込まれない場合、単純に「指定した期間内にカレンダーの予定が1件も入っていない」可能性があります。

例えば、今日の予定を取得する設定にしている場合、カレンダーが空欄であれば書き出すデータがないためシートには何も表示されません。テストとして実行する際は、必ずカレンダーの「今日」の枠に適当な予定を入れてから実行ボタンを押してみてください。

\業務の手間を解消いたします/

Googleカレンダーとスプレッドシートを連携させるならクラリテへ

GASを活用すれば、Googleカレンダーの情報を自動でスプレッドシートに集約でき、面倒な転記作業から解放されます。

しかし、「設定が難しそう」「自動化はできたけれど、その後のデータ加工や整理が追いつかない」とお悩みではありませんか?そんな時は、データ入力・管理のプロであるクラリテにお任せください。

クラリテでは、GASを用いた仕組み作りから、蓄積されたデータの入力代行・クレンジングまで幅広くサポートしています。ツールで自動化しきれない複雑な運用や、大量のデータ処理をアウトソーシングすることで、貴社のリソースを本来注力すべきコア業務へ集中させることが可能です。

業務のデジタル化と効率化を並行して進めたい方は、ぜひ一度クラリテへご相談ください。

Googleスプレッドシートマクロ・GAS開発/作成 基本料金 20,000円〜

複雑な関数設計、GASによる自動通知や外部アプリ連携など、スプレッドシートの機能を最大化します。データ集計、進捗管理、通知設定など、あらゆるニーズに完全カスタマイズで対応可能です。まずは一度クラリテまでお問い合わせください。

Googleスプレッドシートマクロ・GAS開発/作成のサービス概要はこちら

\業務の手間を解消いたします/

contact

お問い合わせ

事務作業・入力作業はクラリテにお任せ!
お気軽にお見積もり・お問い合わせください。

サービス情報の資料を無料でご確認いただけます。