みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

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

投稿日時 - 2015-05-21 21:07:35

QNo.8979409

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

同じ予定を削除して再度追加するのは無駄な処理なので、
登録前に予定を削除するのではなく、予定を登録したかどうかをスプレッドシートで管理するようにして、ダブらないようにするのがいいと思いますよ。

でも、どうしても deleteEventしたいのであれば、getEvents もしくは getEventsForDay などでイベントを検索して、見つかったイベントに対して deleteEventしてください。

投稿日時 - 2015-05-23 07:07:21

補足

まったくの初心者で申し訳ありませんでした

events.deleteEvent();を

for(var i=0; i<events.length; i++){
events[i].deleteEvent();
}
にすることで解決しました。

backy0175さん、ありがとうございました。

投稿日時 - 2015-05-24 15:38:14

お礼

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を記載するかがわかりません。
できれば記載方法を教えてください。
お願いいたします。

投稿日時 - 2015-05-24 11:10:32

あなたにオススメの質問