• 締切済み

GASでカレンダーの予定を削除する

Google App Script初心者です。 Googleドライブのスプレッドシートで作成したスケジュールを Googleカレンダーに反映するGoogle apps scriptを作成したいのですが スプレッドシートの内容に予定を追加し、Googleカレンダーに反映すると 2回目以降は予定がダブってしまいます。(あたり前ですよね) そこでdeleteEventでカレンダーの予定を前もって削除したら良いのかと思ったのですがdeleteEventの使用法がわかりません。 deleteEventの前にカレンダーの何(ID?)を調べて削除するのかもよくわかりません。 deleteEventの使い方のコードを教えてください。 お願いします。

みんなの回答

  • backy0175
  • ベストアンサー率87% (102/116)
回答No.1

同じ予定を削除して再度追加するのは無駄な処理なので、 登録前に予定を削除するのではなく、予定を登録したかどうかをスプレッドシートで管理するようにして、ダブらないようにするのがいいと思いますよ。 でも、どうしても deleteEventしたいのであれば、getEvents もしくは getEventsForDay などでイベントを検索して、見つかったイベントに対して deleteEventしてください。

owavehp
質問者

お礼

backy0175さんありがとうございます。 説明が足りませんでした。 Googleのフォームでスプレッドシートを作成した予定を Googleカレンダーに反映する仕組みにしたいのです。 Googleのフォームで後から予定の修正(題名)も可能にするため、 予定を削除する必要があると思っているのです。 当日のカレンダー内容を削除するコードを書いて function getCal(){ var cal = CalendarApp.getCalendarById('test'); var today = new Date(); var events = CalendarApp.getDefaultCalendar().getEventsForDay(today); events.deleteEvent(); } をデバッグすると 「TypeError: オブジェクト CalendarEvent で関数 deleteEvent が見つかりません。」 とエラーコードがかえってきます。 どのようにdeleteEventを記載するかがわかりません。 できれば記載方法を教えてください。 お願いいたします。

owavehp
質問者

補足

まったくの初心者で申し訳ありませんでした events.deleteEvent();を for(var i=0; i<events.length; i++){ events[i].deleteEvent(); } にすることで解決しました。 backy0175さん、ありがとうございました。

関連するQ&A