Googleカレンダーの予定を自動でkintoneに反映する方法

当ブログがオススメする

業務自動化サービスランキング

なお、業務効率化や工数削減を目指しているものの、どの業務から自動化すべきか、どのツールや手段が自社に合っているのかがあいまいな方は、「業務自動化プラン診断」をお試しください。

かかる時間は1分ほど。4つの質問に答えるだけで、あなたに最適な自動化対象業務や、推奨される自動化手段を診断してもらえます。

効率よく自社に適した業務効率化を知りたい方は、ぜひ一度お試しください。

\ 4つの質問に答えるだけ /

目次

Googleカレンダーの予定を自動でkintoneに反映!情報の二重管理をなくす仕組み

「Googleカレンダーで予定を管理しているけど、別でkintoneにも手入力している…」
「予定の入力を忘れて、社内で共有されていなかった…」

そんな悩みを解決してくれるのが、Googleカレンダーの予定をkintoneに自動で反映する仕組みです。

実はこれ、Googleが提供する無料ツール「Google Apps Script(GAS)」と、kintoneのAPIを使うだけで、誰でも無料で簡単に構築可能。
一度設定すれば、Googleカレンダーに予定を入れるだけで、kintoneにも自動で登録されるようになります。

この記事では、「Googleカレンダーの予定をkintoneに自動反映する方法」を、コード付きでわかりやすく解説します。

こんなシーンでの活用に適しています

① 社員の予定をkintoneで一元管理したい
→ Googleカレンダーに登録された内容が自動でkintoneに連携され、情報の一元化が実現します。

② スケジュール情報を他部署とも共有したい
→ kintoneを使えば、カレンダー情報を社内システム上でも確認できるようになります。

③ 手入力ミスや登録漏れをなくしたい
→ 予定を1回Googleカレンダーに入力するだけでOK。kintoneへの登録漏れがゼロに。

Googleカレンダー × kintone

スクロールできます
メリットGoogleカレンダーに予定を入れるだけで、kintoneにも自動反映される
→ 予定の二重入力や登録ミスがゼロに

登録内容は自由にカスタマイズ可能(タイトル・日付・内容など)
→ kintoneのアプリ構成に合わせて柔軟に設計できる

完全無料&一度設定すればずっと自動化
→ GASもkintoneも無料でスタートでき、運用コストなし
デメリット初回にkintoneのAPI設定やGASの記述が必要
→ 少しだけ準備が必要だが、一度設定すれば自動運用可能

kintoneアプリの構成を変更するとスクリプト修正が必要
→ 運用時はフィールド名を固定にしておくと安心
難易度・面倒さプログラミング経験ゼロでもOK
→ コードは全てコピペでOK。設定もブラウザ上で完結

所要時間:初回20〜30分程度で設定完了
→ GASとkintone設定を一度行えば自動反映がスタート
特徴条件付きで反映可能(例:「社内共有」チェックが付いた予定のみ反映)
→ フィルターを使って柔軟な運用に対応可能

複数のkintoneアプリへ振り分けも可能
→ 部署別・用途別に自動で仕分けも可能

予定情報の自動反映で業務ミスや伝達漏れを大幅に削減
→ 社内の情報共有効率が格段にアップ
価格
・Googleカレンダー:無料
・kintone:無料トライアルあり、有料プランあり(ライトコース月額780円〜)
・Google Apps Script:無料

用意するもの

①kintoneアカウント(日報アプリを作成し、APIトークンを発行)
② Googleアカウント(予定を登録するGoogleカレンダー)
③ Google Apps Script(GAS:ブラウザ上で使える無料スクリプト環境)

設定手順

🔹Step 1:kintoneアプリを作成する

1.kintoneにログインします(例:https://{サブドメイン}.cybozu.com)

2.「+アプリを作る」から「はじめから作成」を選択します

3.スプレッドシートの列に対応するフィールド(文字列、数値、日付など)を追加します

‐ラベル:フィールドコード
‐タイトル:title
‐開始日時:start_datetime
‐終了日時:end_datetime
‐説明:description


4.画面右上の「設定」から「APIトークン」を開き、「APIトークンを生成」をクリック



5.追加・閲覧の権限をチェックし、「保存」→「アプリを更新」してAPIトークンをコピーします


このトークンは後でGASに貼り付けます。他人に知られないように保管してください!

🔹Step 2:Google Apps Script(GAS)を開く

1.Google Apps Script を開いて新しいプロジェクトを作成します

2.以下のような設定情報を入力し、コードを貼り付けます(コードは次のステップに記載) 

 - kintoneのサブドメイン名(https://〇〇.cybozu.com の「〇〇」)
 - kintoneのアプリID(アプリURL末尾の app=123 など)
 - Step1で取得したAPIトークン

// ====== 設定(環境に合わせて変更)======
const KINTONE_DOMAIN      = 'your-subdomain.cybozu.com'; // 例: example.cybozu.com
const KINTONE_APP_ID      = '123';                       // アプリID
const KINTONE_API_TOKEN   = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

// kintoneフィールドコード(「ラベル名」ではなく「フィールドコード」)
const F_TITLE        = 'title';           // 文字列(1行)
const F_START        = 'start_datetime';  // 日時
const F_END          = 'end_datetime';    // 日時
const F_DESCRIPTION  = 'description';     // 文字列(複数行)

// 取得対象カレンダー
const CALENDAR_TYPE = 'primary'; // 'primary'(メイン) or カレンダーID文字列
// 同期間
const DAYS_AHEAD = 7; // 何日先まで同期するか
// ===============================================


/**
 * メイン:カレンダー予定をkintoneへ新規登録
 */
function syncCalendarToKintone() {
  try {
    const events = fetchCalendarEvents();
    if (!events.length) {
      Logger.log('同期対象のイベントはありませんでした。');
      return;
    }

    // kintoneに一括登録
    postRecordsToKintone(events);
    Logger.log(`完了: ${events.length}件を登録しました。`);
  } catch (err) {
    Logger.log(`エラー: ${err.stack || err}`);
    throw err;
  }
}


/**
 * CalendarAppで直近n日分の予定取得
 */
function fetchCalendarEvents() {
  const cal = (CALENDAR_TYPE === 'primary')
    ? CalendarApp.getDefaultCalendar()
    : CalendarApp.getCalendarById(CALENDAR_TYPE);

  if (!cal) {
    throw new Error('指定のカレンダーが見つかりません: ' + CALENDAR_TYPE);
  }

  const now = new Date();
  const until = new Date();
  until.setDate(now.getDate() + DAYS_AHEAD);

  const events = cal.getEvents(now, until) || [];

  return events.map(e => ({
    summary: e.getTitle() || '',
    description: e.getDescription() || '',
    startISO: toISOStringUTC_(e.getStartTime()),
    endISO: toISOStringUTC_(e.getEndTime())
  }));
}


/**
 * kintoneに一括登録
 */
function postRecordsToKintone(eventList) {
  const url = `https://${KINTONE_DOMAIN}/k/v1/records.json`;

  const records = eventList.map(ev => ({
    [F_TITLE]:       { value: ev.summary },
    [F_START]:       { value: ev.startISO },
    [F_END]:         { value: ev.endISO },
    [F_DESCRIPTION]: { value: ev.description }
  }));

  const payload = {
    app: KINTONE_APP_ID,
    records
  };

  const params = {
    method: 'post',
    contentType: 'application/json',
    headers: { 'X-Cybozu-API-Token': KINTONE_API_TOKEN },
    payload: JSON.stringify(payload),
    muteHttpExceptions: true
  };

  const res = UrlFetchApp.fetch(url, params);
  const code = res.getResponseCode();
  if (code < 200 || code >= 300) {
    throw new Error(`kintone登録失敗: HTTP ${code} body=${res.getContentText()}`);
  }
}


/**
 * Date → ISO8601(UTC) 文字列
 */
function toISOStringUTC_(d) {
  if (!(d instanceof Date)) return '';
  return new Date(d.getTime() - d.getTimezoneOffset() * 60000)
    .toISOString()
    .replace(/\.\d{3}Z$/, 'Z');
}

🔹Step 3:アクセス承認と保存

1.GASエディタ右上の「デプロイ」→「新しいデプロイ」をクリック

2.「アクセス権の承認」画面が出たら、Googleアカウントを選択して、参考画像の通りに承認を進めます。

3.承認が完了したら下記の設定で「デプロイ」を押下し、新しいデプロイとして公開します。

– 種類の選択:ウェブアプリ
– 次のユーザーとして実行:自分
– アクセスできるユーザー:全員

🔹Step 4:トリガーを設定して自動送信

1.Apps Scriptエディタ画面の左側の「時計マーク(トリガー)」をクリックします

2.「トリガーを追加」ボタンをクリック

3.次のように設定します:
 - 実行する関数:syncCalendarToKintone
 - イベントのソース:時間主導型
 - 時間ベースのトリガー:日付ベースタイマー / 午前8〜9時などお好きな時間帯

4.「保存」をクリックすれば、毎日自動でkintoneにGoogleカレンダー上の予定が登録されるようになります

よくある質問

Googleカレンダーの予定はすべてkintoneに反映されますか?

はい。設定した期間内(例:1週間)にある予定をすべて取得し、kintoneに登録されます。
なお、同じ内容の予定が既に存在するかの判定処理は含まれていませんが、追加することも可能です。

kintoneに登録される内容を変更できますか?

はい。Googleカレンダーの情報をもとに、kintoneの任意のフィールドに自由に割り当てできます。
例:予定の場所 や 参加者 情報などを取り込むことも可能です。

複数のkintoneアプリに自動で振り分けられますか?

条件分岐を加えることで可能です。たとえばイベントタイトルや説明に特定のキーワードが含まれる場合に、アプリAかアプリBに登録するといった拡張も可能です。

なかなかうまくいかないときは?

いくらノーコードツールとはいえ、プログラミングが未経験の方にとっては少しハードルが高く「諦めるしかない⋯」と挫折するきっかけを生みかねません。

「社内で自動化したは良いものの、自分がやめたら引き継ぐ人がいない⋯」

「一つ自動化したら、他部署からも自動化を依頼されて自分の仕事が進まない⋯」

と不安な方もいますよね。

そこで、おすすめしたいのが「ジドウカ」です。

ジドウカは、これまで合計800タスク以上の業務の自動化をしてきた実績のある法人専用の自動化サービスです。

業務の一部を“タスク単位”で自動化し、【月額1万円から】安定運用できるサブスクリプション型のサービスです。 タスクを外注するため手離れもよく、技術のことが分からなくても、「こういう作業をラクにしたい」と伝えるだけで自動化することが可能です。

「わたしが自動化したい内容って自動化できるんだろうか⋯」という方には、少額・短期間での「お試し開発」があるので、お気軽にご活用ください。

まとめ

Googleカレンダーで管理している予定を、kintoneに自動で反映する仕組みは、
一度設定すれば、ずっと使える強力な業務効率化ツールです。

「kintoneにも予定を手入力しなきゃいけない」
「情報がバラバラで、どこまで共有されているかわからない」
「スケジュール登録ミスで、業務に支障が出た」

といった日々のストレスを、すべて自動化で解消できます。

しかも使うのは、Googleとkintoneの無料機能だけ。
初回の設定をしておくだけで、
予定入力の手間・登録ミス・確認作業を大幅に削減できます。

特に、チームや現場で予定を共有する業務においては、
「Googleカレンダーに予定を入力 → 自動でkintoneに反映」
という流れが定着すれば、社内の情報連携も格段にスムーズになります。

ぜひこの機会に、あなたの業務にも
「Googleカレンダー予定 × kintone自動反映」の仕組みを取り入れてみてください。

自社で自動化する際によくある失敗ランキング

自動化ツールを導入すれば業務が自動化され、効率が劇的に向上する——。 そう考えている企業は多いですが、実際には多くの企業が自動化ツールを十分に活用できていません。 有名な自動化ツールであるRPAを例にあげても、導入した企業の実態は理想と大きく異なった結果となっています。

RPA導入企業の約60%が「あまり活用できていない」と回答

多くの企業がRPAを導入しているにも関わらず、約60%の企業が「期待したほど活用できていない」と感じているというデータです。これは、「導入しただけでは、業務改善につながらない」という現実を示しています。

RPAの効果を実感できない要因は『RPA開発が進んでいない』

「RPAの効果を実感できていない」と回答した企業の多くが、その理由として「RPA開発が進んでいない」「他業務・他部署への展開ができていない」ことを挙げています。   「〇〇業務はツールを導入すればすぐにラクになるはず」と思って、自社で自動化に挑戦した方も多いのではないでしょうか?しかし私たちには、こんな“あるあるの失敗談”がよく届きます。

🥇 第1位:初期設定でつまずき、結局断念…

思っていたより設定が複雑で、ツールの仕様を理解する前に挫折してしまうケース。 特にRPAツールやノーコードツールは、「慣れるまでが大変」という声が多いです。

🥈 第2位:担当者が辞めて、運用不能に…

担当者が社内で唯一のキーマンだった場合、その人がいなくなると全て止まってしまうという問題が発生します。 しかも、「誰も中身が分からないから触れない」という状況になりがち。

🥉 第3位:不具合や修正対応に時間がかかる…

自動化が止まったとき、「誰が見ればいいのか分からない」「ベンダーに相談するのも手間」という理由で、対応が後手に。 気づけばその対応に何時間も時間を取られ、本業に集中できなくなってしまうことも…。   実はよくある…自社で自動化に挑戦したときの“落とし穴” 共通するのは「すべて自社で完結しようとした」こと。 このようなケースに共通するのが、「最初から最後まで、すべて自社で完結しようとした」点です。 最初はうまくいっても、長期的に安定した自動化運用には、継続的な保守や柔軟な調整が不可欠です。

安定的に自動化したいならジドウカがおすすめ

 「ツールを入れただけ」では業務はラクになりません 「業務をラクにする自動化」のためには、設定・運用・トラブル対応まで含めてプロに任せるのが最も確実です。

ジドウカとは?

業務の一部を“タスク単位”で自動化し、月額で安定運用できるサブスクリプション型のサービスです。 技術のことが分からなくても、「こういう作業をラクにしたい」と伝えるだけでOK。

ジドウカでできること(業務例)

・定期レポートの自動作成とSlack送信 ・受注データのExcel整形とkintone登録 ・競合サイトの自動モニタリングとアラート通知 ・営業リストの自動生成とCRMへの投入 など

ジドウカが選ばれる理由

弊社の自動化サービス「ジドウカ」は、1社1社、1タスク1タスクに合わせて完全オーダーメイドで開発するサービス担っています。
  • ヒアリングから開発・運用まで丸ごとサポート
  • トラブル発生時には即時対応
  • 月額料金内で自由に修正をご依頼可能
実際に多くのお客様から「自社での自動化運用に失敗した後に依頼してよかった」と高評価をいただいています。
目次