Googleカレンダーに登録した予定を、スプレッドシートで一覧として管理したいとお考えではありませんか。手動でコピーするのは手間がかかりますし、更新のたびに作業が発生します。本記事では、iCalImport関数を使ってGoogleカレンダーの予定をスプレッドシートに自動で取り込む方法を解説します。この関数を使えば、日付範囲を指定するだけで予定表を抽出できます。カスタム関数なので、準備は少し必要ですが、一度設定すればあとは簡単です。
【要点】iCalImport関数でGoogleカレンダーの予定をスプレッドシートに自動取込
- iCalImport関数の準備: Google Apps Scriptでカスタム関数を作成し、スプレッドシートで使用できるようにします。
- カレンダーIDと日付範囲の指定: 関数の引数にカレンダーIDと開始日・終了日を渡すことで、該当期間の予定を一覧で取得します。
- 自動更新の仕組み: スプレッドシートを開くたびに関数が再計算され、最新の予定が反映されます。
ADVERTISEMENT
目次
iCalImport関数でできることと事前準備
iCalImport関数は、Google Apps Scriptで作成するカスタム関数です。この関数を使うと、指定したGoogleカレンダーの予定を、タイトル、開始日時、終了日時、場所などの情報を二次元配列として取得できます。関数の構文は次のとおりです。=iCalImport(カレンダーID, 開始日, 終了日)
事前に必要なのは、Google Apps Scriptエディタでスクリプトを追加し、プロジェクトを保存することだけです。また、カレンダーIDの取得方法も確認しておきましょう。カレンダーIDはGoogleカレンダーの設定画面で確認できます。通常はメールアドレス形式ですが、日本語名のカレンダーでは英数字のIDが割り当てられます。
iCalImport関数を使って予定を一覧表示する手順
ここからは、実際にiCalImport関数をスプレッドシートで使えるようにする手順を解説します。全部で4つのステップです。
ステップ1:Google Apps Scriptエディタを開く
- スプレッドシートを開く
Googleスプレッドシートを新規作成するか、既存のファイルを開きます。 - 拡張機能メニューを開く
メニューバーから「拡張機能」をクリックし、「Apps Script」を選択します。新しいタブでGoogle Apps Scriptエディタが開きます。
ステップ2:スクリプトコードを貼り付ける
- コードを削除する
デフォルトで表示されているコードをすべて削除します。 - 以下のコードをコピーして貼り付ける
/** * Googleカレンダーの予定を取得するカスタム関数 * @param {string} calendarId カレンダーID * @param {string} startDate 開始日(yyyy-MM-dd) * @param {string} endDate 終了日(yyyy-MM-dd) * @return {Array} 予定の二次元配列 */ function iCalImport(calendarId, startDate, endDate) { var calendar = CalendarApp.getCalendarById(calendarId); var events = calendar.getEvents(new Date(startDate), new Date(endDate)); var result = []; for (var i = 0; i < events.length; i++) { var event = events[i]; result.push([event.getTitle(), event.getStartTime(), event.getEndTime(), event.getLocation()]); } return result; }
ステップ3:プロジェクトを保存してスプレッドシートに戻る
- プロジェクトを保存する
スクリプトエディタのツールバーにある「保存」アイコンをクリックします。またはCtrl+S(Macの場合はCmd+S)で保存します。 - 名前を付けて保存する
初回はプロジェクト名を求められます。任意の名前を入力して「OK」をクリックします。 - スプレッドシートに戻る
スクリプトエディタのタブを閉じ、元のスプレッドシートに戻ります。
ステップ4:関数を入力して予定を取得する
- カレンダーIDを確認する
Googleカレンダーを開き、左側のマイカレンダー一覧から対象のカレンダー名の右側にある「︙」アイコンをクリックし、「設定と共有」を選択します。カレンダーIDが表示されますので、コピーしておきます。 - スプレッドシートに関数を入力する
例えばセルA1に次のように入力します。=iCalImport("your_calendar_id_here", "2023-01-01", "2023-12-31")
カレンダーIDはダブルクォーテーションで囲み、日付は文字列で指定します。 - Enterキーを押す
関数が実行され、予定の一覧が表示されます。初回は権限承認を求められるので、画面の指示に従って許可してください。
これで完了です。シートを開くたびに関数が再計算され、最新の予定が自動反映されます。
iCalImport関数使用時の注意点とよくあるエラー
初めての方はいくつかのポイントに注意してください。ここではよくあるエラーとその対処法をまとめます。
関数が#NAME?エラーになる場合
このエラーは関数名が認識されていないときに発生します。原因はスクリプトが正しく保存されていないか、関数名にタイプミスがある可能性があります。再びスクリプトエディタを開いて、関数名がiCalImportであることを確認し、保存し直してください。また、スプレッドシートをリロードすると改善します。
権限エラーが発生する場合
初回実行時には「承認が必要です」というダイアログが表示されます。「権限を確認」をクリックし、自分のGoogleアカウントを選択して許可します。このとき、アプリが安全でないという警告が出ることがありますが、「詳細」をクリックして「<プロジェクト名>(安全ではないページ)に移動」を選択することで続行できます。これはカスタム関数がカレンダーデータにアクセスするために必要なためです。
予定が更新されない場合
iCalImport関数はスプレッドシートが開かれたときや、関数の引数が変更されたときに再計算されます。しかし、カレンダーの予定が変わっても自動的には更新されません。最新の状態にしたい場合は、関数が含まれるセルを編集するか、メニューの「データ」→「再読み込み」を実行してください。また、スプレッドシートを閉じて再度開くことでも更新されます。
カレンダーIDの正しい取得方法
カレンダーIDは「設定と共有」画面の「カレンダーの統合」セクションにあります。通常はメールアドレスの形式(例:xxxx@group.calendar.google.com)です。日本語のカレンダー名の場合は、長い英数字のIDが割り当てられることがあります。必ずコピーしてそのまま使用してください。スペルミスに注意しましょう。
ADVERTISEMENT
iCalImport関数と手動CSVインポートの比較
| 方法 | 自動更新の有無 | 手間 | リアルタイム性 | データ範囲の柔軟性 |
|---|---|---|---|---|
| iCalImport関数 | あり(再計算時) | 初期設定のみ | シート再計算時 | 日付範囲を自由に指定 |
| CSV手動インポート | なし(手動で再インポート) | 毎回エクスポートとインポートが必要 | インポート時点で固定 | 事前にエクスポートした範囲のみ |
| Googleカレンダーアドオン | あり(定期的な同期) | アドオン導入と設定 | 同期間隔による | アドオンによる |
iCalImport関数は、一度設定すればほとんど手間がかからず、日付範囲も柔軟に変更できます。CSV手動インポートは自動化されないため、頻繁に更新する必要がある場合には不向きです。Googleカレンダーアドオンの選択肢もありますが、本記事で紹介したiCalImport関数は完全に無料で、しかも自分でカスタマイズできる点が大きなメリットです。
まとめ
本記事では、iCalImport関数を使ってGoogleカレンダーの予定をスプレッドシートに自動取り込みする方法を解説しました。このカスタム関数を使えば、手作業から解放され、常に最新の予定表をスプレッドシートで管理できます。また、QUERY関数やFILTER関数と組み合わせることで、特定の条件の予定だけを抽出することも可能です。例えば、特定の場所の予定だけ表示したい場合などに応用できます。ぜひあなたの業務フローに取り入れてみてください。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
