0

私の目標は、GoogleカレンダーとGoogleスプレッドシートを自動的に同期させることです。カレンダーに予定が追加されるたびに、行がGoogleスプレッドシートに追加されます。 Googleのスプレッドシートに予定されているイベントのリストを読み込むスクリプトを書いた。 このコードは動作しており、スクリプトを実行するたびに10個のイベントのリストが追加されます。しかし、私が望むのは、Googleカレンダーを介してイベントが作成されたときにこのスクリプトを自動的に実行し、重複したイベントを避けたいということです。そのようなイベントリスナーにはどのような機能がありますか?GoogleカレンダーをGoogleスプレッドシートと同期させるにはどうすればよいですか?

function listUpcomingEvents() { 
    var calendarId = '[email protected]e.com'; 
    var optionalArgs = { 
    timeMin: (new Date()).toISOString(), 
    showDeleted: false, 
    singleEvents: true, 
    maxResults: 10, 
    orderBy: 'startTime' 
    }; 
    var response = Calendar.Events.list(calendarId, optionalArgs); 
    var events = response.items; 
    if (events.length > 0) { 
    for (i = 0; i < events.length; i++) { 
     var event = events[i]; 
     var when = event.start.dateTime; 
     if (!when) { 
     when = event.start.date; 
     } 
     Logger.log('%s (%s)', event.summary, when); 
     addEventToSheet(event.summary, when); 
    } 
    } else { 
    Logger.log('No upcoming events found.'); 
    } 
} 
function addEventToSheet(sumarry, date) { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    sheet.appendRow([sumarry, date]); 
} 

答えて

1

短い答え

現時点でGoogle Appsのスクリプトは、Googleカレンダーにスクリプトをバインドすることができません

説明

時間駆動のトリガーを使用してください。代替案は、スプレッドシートまたはスタンドアロンスクリプトに限定されたものを使用するため、この時点では、フォーム応答の提出とは対照的にイベントが作成されたときにスクリプトをトリガすることはできません。

参照

関連する問題