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

时间:2017-04-09 02:25:56

标签: google-apps-script google-calendar-api

我正在尝试将数据从Google日历提取到电子表格。

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

日历有多个事件,所以这不是日历问题。

有人可以帮我弄清楚发生了什么吗?谢谢。

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" );
} 

1 个答案:

答案 0 :(得分:0)

正如Josh Dawson所提到的,CalendarApp.getCalendarById()方法,你的迭代没有任何意义,除非你从多个日历中获取数据。

您可以使用CalendarApp.getDefaultCalendar()CalendarApp.getCalendarByName()方法获取所需的确切日历。
否则,如果要操作多个日历,可以使用CalendarApp.getAllCalendars()方法。在这种情况下,您必须是所有者或订阅您想要操作的日历。

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