※当サイトの商品・サービスのリンク先にPRを含みます。

Google Apps Script 時短ツール

【簡単】GASでカレンダーの予定を自動で取得

お仕事おつにゃッス🐈

文系未経験から社内SEになった、あっきょ(@daily_code_JP)です!

Googleカレンダーの当日の予定を一覧表示できたら便利だと思いませんか?

この記事ではそんなあったらいいなを、Google Apps Scriptで解決します。

あっきょ
この記事は以下で悩んでいる人におすすめッス!

  • 1日のスケジュールを一覧表示して予定を確認したい
  • Google カレンダーをもっと賢く使いたい
  • プログラミングでJavaScriptを学んだけど、何を作っていいかわからない

誰でも無料で簡単にできますので、お気軽に学んでいきましょう!

0円でプログラミングを学べるスクール

侍テラコヤのロゴ

侍テラコヤはサブスク型のプログラミングスクール。

  • 50種類以上の教材を学び放題
  • 回答率100%の質問掲示板が無制限
  • 無料で学べる「フリープラン」

仕事後の夜遅くでもスキルアップするならおすすめです。

GASでカレンダーの予定を取得する方法

GASでカレンダーから予定を取得するイメージ

1クリックだけでカレンダーから当日の予定をすべて取得し、一目でわかる文章に変換して表示。

GASを使うと予定を簡単に一覧として表示することができます。

GASでカレンダーの予定を取得する準備

Google Apps Scriptでカレンダーのスケジュールを取得する準備をします。

ファイルを2点を用意します。

必要なファイル

  • Google Apps Script ・・・ コードの入力&カレンダーを取得
  • Google カレンダー  ・・・ 当日の予定を記入

サンプルコードを貼り付ける方法

ソースコードはGoogle Apps Scriptのファイルにコピペします。

メニュー画面で右クリックしてオプションを開きます。

1番下の「その他」を選択し、その中の「Google Apps Script」を選択します。

以下のような画面が現れるので、ここにコードをコピペします。

予定を Google カレンダー に登録

取得するカレンダーの予定を登録します。

この記事では予定を2つ作成。

あとでテストするので当日のカレンダーに記入します。

Google カレンダーへの記入例

カレンダーの予定を取得するサンプルコード

Google Apps Scriptでカレンダーから当日の日程を取得するサンプルコードを紹介します。

解説の項目

  • サンプルコード
  • A, 日付と時間を取得
  • B, Googleカレンダーの情報を取得
  • C, 全ての予定を1つの文章につなげて出力

サンプルコード

ソースコードの全体です。

コード内で文頭にアルファベットが付いているコメントごとに、詳細を説明していきます。

function createCalendarList() {
 //A, 日付と時間を取得
  const today = new Date();
  today.setHours(00);
  today.setMinutes(00);
  today.setSeconds(00);
  const tomorrow = new Date(Date.parse(today) + (24 * 60 * 60 * 1000));
 
 //B, Googleカレンダーの情報を取得
  let events = CalendarApp.getEvents(today, tomorrow);
  let messageArray = [];//カレンダーから取得した予定を格納

 //C, 全ての予定を1つの文章につなげて出力
  for (var i in events) {
    
    //当日の予定の件数
    const addedNum = Number(i) + 1;
    const number = "\n" + addedNum + "件目";

    //予定の開始時刻
    const startHours = "0" + events[i].getStartTime().getHours();
    const startMinutes = "0" + events[i].getStartTime().getMinutes();
    const startTime = startHours.slice(-2) +":"+ startMinutes.slice(-2); //データ型から文字列に変換

    //予定の終了時刻
    const endHours = "0" + events[i].getEndTime().getHours();
    const endMinutes = "0" + events[i].getEndTime().getMinutes();
    const endTime = endHours.slice(-2) +":"+ endMinutes.slice(-2); //データ型から文字列に変換

    //場所
    let location = "\n【場所】" + events[i].getLocation();
  
    //詳細
    let description = "\n【詳細】" + events[i].getDescription();

    //取得した情報を一文にし、配列に格納
    const time = "\n【時間】" + startTime +" ~ "+ endTime;
    const title = "\n【予定】" + events[i].getTitle();
    const message = number + time + location + title + description + "\n";
    messageArray.push(message);
  }

  Logger.log(messageArray);
}

A, 日付と時間を取得

//A, 日付と時間を取得
 const today = new Date();
 today.setHours(00); //当日の時 0時
 today.setMinutes(00); //当日の分 0分
 today.setSeconds(00); //当日の秒 0秒
 const tomorrow = new Date(Date.parse(today) + (24 * 60 * 60 * 1000)); //翌日

当日の日付 & 翌日の日付を取得してインスタンスを作成します。

当日の0時を基準に24時間後の日付の2つを用意すると、その間にセットした予定をすべて取得。

Dateオブジェクトの詳細は以下の記事をご参考ください。

B, Googleカレンダーの情報を取得

 //B, Googleカレンダーの情報を取得
  let events = CalendarApp.getEvents(today, tomorrow);
  let messageArray = []; //カレンダーから取得した予定を格納

Aで定義した2つの日付を getEvents メソッドの引数に入れ、カレンダーから当日の予定をすべて取得。

変数 messageArray は取得した予定を文字列の一覧として出力するときに使います。

C, 全ての予定を1つの文章につなげて出力

//C, 全ての予定を1つの文章につなげて出力
  for (var i in events) {
    
    //当日の予定の件数
    const addedNum = Number(i) + 1;
    const number = "\n" + addedNum + "件目";

    //予定の開始時刻
    const startHours = "0" + events[i].getStartTime().getHours();
    const startMinutes = "0" + events[i].getStartTime().getMinutes();
    const startTime = startHours.slice(-2) +":"+ startMinutes.slice(-2); //データ型から文字列に変換

    //予定の終了時刻
    const endHours = "0" + events[i].getEndTime().getHours();
    const endMinutes = "0" + events[i].getEndTime().getMinutes();
    const endTime = endHours.slice(-2) +":"+ endMinutes.slice(-2); //データ型から文字列に変換

    //場所
    let location = "\n【場所】" + events[i].getLocation();
  
    //詳細
    let description = "\n【詳細】" + events[i].getDescription();
  
    //取得した情報を文にして、配列に格納
    const time = "\n【時間】" + startTime +" ~ "+ endTime;
    const title = "\n【予定】" + events[i].getTitle();
    const message = number + time + location + title + description + "\n";
    messageArray.push(message);
  }

  Logger.log(messageArray);
}

取得したカレンダーの予定を1つの文字列にまとめて出力します。

for文を使ってオブジェクト型のデータを1件ずつ取り出し、4つの情報を取得。

  • 予定の開始時刻
  • 予定の終了時刻
  • 場所
  • 詳細

カレンダーから1つ予定を取り出した後、1つの文字列にまとめてpushメソッドmessageArray配列内に格納します。

配列に要素を追加する詳しい方法はこちら。

【簡単】GASで配列に要素を追加する4つの方法

続きを見る

すべての予定を取得後まとめた文字列をログ出力します。コードの説明は以上です。

カレンダーから予定を取得するテスト

実際に、カレンダーから当日の日程を取得します。

Apps Scriptの上バーの文字が「createCalendarList」になら、「実行」を押します。

「このアプリはGoogleで確認されていません」と表示した場合はこちら

【3分で解決】GASの「このアプリはGoogleで確認されていません」を許可する方法

続きを見る

画像のようにログ結果がでたら完了です。

2つの予定を取り出すことに成功しました。

カレンダーを取得できない時の対処法

ログ出力すると日付や時間がずれて表示されることがあります。

これはGoogle がアメリカの時間を標準にしているのが原因

標準時を日本に合わせる必要があります。

3分で解決できますのでぜひご参考ください。

事務職&営業職でも学びやすいスクール3選

初心者でも学びやすいプログラミングスクールを3つ紹介します。

プログラミング独学の挫折率は60%近くと高め

エラーを解決できなかったり相談できる人がいなかったりと理由はさまざまです。

モチベを保てる環境を整えたのがスクールで挫折率を1割未満に抑えられます。

そこで、デイコーで調査した82社から厳選して解説します。

  • テックアカデミー | 未経験から月5万の副収入を目指す
  • インターネット・アカデミー | Excel自動化で残業減
  • 侍テラコヤ | 50種類以上の教材を学び放題

テックアカデミー | 未経験から月5万の副収入を目指す

はじめての副業コースのトップイメージ
引用:テックアカデミー

テックアカデミーは総合満足度95.3%で未経験者に人気のプログラミングスクール。

テキスト形式の教材で進めながら不明点を現役エンジニアのメンターに質問します。

  • 週2回のマンツーマンメンタリング
  • 毎日15〜23時までのチャットサポート
  • 課題レビューとアドバイス

夜遅くまで対応するので退勤後も気軽に相談できます。

「はじめての副業コース」ではGASの開発ベースになったJavaScriptを使ってWeb制作を学習。

学習後はメンターの支援を受けつつスクールの独自案件で副業の実績を積み上げます。

案件報酬と1件につき1~5万円と高単価ッスよ!
あっきょ
卒業生の口コミ33件紹介 口コミ・評判はこちら
無料相談でアマギフ500円分もらえる 公式サイト

インターネット・アカデミー | Excel自動化で残業減

インターネット・アカデミーのトップ画面
引用 : インターネットアカデミー

インターネット・アカデミーは初心者から最短距離でスキルを習得するスクール。

初心者が挫折しないサポートが10個が特徴で以下はその一部。

  • 動画授業が24時間見放題
  • 1年間受講受け放題
  • 技術面の質問ができるチャットサービス
  • 受講生限定のセミナーや交流会
  • 手厚い転職準備サポート&求人紹介

卒業後には未経験からエンジニア転職するキャリアプランも築けます。

Python×Excel自動化講座はエクセル自動化に特化したカリキュラム。

売上伝票の集計や顧客リスト抽出など実践的に学びながらPythonの基礎基本を身に着けます。

いつもの作業を効率化して残業を減らすならおすすめ。

受講者の8割近くが初心者で学びやすいのがわかるッス!
あっきょ
82社から8つ厳選 Pythonを学べるスクール
1分で無料カウンセリング予約 公式サイト

侍テラコヤ | 50種類以上の教材を学び放題

侍テラコヤのトップ画面
引用 : 侍テラコヤ

侍テラコヤは50教材以上を定額で受け放題のオンラインスクール。

回答率100%の質問掲示板などの初心者でも挫折しない環境が整っているのが特徴です。

フリープランは無料で教材の一部を閲覧可能

GASを学ぶ場合、「業務自動化コース」で基礎基本から学べます。

まずは0円で教材を利用したい人にはおすすめです。

Python や HTML/CSS などのほかの言語も学べるッス!
あっきょ
卒業生の口コミ23件紹介 口コミ・評判はこちら
「フリープラン」でGASを無料で学習 公式サイト

まとめ | GASで予定管理が楽になる!

以上、Googleカレンダーに登録されている当日の予定一覧としてを取得する方法でした。

そのままコピペしたり、プログラミングの練習や動作確認用に使ったりしてみましょう。

今回紹介したサンプルコード以外にも、GASでカレンダーの操作は可能。

ヒューマンエラーが起きやすく時間がかかる作業をGASに任せましょう。

不明点やスクール選びで悩んでいるならデイコーのお問い合わせまでご連絡を。

あなたのお力になります。

-Google Apps Script, 時短ツール
-, , , , , , , , , , , , , , , , , , , , , , , , , , ,