スキップしてメイン コンテンツに移動

未解決:Google Calendar APIの結果にwhenが含まれないことがある

Google Calendar API で、期間指定してイベント検索していたら(↓リクエストURL例)
https://www.google.com/calendar/feeds/***********group.calendar.google.com/private/full?start-min=2011-12-28T15:00:00Z&start-max=2011-12-29T14:59:00Z&alt=jsonc

普通はこういう結果が返ってくるところ
    [{"kind"=>"calendar#event",
     "id"=>"h9olon8cq28c18uood6uan6a30",
     "selfLink"=>"...",
     "alternateLink"=>"...",
     "canEdit"=>true,
     "title"=>"test #notice",
     "created"=>"2011-12-28T19:16:31.000Z",
     "updated"=>"2011-12-28T19:16:31.000Z",
     "details"=>"",
     "status"=>"confirmed",
     "creator"=>{"displayName"=>"******@gmail.com",
     "email"=>"******@gmail.com"},
     "anyoneCanAddSelf"=>false,
     "guestsCanInviteOthers"=>true,
     "guestsCanModify"=>false,
     "guestsCanSeeGuests"=>true,
     "sequence"=>0,
     "transparency"=>"opaque",
     "visibility"=>"default",
     "location"=>"",
     "attendees"=>
        [{"rel"=>"organizer",
          "displayName"=>"******",
          "email"=>"....."}],
     "recurrence"=>"DTSTART;TZID=Asia/Tokyo:20110831T150000\r\nDTEND;TZID=Asia/Tokyo:20110831T160000\r\nRRULE:FREQ=WEEKLY;UNTIL=20111228T060000Z;BYDAY=WE\r\nBEGIN:VTIMEZONE\r\nTZID:Asia/Tokyo\r\nX-LIC-LOCATION:Asia/Tokyo\r\nBEGIN:STANDARD\r\nTZOFFSETFROM:+0900\r\nTZOFFSETTO:+0900\r\nTZNAME:JST\r\nDTSTART:19700101T000000\r\nEND:STANDARD\r\nEND:VTIMEZONE\r\n",
     "when"=>
        [{"start"=>"2011-12-28T15:00:00.000+09:00",
        "end"=>"2011-12-28T16:00:00.000+09:00"}]}]


whenが含まれない事象に出くわした。そんな馬鹿な。発生条件不明。
  • この予定は、毎週水曜日の繰り返し予定。
  • 繰り返し終了日=最終回である。
  • 問題が起きたリクエストの対象期間内に、最終回がある。
  • (最終回より前の回を含むように)対象期間を変えてリクエストすれば問題は起きない。
  • 同等の内容で別の予定を作って検索しても再現しない。

APIドキュメントを眺めた限り、whenが抜けることがあるとも、必ずあるとも、記述は見つけられなかった。

困っているのは、そのイベントが本当に指定した期間内のものか(whenがないから)分からないこと。
今回はたしかに指定期間中にイベントがあったけど。
本当に心配なら、イベントidを使ってこのイベント単品の情報をリクエストしなおす・・・?
私はそれほどシビアな用途でないから検索結果を信じることにした。いまのところ。でも気持ち悪い・・・。

コメント

このブログの人気の投稿

GAS 同一カラムを複数条件でfilterできない件

Google Apps Script でSpreadsheetをデータベース代わりにwebアプリをポチポチ作ってて、スクリプトからSpreadsheetにフィルタかける場合、同一カラムに複数条件を設定できないことを知って残念……。 フィルタのかけ方はこんな感じ。 日付を範囲指定したいけど、After、Before片方しかつけられない。 var dataFile = SpreadsheetApp.openById(DATA_FILE_ID); var sh = dataFile.getSheetByName(LOG_SHEET_NAME); var criteriaDateAfter = SpreadsheetApp.newFilterCriteria().whenDateAfter(new Date(targetDate)).build(); var criteriaUserEqual = SpreadsheetApp.newFilterCriteria().whenTextEqualTo(user.id).build(); if (sh.getFilter()) { sh.getFilter().remove(); } var r = sh.getRange(1, 1, sh.getLastRow(), sh.getLastColumn()) .createFilter() .setColumnFilterCriteria(DATE_COL, criteriaDateAfter) .setColumnFilterCriteria(USER_ID_COL, criteriaUserEqual) .getRange(); FilterCriteriaに2回条件設定してみたり var criteriaDateRange = SpreadsheetApp.newFilterCriteria() .whenDateAfter(new Date(date1)) .whenDateBefore(new Date(date2)).build(); 同じカラムに2回条件設定してみたり var r = sh.getRange(1, 1, sh.get...

ジップロックで堆肥づくり

2012/11/02『家庭でできる堆肥づくり百科』を見てビニール袋と生ゴミで堆肥づくりに初挑戦。 ・生ごみ 250ml (細かく刻む) ・庭の土 120ml ・水 大さじ2 ・アルファルファ粉末 大さじ1 (ウサギのペレットを砕いた) 袋はジップロック大を使用。 毎日揉む(切り返し)、1日おきに空気を入れ替える。4~8週間でできるらしい。 保温のことは書いてなかったけど発砲スチロール箱に入れてみた。うまく行くといいなあ。 2012/11/07 道路掃除の方に落ち葉をもらったので一掴みいれてみる。生ゴミは窒素やや多めらしく、炭素系の落ち葉を足したらいいかなと。 2012/11/12 10日経ってニオイが落ちついてきたかも。腐ってる臭いではないけどツンとする臭いがずっとしてた。発泡スチロール箱を蓋すれば気にならない(ジップロックには全く遮断されないので、袋だけで室内に置くのは避けたい)。材料がネギとミカンなせいかなあ。見た目は一向に変わらず。

2013/05/02

研修。ひたすら葱を植える。今日はペーパーポットの苗を「ひっぱりくん」で定植し、もみ殻と堆肥をかける。「ひっぱりくん」を使うには30cm位の幅で中央が盛り上がった(W字型の)溝を掘っておく。ペーパーポットの端をセットして引っ張ると、苗が埋められ土もかけてくれる優れもの・・・だけどうまく土がかからなかったり、根が絡んでポットがほぐれなかったり、そうそう簡単でもない。でも1反弱を5人で植えきった。 はじめて1人で昼食当番。大根飯、味噌汁、がんもどき、豚肉と蕪の炒め、カレーグラタンのようなもの。ちょっと少なかったか。 なんかの取材があり、私ふくめ4人の研修生が自己紹介してみると改めて各人各様。10代、20代、30代、研修歴は1ヶ月から2年まで。でも「どうして有機農業なんですか?」にはみんな戸惑う。慣行か有機かって悩んだりしてないから。 帝国ホテルは自前の堆肥工場を持っていると聞いた。悪くない、けど、残飯じゃなく、食べるに事欠く人にお裾分けできればもっといい。かつて折詰のおみやがごく普通だったし、王侯貴族の飽食の残りもゴミになったはずがない。タイ?では幾つもの皿に盛り分け、手をつけた皿だけ請求する仕組みもあるとか。そういうものって感覚が広まればなんなく成立すると思うんだけど。 ---- 迎えにいったらフミさんは音楽を聴いてご機嫌。庭のままごとハウスで遊んだり、プランターの花を見たりして帰る。「八高線、いっぱいの人が乗ってるの」