有給申請の管理が煩雑で、
「結局いま誰が休むのか分からない」
「申請の紙がどこかにいってしまう」
「スタッフの申請がLINEや口頭ベースで散らばる」
──そんな悩みを抱える中小企業は少なくありません。
特に薬局や小規模事業所では、
有給の申請・承認・共有 がそれぞれ別の方法で行われるため、
- 承認したつもりが共有されていない
- 休みがカレンダーに反映されずシフトがダブる
- 月末の有給残数の確認に時間がかかる
といったムダな業務が常態化しがちです。
しかし実は、Googleカレンダーとフォーム を組み合わせるだけで、
有給の申請 → 承認 → 自動反映 → 集計 までを
すべて“自動化”することができます。
本記事では、中小企業でもすぐ導入できるGoogleカレンダーを使った有給管理の仕組み を、
テンプレートつきで分かりやすく解説します。
解決方法
これらの課題は、Googleフォーム × スプレッドシート × Googleカレンダー を組み合わせることで解決できます。
流れ
- 有給申請をGoogleフォームで受け付ける
- 回答をスプレッドシートに自動集計
- スプレッドシートの内容をGoogleカレンダーに転記
この仕組みにより、申請内容がリアルタイムでカレンダーに反映され、誰でもすぐに休暇予定を確認できます。
シフト調整や業務分担もスムーズになり、業務効率が大幅に改善します。
手順
- step1Googleフォームで有給申請を受け付ける
- 「氏名」「休暇開始日」「休暇終了日」を入力できるようにフォームを作成
- 回答先をスプレッドシートに設定
👉 詳しい作り方はこちら
- step2スプレッドシートでデータを整える
- フォームの回答が保存されるシートを確認
- 氏名・日付の列番号をメモしておく
上記の例だと- B列:申請者名
- D列:希望有給日
- step3Google Apps Script(GAS)を設定する
スプレッドシートの 拡張機能 → Apps Script を開き、以下のコードを貼り付けます。
function addToCalendar() { // ① スプレッドシートのシート名を変更 const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("フォームの回答1"); // ② 最終行(直近の申請データ)を取得 const lastRow = sheet.getLastRow(); const rowData = sheet.getRange(lastRow, 1, 1, sheet.getLastColumn()).getValues()[0]; // ③ 列番号を自分のフォームに合わせて変更 // 例:氏名がB列なら [1]、開始日がC列なら [2]、終了日がD列なら [3] const name = rowData[1]; // 氏名 const startDate = new Date(rowData[2]); // 開始日 const endDate = new Date(rowData[3]); // 終了日 // ④ カレンダーIDを自分のものに変更 // 「Googleカレンダー → 設定 → カレンダーの統合 → カレンダーID」で確認 const calendar = CalendarApp.getCalendarById("あなたのカレンダーID"); // ⑤ イベントのタイトルを自由にカスタマイズ可能 calendar.createEvent(name + " 有給休暇", startDate, endDate); }
初めての方は下の記事を参考にしてください
- step4カレンダーIDを取得して貼り付ける
- Googleカレンダー → 設定 → 「カレンダーの統合」からカレンダーIDをコピー
- 上記コードの
あなたのカレンダーIDに貼り付け
- step5タイトル
- Apps Script画面 → 「トリガー」を開く
- 関数に
addToCalendarを選択 - イベントの発火条件を「フォーム送信後」に設定
- これで申請があれば自動的にカレンダーへ反映!
- step6トリガーを設定する
- Apps Script画面 → 「トリガー」を開く
- 関数に
addToCalendarを選択 - イベントの発火条件を「フォーム送信後」に設定
- これで申請があれば自動的にカレンダーへ反映!
まとめ
Googleフォームとスプレッドシート、そしてGoogleカレンダーを組み合わせることで、有給申請からスケジュール共有まで完全デジタル化できます。
- 紙やFAXの手間を削減
- 集計や転記のミスを防止
- 休暇予定がリアルタイムに共有され、シフト調整もスムーズ



