【GAS】年ごとの予定をスプレッドシートから登録する(Gスプレッドシート)

Googleカレンダー

スプレッドシートから予定を入力する方法「全体像」

ご訪問ありがとうございます。

Googleシートマスターのひろしです。

今回は、とっても価値の高い方法をお伝えします。


これを知ることであなたは、

  • 誕生日といった年毎の予定を登録する方法がわかります。
  • 生年月日から月日のみ取得する方法がわかります。

なので、サクッとマスターして

と答えてあげてください。

 

 

質問をいただきました。

とりあえず、年ごとの予定の追加までやってみましょう。

 

 

 

 

 

動画はこちら

シートはこちら

*クリックすることでシートが開きます。(コピーしてお使いください)

スクリプト

年ごとのイベント作成
//毎年のイベント作成
function sampleYearlyEvent() {
  const date = new Date();
  const recurrence = CalendarApp.newRecurrence()
    .addYearlyRule()
    .times(5)           //繰り返す回数
  CalendarApp.getDefaultCalendar()
    .createAllDayEventSeries('〇〇の誕生日', date, recurrence);
}
/**
 * Googleカレンダーに年ごとの予定を追加する
 */
function CreateYearlyEvent() {


  // googleカレンダーの取得
  const calendar = CalendarApp.getDefaultCalendar()


  // 読み取り範囲(表の始まり行と終わり列)
  const topRow = 2
  const lastCol = 4
  const statusCellCol = 1


  // 予定の一覧バッファ内の列(0始まり)
  const statusNum = 0
  const dayNum = 1
  const titleNum = 2
  const descriptionNum = 3


  // シートを取得
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()


  // 予定の最終行を取得
  let lastRow = sheet.getLastRow()


  //予定の一覧をバッファに取得
  const contents = sheet.getRange(topRow, statusCellCol, sheet.getLastRow(), lastCol).getValues()


  //順に予定を作成
  for (let i = 0; i <= lastRow - topRow; i++) {


    //「済」の場合は無視する
    if (contents[i][statusNum] === "済") {
      continue
    }


    // 値をセット 日時はフォーマットして保持
    let day = contents[i][dayNum]
    let title = contents[i][titleNum]


    // 詳細をセット
    let options = { description: contents[i][descriptionNum] }


    console.log(day + " " + contents[i][titleNum])


    const recurrence = CalendarApp.newRecurrence()
      .addYearlyRule()
      .times(2)           //★繰り返す回数


    CalendarApp.getDefaultCalendar()
      .createAllDayEventSeries(title, day, recurrence, options);


    console.log(events.getId())


    //予定が作成されたら「済」にする
    sheet.getRange(topRow + i, statusCellCol).setValue("済")
  }
}

ポイント

年ごとのイベントを登録するには、addYearlyRule()を使用します。

あとは、既存のロジックを変更していきます。

登録する日付は、今年の日付を想定しています。
なので、生年月日から登録したい場合は、今年の誕生日に
変換する必要があります。

また、削除については、こちらを参考にがんばってください。

【GAS】Googleカレンダーに登録した項目を変更する方法
スプレッドシートから登録した予定を変更することが可能になります。GASによるGoogleカレンダーの削除や変更方法がわかります。

 

 

 

 

 

最後までご覧いただきありがとうございます。

つぎはこちら

【GAS】Googleカレンダーに日付またぎ(時間指定)で登録する方法
スプレッドシートに記載した予定をGoogleカレンダーに反映させることができます。 日付をまたいだ予定でも反映されます。

スプレッドシートから予定を入力する方法「全体像」

コメント

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