前提・実現したいこと
Googleフォームで日付の入力欄と選択肢を用意し、回答結果を元にフォーム回答者のカレンダーにイベントを登録したいと考えています。
具体的には、フォームで入力された日付の決め打ちの時間で、フォーム回答者のデフォルトカレンダーに、選択された選択肢の内容を名前にしたイベントを登録しようとしました。
発生している問題・エラーメッセージ
デフォルトカレンダーを CalendarApp.getDefaultCalendar()
で取得しようとしましたが、それではフォーム回答者のデフォルトカレンダーではなく、開発者である私のカレンダーになってしまいました。
該当のソースコード
function onFormSubmit(e) { var email = e.response.getRespondentEmail(); var responses = e.response.getItemResponses(); var item_date = responses[0].getResponse(); var item_option = responses[1].getResponse(); var calendar = CalendarApp.getCalendarsByName(email)[0]; // var calendar = CalendarApp.getDefaultCalendar(); var date = new Date(item_date); var start = new Date(date.getFullYear(),date.getMonth(),date.getDate(),9,0,0); var end = new Date(date.getFullYear(),date.getMonth(),date.getDate(),10,0,0); var event = calendar.createEvent(item_option,start,end); event.addPopupReminder(5); }
試したこと
var email = e.response.getRespondentEmail()
で回答者のメールアドレスを取得し、CalendarApp.getCalendarsByName(email)[0]
で回答者のデフォルトカレンダーを取得はできたのですが、実際にユーザーに試してもらったところ、カレンダーへのアクセス許可を求められることもなく、イベントは追加されませんでした。
あなたの回答
tips
プレビュー