Googleカレンダーで使うGAS

記事
学び

予定の追加・削除

//カレンダーオブジェクト取得
const calendar = CalendarApp.getCalendarById("カレンダーID");

予定追加例

const start = new Date('2026/06/28 15:00');
const end = new Date('2026/06/28 18:00');
calendar.createEvent('タイトル',start,end);

//終日予定追加例①
  const date = new Date('2026/01/01');
  calendar.createAllDayEvent('タイトル',date);

//イベントIDを取得しておく場合
const event = calendar.createAllDayEvent('タイトル',date);
const id = event.getId();

//終日予定追加例②
  const startDate = new Date('2026/03/01');
  const endDate = new Date('2026/03/10');
  calendar.createAllDayEvent('タイトル',startDate,endDate);

//オプションをつけて説明や場所など追加する場合
※locationは地図が表示されるので設定するなら住所または座標
  const option = {
    'description':'説明',
    'location':'場所',
    'guests': 'ゲストメールアドレス',
    'sendInvites':false,//招待するしない
  };
calendar.createEvent('タイトル',start,end,option);

その他(色・タグ)の設定例

const ev = calendar.createEvent('タイトル', start, end);
  ev.setDescription('説明');//説明を追加する場合
  ev.setColor('11');//色の設定(1~11)
//タグを設定する場合
  ev.setTag('key1', 'value1');
  ev.setTag('key2', 'value2');

setTitle(title) イベントのタイトルを設定*
setTime(startTime, endTime) イベントの開始時間と終了時間を設定
getStartTime() 開始時間取得*
getEndTime() 終了時間取得*
setDescription(description) イベントの説明を設定*
removeGuest(email) ゲストメールを削除
setAllDayDate(date) 終日イベントの日付を設定
setColor(color) 色を設定*
setLocation(location)*
*set/get両方のメソッドあり

色番号

1 PALE_BLUE
2 PALE_GREEN
3 MAUVE
4 PALE_RED
5 YELLOW
6 ORANGE
7 CYAN
8 GRAY
9 BLUE
10 GREEN
11 RED

公開・非公開設定

  const visibility = CalendarApp.Visibility.PUBLIC;//公開
  //const visibility = CalendarApp.Visibility.PRIVATE;//非公開 (カレンダー上には"予定あり"とだけ表示される)
  //ev.setVisibility(visibility);

予定の削除

※指定期間の予定を一気に削除するケース
※特定の予定を削除する場合は、予定作成時にイベントIDを取得・保存がおすすめ
const events = calender.getEvents(startDate, endDate);//期間内のイベントを取得
    for (var i = 0; i < events.length; i++) {
      events[i].deleteEvent();//----------------- カレンダーから予定を削除
    }

イベントIDがわかっている場合
      const event = calendar.getEventById(イベントID);
    event.deleteEvent();


繰り返し処理

追加する予定が、毎週・隔週など繰り返す場合の設定方法です

const recurrence = CalendarApp.newRecurrence();
const evTitle = 'タイトル';
const start = new Date('2026/04/13 15:00');//基準日開始
const end = new Date('2026/04/13 18:00');//基準日終了
const last = new Date('2026/05/30 18:00');//最終日
※ルール(ここではrule)設定後、次のようにcreateEventSeries()でカレンダーに追加します
  let ev = calendar.createEventSeries(
    evTitle,
    start,
    end,
    rule
  );
evid = ev.getId();//一括削除用にID取得

1.毎日
パターンの作り方例
const rule = recurrence.addDailyRule();//期限なし
const rule = recurrence.addDailyRule().until(last);//期限あり
const rule = recurrence.addDailyRule().times(5);//回数指定(毎日5日間の場合)
const rule = recurrence.addDailyRule().interval(3);//3日毎(2日おき)期限なし
const rule = recurrence.addDailyRule().interval(3).times(3);//3日毎(2日おき)3回限定

2.毎週・毎月
※開始日を基準に隔週(1週おき)・回数の設定パターンは上記と同じ
const rule = recurrence.addWeeklyRule();//毎週
const rule = recurrence.addMonthlyRule();//毎月

3.特定の曜日指定
※開始日が、指定されている曜日ではない場合も追加されます
※火曜・木曜、隔週、最終日指定ありの例
const rule = recurrence.addWeeklyRule().onlyOnWeekdays(
        [CalendarApp.Weekday.TUESDAY, CalendarApp.Weekday.THURSDAY]).interval(2).until(last);

4.月の指定日
※毎月1日、15日指定の例
※開始日が、指定日ではない場合も追加されます
const rule = recurrence.addMonthlyRule().onlyOnMonthDays([1, 15]);




サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら