Google apps script 无法使用google apps脚本将数据从google日历提取到电子表格

Google apps script 无法使用google apps脚本将数据从google日历提取到电子表格,google-apps-script,google-calendar-api,Google Apps Script,Google Calendar Api,我试图从谷歌日历中提取数据到电子表格中 似乎没有语法错误,程序说提取完成了。但我只收到“完成”的信息,在电子表格上看不到任何结果 日历有多个事件,因此它不是日历的问题 有人能帮我弄清楚发生了什么事吗?多谢各位 function getRoom2MonthEvent() { var endDate = new Date(); var myCals = CalendarApp.getCalendarById( 'example@gmail.com' ); var myRow

我试图从谷歌日历中提取数据到电子表格中

似乎没有语法错误,程序说提取完成了。但我只收到“完成”的信息,在电子表格上看不到任何结果

日历有多个事件,因此它不是日历的问题

有人能帮我弄清楚发生了什么事吗?多谢各位

function getRoom2MonthEvent()
{
    var endDate = new Date();
    var myCals = CalendarApp.getCalendarById( 'example@gmail.com' );
    var myRow = 2
    var mySheet = SpreadsheetApp.getActiveSheet();
    var startDate = new Date();


    startDate.setHours( 0 );
    startDate.setMinutes( 0 );
    startDate.setSeconds( 0 );
    startDate.setDate( 0 );

    endDate.setHours( 0 );
    endDate.setMinutes( 0 );
    endDate.setSeconds( 0 );
    endDate.setMonth( endDate.getMonth() + 1 );
    endDate.setDate( 1 );

    for ( i in myCals )
    {
        var myCals = myCals[ i ];
        var myEvents = myCal.getEvents(startDate, endDate);


        mySheet.getRange( myRow, 1 ).setValue( myCal.getName() );

        if ( myEvents.length > 0 )
        {
            for ( j = 0;
                  i < myEvents.length;
                  i++ )
            {
                var myEvent = myEvents[ i ];


                mySheet.getRange( myRow, 2 ).setValue( myEvent.getTitle() );
                mySheet.getRange( myRow, 3 ).setValue( myEvent.getStartTime() );
                mySheet.getRange( myRow, 4 ).setValue( myEvent.getEndTime() );
                myRow++;
            }
        }
    }

    Browser.msgBox( "Done" );
} 
函数getRoom2MonthEvent() { var endDate=新日期(); var myCals=CalendarApp.getCalendarById('example@gmail.com' ); var myRow=2 var mySheet=SpreadsheetApp.getActiveSheet(); var startDate=新日期(); 开始日期设定小时数(0); 开始日期设置分钟数(0); 开始日期设置秒(0); startDate.setDate(0); endDate.setHours(0); endDate.setMinutes(0); endDate.setSeconds(0); endDate.setMonth(endDate.getMonth()+1); endDate.setDate(1); 对于(我在myCals中) { var myCals=myCals[i]; var myEvents=myCal.getEvents(开始日期、结束日期); mySheet.getRange(myRow,1).setValue(myCal.getName()); 如果(myEvents.length>0) { 对于(j=0; i正如Josh Dawson提到的,CalendarApp.getCalendarById()方法,除非您从多个日历获取数据,否则您的迭代没有意义

您可以使用或方法获取所需的确切日历
否则,如果要操纵多个日历,可以使用该方法。在这种情况下,您必须是要操作的日历的所有者或已订阅该日历


提示:为了避免在使用Browser.msgBox()方法时需要确认,您可以改为使用该方法,该方法将在窗口的右下角弹出一条消息。

getCalendarById
返回单个日历对象,因此
for(myCals中的i)
没有任何可迭代的内容。如果有任何内容,它将迭代日历的属性键。myEvents将未定义,脚本将终止。