/**
* @param \Carbon\Carbon|null $startDateTime
* @param \Carbon\Carbon|null $endDateTime
* @param array $queryParameters
* @param string|null $calendarId
*
* @return \Illuminate\Support\Collection
*/
public static function get(Carbon $startDateTime = null, Carbon $endDateTime = null, array $queryParameters = [], string $calendarId = null) : Collection
{
$googleCalendar = static::getGoogleCalendar($calendarId);
$googleEvents = $googleCalendar->listEvents($startDateTime, $endDateTime, $queryParameters);
return collect($googleEvents)->map(function (Google_Service_Calendar_Event $event) use($calendarId) {
return Event::createFromGoogleCalendarEvent($event, $calendarId);
})->sortBy(function (Event $event) {
return $event->sortDate;
})->values();
}