2014-11-09 5 views
2

내 개인용 Google 계정을 사용하여 양식을 만들고 내 수업 웹 사이트에 캘린더를 게시하는 교사. 테스트 using this form.를 구성 일정 (Google Apps에 액세스 할 수 없음으로) 아이들을위한 가능한 한 빠르고 쉽게 만들려고 노력Google 캘린더에서 캘린더에 양식 제출 이벤트

신속하고 더러운 승리는 자신의 양식 제출과 같이 내 캘린더에 추가하는 것입니다 설명 필드에 세부 정보가 포함 된 종일 이벤트입니다. 그런 다음 요청 된 특정 시간으로 이벤트를 검토하고 편집 할 수 있습니다 (양식에 드롭 다운 선택 항목으로 제공되는 특정 시간 옵션 만 있습니다).

아름답고 우아한 해결책은 스크립트에 이벤트는 드롭 다운에 표시된 시간이지만, 나는 그것이 마법을 필요로한다고 생각합니다. ...

양식이 스프레드 시트에 응답을 기록하고 이메일 알림도 작동하지만 캘린더를 가져올 수 없습니다. 이벤트 생성이 발생합니다.

필요한 코드를 찾고/배우려고 노력하지만 올바른 방향으로 걷어차기를 크게 감사 할 것입니다. 당신이 교사 (그래서 내가)이 아닌 프로그래머있어 없습니다 (나도 오전)부터

건배, 여기

+0

* 마술이 필요합니다. * ... :-) 실제로이 태그를 사용하여이 사이트를 검색하십시오. 스프레드 시트에서 이벤트를 만드는 스크립트의 몇 가지 예가 있습니다. 데이터로 시작하는 간단한 옵션이 될 것입니다. –

답변

5

는 잘하면 당신이 필요로 정확히 수행하는 "마법의 선물"입니다.

편집

: 나는 설명

function createCalEvent(e) { 
    Logger.log(e); 
    // this will return something like this : 
    /* 
    {values=[11/9/2014 22:30:00, serge, test descr, 11/7/2014, Before school | 7:30], 
    namedValues={Your Full Name=[serge], Work to Make Up=[test descr], Date You Will Make Up Assignment=[11/7/2014], 
    Makeup Time=[Before school | 7:30], Timestamp=[11/9/2014 22:30:00]}, range=Range, source=Spreadsheet, authMode=FULL} 
    */ 
    var cal = CalendarApp.getCalendarById("[email protected]");// replace with the right calendar ID, this one is for test (and is public) 
    var name = e.namedValues["Your Full Name"][0]; 
    var descr = e.namedValues["Work to Make Up"][0]; 
    var submitTime = e.namedValues["Timestamp"][0]; 
    var date = e.namedValues["Date You Will Make Up Assignment"][0].split('/'); 
    var time = e.namedValues["Makeup Time"][0].split('|')[1].split(':'); 
    Logger.log(name+' '+descr+' '+date+' '+time); // this will return serge test descr 11,7,2014 7,30 
    var startTime = new Date(date[2],date[0]-1,date[1]); 
    startTime.setHours(time[0],time[1],0,0); 
    endTime = new Date(startTime.getTime()+3600000); //assuming event is 1 hour long 
    Logger.log('start='+startTime+' end='+endTime); 
    cal.createEvent('name = '+name, startTime, endTime, {'description':descr+' (subimitted on '+submitTime+')'}); 
} 

당신은 양식이 제출 될 때 기능을 트리거 트리거 (양식 제출) 설정해야합니다에 제출 날짜/시간을 추가했다.

중요 참고 : 양식을 보내지 않고이 코드를 스크립트 편집기에서 시도하지 마십시오. (분명히 정의되지는 않을 것입니다.)

+1

당신은 학자이고 신사입니다. 좋은 물건과 많은 감사합니다! PayPal을 사용하면 커피 나 세 개를 사주세요! – Dusibello

+2

제안 해 주셔서 감사합니다.하지만 필요하지 않을 것입니다 ... 행복하다면 나도 그렇습니다 :-) 대답을 수락하는 것을 고려해보십시오, 감사합니다. –

관련 문제