ExcelからGoogleカレンダーへインポートする|表を予定に変える手順
研修の日程、面談の枠、現場の当番表。予定の元データが表計算ソフトの中にあるのに、それを1件ずつカレンダーに入れ直している。google カレンダー excel インポートで検索する人が探しているのは、その入力をやめる方法です。結論から書くと、ExcelのままではGoogleカレンダーに渡せません。CSVに保存し直して、1行目のヘッダーを英語にそろえる。この2つが要点で、残りはすべて細部の話です。
ExcelファイルはそのままではGoogleカレンダーに渡せない
Googleカレンダーが受け取るファイルは .ics(iCalendar)と .csv の2種類だけです。.xlsx はどちらでもないので、選択の画面に出しても読み込まれません。表計算ソフトの側でCSVに保存し直す作業が、必ず1つ挟まります。
ここで1つ知っておくと後が楽になる点があります。Microsoftの資料は、ブックをテキスト形式で保存すると書式設定はすべて失われると説明しています。セルの表示形式で「2026年5月30日」と見えていた日付も、CSVには内部の値が書き出されます。画面で見えている形と、保存されたファイルの中身は別物です。取り込みで日付がずれる不具合の大半は、この行き違いから起きます。
保存形式の名前も複数あります。Excelの保存形式の一覧には CSV(コンマ区切り)、CSV(Macintosh)、CSV(MS-DOS)が並んでいて、環境によって改行や文字の扱いが変わります。日本語を含む予定名が化けるときは、CSV UTF-8 を選べる版であればそちらを使うほうが確実です。
1行目のヘッダーは英語で書く。必須は2つだけ
CSVの1行目には、Googleカレンダーが認識するヘッダーを英語で書きます。日本語の見出しでは読み込まれません。必須は次の2つだけです。
- Subject(予定の名前)
- Start Date(開始日)
任意のヘッダーは Start Time、End Date、End Time、All Day Event、Description、Location、Private です。All Day Event と Private は True か False で書きます。Googleカレンダーのヘルプに載っている例は次の形です。
| Subject | Start date | Start time |
|---|---|---|
| 期末試験 | 05/30/2020 | 10:00 AM |
日付は月と日と年の順で、時刻は午前と午後の区別を付けた形です。日本語の環境で組んだ表は年月日の順になりがちなので、書き出す前に1列作って形をそろえます。表計算ソフトの関数で並べ替えたほうが、あとで件数が増えても同じ手順が使えます。
説明や場所の中にカンマを入れたいときは、その値を引用符で囲みます。囲まずに「多肢選択式問題50問、小論文2問」と書くと、カンマの位置で列が割れて、以降の列が1つずつずれます。取り込みでは気づかず、カレンダーを見て場所の欄に説明の後半が入っていることで初めて分かります。
区切り文字はカンマだけです。Googleカレンダーはセミコロンやコロンで区切ったファイルに対応していません。表計算ソフトの地域設定によってはセミコロンで書き出されるので、保存したCSVをテキストエディタで開いて1行目を目で見ておくと、この1点でつまずくことがなくなります。
取り込む用の表を別に作る
手元の予定表をそのままCSVに保存すると、まず通りません。実務で使っている表には結合セル、小計の行、色分け、注記の列が入っていて、どれもGoogleカレンダーが読める形ではないからです。うまくいく作り方は決まっていて、取り込み専用のシートを1枚追加し、そこへ必要な列だけを式で引いてきます。
専用シートの1行目は英語のヘッダーだけにします。2行目からが予定で、1行が1件です。元の表を直接書き換えないので、来月また取り込むときも同じシートが使えます。日程が増えたら元の表に行を足すだけで、専用シート側は式を下へ伸ばします。
列の作り方で押さえる点は3つです。
- 日付は月と日と年の順にそろえる。元が年月日の順なら、日付の値から年と月と日を取り出して並べ替えた文字列を作る
- 時刻は午前と午後の区別が付いた形にする。24時間表記のままでも読まれることはありますが、そろえておいたほうが結果が安定します
- 結合セルは使わない。1行目のヘッダーから最後の行まで、すべてのセルが独立している状態にする
終日の予定を入れたい場合は、All Day Event の列に True と書き、Start Time と End Time を空にします。時刻が入っていると終日として扱われないことがあるので、両方とも空にそろえます。
件数の確認も専用シートで済みます。予定の行数を数えておけば、取り込みのあとに表示される処理件数と突き合わせられます。数が合わなければ、落ちた行を探す場所が専用シートの中に限られるので、元の表まで戻って調べる必要がなくなります。
取り込みの手順
CSVが用意できたら、取り込みはパソコンのGoogleカレンダーから行います。書き出しも読み込みもパソコン専用で、スマートフォンやタブレットのカレンダーアプリからは実行できません。
- パソコンでGoogleカレンダーを開く
- 右上の設定アイコンから「設定」を開く
- 左側のメニューで「インポート / エクスポート」を選ぶ
- 「パソコンからファイルを選択」を押し、保存したCSVを選ぶ
- 読み込んだ予定を追加するカレンダーを選ぶ
- 「インポート」を押す
5番を省くと、予定は既定でメインのカレンダーに入ります。表から作った予定はまとめて扱うことになるので、先に専用のカレンダーを1つ作って、そこへ取り込むほうが安全です。件数を間違えた、列がずれていた、という失敗に気づいたとき、そのカレンダーを削除して作り直せます。メインのカレンダーへ直接取り込むと、もとから入っていた予定と混ざり、1件ずつ消す作業に変わります。
Googleカレンダーを開いて、「インポート/エクスポート」→インポートでさっき作ったcsvファイルを読み込む。読み込んだら、どのカレンダーにインポートするのかを選んでインポートボタンを押す。 出典: blog.fascode.net
失敗したときの文言から原因を決める
読み込みに失敗すると、Googleカレンダーは文言で理由を返します。読み込みに関する問題の解決方法に載っている内容を、表から作ったCSVで実際に出やすい順に並べます。
「サーバーへの接続がリセットされました」
形式が不適切なときに出ます。CSVで最初に当たるのはここです。区切り文字がカンマかどうか、1行目のヘッダーが英語で正しいかどうかを順に見ます。
「x/y 件の予定を処理しました」
一部の行だけが読めていません。日付の形が途中から崩れている行、Subject が空の行、カンマで列が割れた行が候補です。yの数が表の行数と合っているかを先に確かめると、どこまでが読まれたのかが分かります。
「0 件の予定を処理しました」
「インポート」を2回以上押した場合にも出ます。1回目で読み込みが済んでいて、2回目には処理する予定が残っていないためです。エラー文言を見て押し直す前に、カレンダーを開いて予定が入っているかどうかを確かめます。
「Google カレンダーは一時的にご利用いただけません」
ファイルが大きすぎます。対応するのは1MB以下のファイルです。表の行数が数千件になる当番表では現実に当たる上限なので、期間で区切って複数のCSVに分けます。説明の列に長い文章を入れているとファイルは一気に膨らむので、説明を短くするだけで収まることもあります。
エラー文言が出たときに避けたいのは、原因を探さずに保存形式を変えて何度も試すことです。1回目で一部が読み込まれていると、2回目、3回目の分が重なって同じ予定が並びます。専用のカレンダーへ取り込んでいれば削除して作り直せますが、メインのカレンダーに入れてしまった場合は1件ずつ消すしかありません。試す前に、どこへ取り込む設定になっているかを確かめます。
取り込んだあとに直す2つのずれ
読み込みが成功しても、表示が表と違うことがあります。原因は2つに絞れます。
1つはタイムゾーンです。Googleカレンダー側と元のデータのタイムゾーンが一致していないと、時刻が丸ごとずれて入ります。設定の「現在のタイムゾーン」を確かめてから、もう一度書き出して取り込み直します。取り込んだ予定を1件ずつ直すより速く、取りこぼしも出ません。
もう1つは繰り返しです。CSVから定期的な予定を読み込むと、カレンダー上で繰り返しの予定にはならず、1回限りの予定が並ぶ形になります。毎週の定例を表で作って取り込んだ場合、見た目は正しく並びますが、あとで時間を30分後ろにずらしたいとなったときに、全件を手で動かすことになります。定例として扱いたい予定は、表から取り込むのではなくカレンダー側で繰り返しとして1件作るほうが、あとの手間が小さくなります。
表から取り込むべきものと、そうでないもの
この手順が向いているのは、日付と時刻が確定していて、あとから動かさない予定です。研修の年間日程、シフトの確定分、試験の日程などが当てはまります。表側に元データがあり、カレンダーは表示のためだけに使う構図です。
向いていないのは、相手との調整でこれから動く予定です。面談や商談のように候補日をやりとりするものを表で管理すると、表とカレンダーの2か所を更新することになり、片方が古くなります。この種類の予定は、カレンダーに直接入れて、カレンダーを唯一の正とするほうが崩れません。表とカレンダーのどちらが正しいのかを毎回思い出さなければならない状態は、それ自体が抜け漏れの原因になります。
判断の目安は、その予定が今後変わるかどうかです。変わらないものは表で作って取り込む。変わるものはカレンダーで作る。この線を引いておくと、取り込みの回数そのものが減ります。
もう1つ、表からの取り込みでは移動の時間が入りません。CSVのヘッダーに移動を表す項目がないので、会議の開始と終了だけが並びます。現場を回る予定を取り込んだ結果、移動に必要な時間がどこにも確保されないまま1日が埋まる、という形になりやすいです。Mac用のカレンダーアプリの中には、住所を入れておくと移動の時間を前後に自動で確保するものがあり、話し言葉と音声で予定を入れられるため、表に起こしてから取り込む手順そのものが不要になる場面もあります。入力のしかたは予定の入れ方に、移動の扱いは移動時間にまとまっています。
表からの取り込みを何度も繰り返しているなら、表を作る工程自体を見直す価値があります。月に1回、同じ形のCSVを作って取り込んでいるのであれば、その作業は表の側で自動化できるか、あるいはカレンダー側で完結できるかのどちらかです。手で作り直している限り、列のずれとタイムゾーンの取り違えは毎回起こりえます。どこまでをカレンダー側で完結できるかはできることに、他のカレンダーとの違いは他のカレンダーとの比較に整理されています。手順の途中で出る細かい疑問はよくある質問にも並んでいます。
よくある質問
ExcelファイルをそのままGoogleカレンダーに読み込めますか?
読み込めません。Googleカレンダーが受け取るのは .ics と .csv の2種類だけで、.xlsx は対象外です。Excelで「名前を付けて保存」からCSVを選び、1行目のヘッダーを英語にそろえてから取り込みます。
CSVのヘッダーは何を書けばよいですか?
必須はSubject(予定の名前)とStart Date(開始日)の2つだけです。任意でStart Time、End Date、End Time、All Day Event、Description、Location、Privateが使えます。All Day EventとPrivateはTrueかFalseで書きます。
取り込んだ予定の時刻が数時間ずれているのはなぜですか?
Googleカレンダー側と元のデータのタイムゾーンが一致していないためです。設定の「現在のタイムゾーン」を確かめ、そろえたうえで書き出し直して取り込みます。取り込んだ予定を1件ずつ直すより手数が少なく、直し漏れも出ません。
毎週の定例を表から取り込むと繰り返しの予定になりますか?
なりません。CSVから定期的な予定を読み込むと、繰り返しの予定ではなく1回限りの予定が連続して並ぶ形になります。あとで時間をまとめてずらす予定であれば、カレンダー側で繰り返しとして1件作るほうが直しやすくなります。