2013-05-31 10 views
1

Google 캘린더에 일정을 업로드하고 추가 정보와 함께 양식 제출자에게 전자 메일을 보내는 Google 스프레드 시트 (양식 포함)를 만들려고합니다. 전자 메일 부분에는 문제가 없지만 캘린더 인터페이스로 인해 문제가 발생합니다.Google 스프레드 시트/캘린더 인터페이스 스크립트

내 스크립트를 실행하려고하면 다음과 같은 오류 메시지가 나타납니다. "(문자열)까지 메서드 (클래스)를 찾을 수 없습니다 (줄 84, 파일"코드 ")"이 줄의 요점은 달력을 만드는 것입니다 제출 된 양식의 데이터를 사용하여 여기

가 (스크립트의 다른 곳에서 선언 된) 라인 (84) 변수의 정의입니다 : 내가 왜이 오류가 발생하고에 관해서는

cal.createAllDayEventSeries(eventTitle, eventStartDate, CalendarApp.newRecurrence().addDailyRule().until(eventEndDate),{description:eventDescription}); 

어떤 아이디어 :

여기
var calId = "[email protected]"; //test calendar ID 
var cal = CalendarApp.getCalendarById(calId); //sets the active calendar to calID for adding events 
var eventTitle = row[11] //"Event Title" column 
var eventStartDate = Utilities.formatDate(new Date(row[12]), "GMT", "MM/dd/yy") //"Calendar Start Date" column 
var eventEndDate = Utilities.formatDate(new Date(row[13]), "GMT", "MM/dd/yy"); //"Calendar End Date" column 
var eventDescription = "a string for the description" 

라인 (84)입니다 또는 그것을 해결하기 위해 내가 할 수있는 일은 무엇입니까?

답변

0

메서드에 잘못된 유형을 제공하고 있습니다.

RecurrenceRule.until() 메서드에 대한 설명서를 확인하면 해당 매개 변수가 Date 개체가 될 것으로 예상됩니다. 코드에서 날짜를 나타내는 텍스트가 포함 된 문자열을 제공하고 있습니다. 인터프리터는 .until(eventEndDate)을 검색하고 String 매개 변수를 받아들이고 실패하고 사용자가 보는 오류를 throw하는 메서드 버전을 찾으려고 시도합니다.

eventEndDate에 값을 할당 할 때 해당 값을 Date 개체로 지정해야합니다. 즉, 단지 .formatDate() 비트로 막을 수 있다는 것을 의미합니다.이 비트는 유쾌한 모양의 문자열을 만듭니다. 대신 다음을 시도하십시오.

var eventStartDate = new Date(row[12]) // "Calendar Start Date" column 
var eventEndDate = new Date(row[13]) // "Calendar End Date" column 
+0

감사합니다. Mogsdad. Utilities.formatDate()의 출력이 문자열이라는 사실을 잊어 버렸습니다. 다음에 반환 유형을 두 번 확인해야합니다. – Brady

관련 문제