前提・実現したいこと
自分(@gmail.com)のGoogleカレンダーの予定を取得、書き出したく、
GASで以下のスクリプトを書きましたが、エラーもでず、
「events.length」が0となり、予定が無い状態となります。
該当期間内に予定は多数登録されています。
発生している問題・エラーメッセージ
エラーは一切表示されません。代わりに以下のログが出力されます。 [20-01-25 16:01:59:668 JST] 【Weekend Plans】 [20-01-25 16:01:59:669 JST] from=Sat Jan 25 2020 16:01:59 GMT+0900 (JST) [20-01-25 16:01:59:669 JST] end=Mon May 04 2020 16:01:59 GMT+0900 (JST) [20-01-25 16:01:59:730 JST] calendar = Calendar [20-01-25 16:01:59:731 JST] イベント数 = 0 [20-01-25 16:01:59:731 JST] カレンダーの名前 = Namae [20-01-25 16:01:59:732 JST] タイムゾーン = Asia/Tokyo
該当のソースコード
GAS
1function NotifyWeekendPlans() { 2 Logger.log('【Weekend Plans】'); 3 var id = 'xxx@gmail.com'; 4 var now = new Date(); 5 now.setDate(now.getDate()); 6 var from = now; 7 Logger.log('from='+from); 8 now.setDate(now.getDate() + 100); 9 var end = now; 10 Logger.log('end='+end); 11 12//カレンダー情報取得 13 //var calendar = CalendarApp.getDefaultCalendar(); 14 var calendar = CalendarApp.getCalendarById(id); 15 var events = calendar.getEvents(from, end); 16 var calname = calendar.getName(); 17 var caldesc = calendar.getDescription(); 18 19 Logger.log('calendar = '+calendar); 20 Logger.log('イベント数 = '+events.length); 21 Logger.log('カレンダーの名前 = '+calname); 22 Logger.log('タイムゾーン = '+calendar.getTimeZone()); 23 var maxRow = 1; 24 for(var i = 0; i < events.length; i++){ 25 Logger.log( 26 maxRow + "|" + 27 events[i].getTitle()+"|"+ 28 events[i].getStartTime()+"|"+ 29 events[i].getEndTime() 30 ); 31 maxRow++; 32 } 33} 34
試したこと
・ コメントアウトされていますが、「CalendarApp.getDefaultCalendar();」でも
結果は同じでした
・ 別のGoogleアカウント(仕事用G Suiteの自分のアカウント)では
同じコードで予定が取得、表示できました。
そのため、ソースではなくカレンダーの設定?の問題の可能性もありますが、
見る限り特に違いは有りません。
また、タイムゾーン、カレンダー名などは表示されるため、カレンダーオブジェクト自体は
取得できていると思われます。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー