[GAS]GAS(GoogleAPI)使用したカレンダー登録

ホーム » GAS » [GAS]GAS(GoogleAPI)使用したカレンダー登録

■このページを読んだ後わかること

GAS(GoogleAPI)を使用したGoogleカレンダーへの予定登録コードがわかります。
社内など同じGoogleworkPlaceに管理された状況を想定しています。


■GASに使用するスプレッドシート

〇項目の説明
カレンダー:ここが空白の場合処理を実行します。
メールアドレス:カレンダー登録したいメールアドレスを記載してください。
苗字:予定の名前になります。デフォルトでは○○さん予定にしています。
予定日:こちらは登録したい日付になります。例のように記載してください。 2022/12/16
添付スプレッドシート:こちらはURLを記載しておくと、メール文中に含めることができます。

■実際のコード

// シートを取得

varsheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

varsheet = ss.getSheets()[0];

// * Googleカレンダーに予定を追加する。0番目のスプレッドシートで実行

functionCreatetcalender() {

// googleカレンダーの取得

// const calender = CalendarApp.getDefaultCalendar()

// 連携するアカウント

constgAccount = Session.getActiveUser().getUserLoginId()// 実行者のメールアドレスを取得する

// googleカレンダーの取得

varcalender = CalendarApp.getCalendarById(gAccount);

// 読み取り範囲(表の始まり行と終わり列)

consttopRow = 2

constlastCol = 5

// 予定の最終行を取得

varlastRow = sheet.getLastRow(); //このシートで取得できる最後の行 

varstatusNum = 0;

varstartRow = 2;  //2行目からデータが始まる

vardataRange = sheet.getRange(startRow,1,lastRow,4); //何行目から何行目までデータをとるか

vardata = dataRange.getValues(); //データの範囲から複数取得

constdayCellNum = 2;

conststartCellNum = 2;

constendCellNum = 2;

Utilities.formatDate(newDate(dayCellNum), "JST", "yyyy/MM/dd HH:mm:ss");

consttitleCellNum = 4;//予定登録名

constmember = 1;//カレンダー登録対象者

//予定の一覧をバッファに取得

constcontents = sheet.getRange(topRow, 1, sheet.getLastRow(), lastCol).getValues()

//順に予定を作成

for (leti = 0; i <= lastRow - topRow; i++) {

//「登録済」の場合は無視する

if (contents[i][statusNum] === "登録済") {

continue

    }

// 値をセット 日時はフォーマットして保持

letstartday = contents[i][dayCellNum]

letstartTime = contents[i][startCellNum]

letendday = contents[i][endCellNum]

letendTime = contents[i][endCellNum]

lettitle = contents[i][titleCellNum]

letguests = contents[i][member]+"test@gmail.com"

//

// 場所と詳細をセット

try {

// 開始終了時刻が無ければ終日で設定

if (startTime == '' || endTime == '') {

//予定を作成

event = calender.createAllDayEvent(

title,

startday,

//          endday, 

options

        )

// 開始終了時刻があれば範囲で設定

      } else {

// 開始日時を作成

letstartDate = newDate(startday)

startDate.setHours(startTime.getHours())

//startDate.setMinutes(startTime.getMinutes())

letendDate = newDate(endday)

//endDate.setHours(endTime.getHours())

endDate.setMinutes(endTime.getMinutes()+15); //開始時刻から15分後を終了時刻としています。

varoptions = {guests}

// 予定を作成

event = calender.createEvent(

title+"予定登録",//カレンダー件名

startDate,

endDate,

options

        )

      }

//予定が作成されたら「済」にする

sheet.getRange(topRow + i, 1).setValue("登録済")

// エラーの場合ログ出力する

    } catch (e) {

Logger.log(e)

    }

  }

// 完了通知

Browser.msgBox("予定を追加しました。")

}

GASについて

何度かGASを作成されたことのある人は気づいたかもしれませんが
GoogleApiを使用しているので、全く無関係の方などは登録できません。
Api上で管理者権限を持っているとこちらの登録は非常に重宝します。
最初はわからないかもしれませんが、たくさん作って慣れていきましょう。
下記は私がGASを初めた時から使用している教本です。
完全初心者向けのでとても分かりやすいです。

GAS関連

タイトルとURLをコピーしました