teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

イベントIDが正しく出力されていないため追記で質問

2020/07/22 10:16

投稿

nezumimuzen
nezumimuzen

スコア19

title CHANGED
File without changes
body CHANGED
@@ -40,4 +40,38 @@
40
40
  キャンセル
41
41
  |電話番号|予約日|反映 
42
42
  |:--|:--:|--:|
43
- |09000000000|2020/7/25||
43
+ |09000000000|2020/7/25||
44
+
45
+
46
+ 追記
47
+ ---
48
+ 下記コードを使ってスプレッドシートよりGoogleカレンダーへ予定の書き出しをしているのですが(もとコードから書き換えがあるため書き間違えがある可能性あり)、このコードで出力されるイベントIDというのが「zzzzzzzzzzzzzzzz@google.com」というような形で出力されます。
49
+ しかし今回行いたいカレンダーの削除において必要なイベントIDとは文字列が異なるため正しいイベントIDの書き出し方を教えていただきたく存じます。
50
+
51
+ ```javascript
52
+ function addTaskEvents() {
53
+
54
+ var cal = CalendarApp.getCalendarById('xxxxxxxxxxxxxxxxx@group.calendar.google.com'); //カレンダーIDでカレンダーを取得
55
+
56
+ var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
57
+ var mySheet = objSpreadsheet.getSheetByName("予約"); 
58
+ var dat = mySheet.getDataRange().getValues(); //シートデータを取得
59
+
60
+ for(var i=1;i<dat.length;i++){
61
+ if(dat[i][3] == ""){
62
+
63
+ /* 日時をセット */
64
+ var evtDate = new Date(dat[i][2]);
65
+ var evTime = "18:00"
66
+ var Name =dat[i][0]
67
+ var option =dat[i][1]
68
+
69
+ var myEvt = cal.createEvent(Name , evtDate , evtTime , option);
70
+ }
71
+
72
+ dat[i][3]= myEvt.getID();//イベントIDを入力
73
+ }
74
+ mySheet.getRange(1,1,i,3).setValues(dat);
75
+ }
76
+
77
+ ```

1

初心者マークを追加

2020/07/22 10:16

投稿

nezumimuzen
nezumimuzen

スコア19

title CHANGED
File without changes
body CHANGED
@@ -5,7 +5,7 @@
5
5
  上記を動かし予約カレンダーとして利用しているのですが、予約のキャンセルがあったときもフォーム入力で自動で予定の削除ができないかと方法を考えております。
6
6
 
7
7
 
8
- 現在考えている方法としまして下記の「キャンセル」のシートにフォーム送信があった際、シート「予約」から予約日と電話番号の二つの条件で検索し、行番号をindexOfなどで抽出をしたら列番号と行番号で対象のイベントIDの値を取り、deleteCalendar()で予定を削除しようと考えております(処理後C列に「済」を記帳)
8
+ 現在考えている方法としまして下記の「キャンセル」のシートにフォーム送信があった際、シート「予約」から予約日と電話番号の二つの条件で検索し、行番号をindexOfなどで抽出をしたら列番号と行番号で対象のイベントIDの値を取り、deleteCalendar()で予定を削除しようと考えております(処理後C列に「済」を記帳)
9
9
 
10
10
  しかしindexOfでは二つの条件で検索ができず、他に方法も思い浮かばないためこの度質問させていただきました。
11
11