前提・実現したいこと
PHPでGoogleカレンダーに登録しているイベント一覧を取得したいのですが、
登録しているはずのイベントが一部取得できません。
オプションとしては、明日の10-21時から3ヶ月後の10-21時までを渡しています。
登録しているイベントを全て取得できる方法、もしくは、登録しているイベント以外の時間を取得できる効率的な方法を教えていただけると幸いです。
ソースコード
public function getCalendarEvent() { // ... $client = new \Google_Client(); $client->setScopes(\Google_Service_Calendar::CALENDAR_READONLY); $client->useApplicationDefaultCredentials(); $service = new \Google_Service_Calendar($client); $calendarId = カレンダーID; $tomorrow = Carbon::tomorrow(); $start_date = $tomorrow->toDateString() . 'T10:00:00-21:00:00'; $end_date = $tomorrow->addMonths(3)->toDateString() . 'T10:00:00-21:00:00'; $optParams = array( 'timeMin' => $start_date, 'timeMax' => $end_date, ); $results = $service->events->listEvents($calendarId, $optParams); $events = $results->getItems(); return $events; }
取得結果
以下のように、オプションで渡した期間の範囲外のイベントが取得されます。
また、隔週のイベントなど定期的に登録しているイベントが取得されていないようにも思えます。
+"start": Google_Service_Calendar_EventDateTime {#1231 ▼ +dateTime: "2019-03-01T14:00:00+09:00" +"start": Google_Service_Calendar_EventDateTime {#1237 ▼ +dateTime: "2018-11-01T10:00:00+09:00" +"start": Google_Service_Calendar_EventDateTime {#1243 ▼ +dateTime: "2019-01-21T18:30:00+09:00" : : :
試したこと
オプションに 'singleEvents' => true
を追加し、定期的に登録しているイベントを取得してみましたが
今度は、定期イベント以外のイベントが取得されていないようです。