真・googleカレンダーとスプレッドシートを連携させる

すったもんだのあげくようやく表題ができるようになりました。
参考にしたものは以下。

Google Apps Script = GoogleDocs版javascript

Google Apps Scriptガイド
http://code.google.com/intl/ja/googleapps/appsscript/guide.html

Google Apps ScriptでスプレッドシートからGoogleドキュメント以外のサービスにアクセスする
http://codezine.jp/article/detail/5064

〜一通り作ってみての追記〜

スクリプト自体は簡単にできるんだけど、処理にコストがかかるとgoogleサーバにタイムアウトで蹴られてしまいます。
今回書いたスクリプトでは、スプレッドシートオブジェクト(ライブオブジェクトではないけど異様に重い)の配列切り出しと書き込み処理をチューニングすることで対処しました。

取得部分でスプレッドシートオブジェクトから必要な値だけを配列に切りだす。

  var doc = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = doc.getSheetByName(sheetName);
  var cellValues = sheet.getRange(targetRange).getValues();

書き込みは1行1行書き出してると目視できるくらいもっさりした処理になります(スローモーションを見ているようでワロタ^^;)
二元配列を生成して一回で終わらせるとスマート。

  for(var i=0 ; i<cellValues.length ; i++){
    var tmpvalue = new Array(1);
    tmpvalue[0] = cellValues[i];
    values[i] = tmpvalue;
  }

  var doc = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = doc.getSheetByName(sheetName);
  var all = sheet.getRange(targetrange);
 
  all.setValues(values);