ご訪問ありがとうございます。
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カレンダーに反映させることができます。
日付をまたいだ予定でも反映されます。
コメント