| parseFromRoomPattern(String, Matcher) |   | 89% |   | 50% | 5 | 6 | 0 | 12 | 0 | 1 |
| parseFromClassroomPattern(Matcher) |   | 86% |   | 50% | 2 | 3 | 0 | 3 | 0 | 1 |
| parseBuildingAndRoom(String) |  | 97% |   | 87% | 1 | 5 | 0 | 10 | 0 | 1 |
| formatEventDetailsText(GoogleEventDto, String) |  | 95% |   | 50% | 1 | 2 | 0 | 3 | 0 | 1 |
| listCalendars(String) |  | 100% |   | 90% | 2 | 12 | 0 | 23 | 0 | 1 |
| getState(String, int, String, boolean) |  | 100% |   | 87% | 2 | 9 | 0 | 23 | 0 | 1 |
| buildImportEventsUrl(String, int, String) |  | 100% | | n/a | 0 | 1 | 0 | 13 | 0 | 1 |
| toEventDto(Map) |  | 100% |   | 87% | 1 | 5 | 0 | 15 | 0 | 1 |
| formatWhen(GoogleEventDto, String) |  | 100% |   | 87% | 1 | 5 | 0 | 15 | 0 | 1 |
| setSelectedCalendar(String, GoogleCalendarDto) |  | 100% |   | 75% | 2 | 5 | 0 | 9 | 0 | 1 |
| toEventStartInstant(GoogleEventDto, String) |  | 100% |   | 75% | 2 | 5 | 0 | 13 | 0 | 1 |
| fetchEventItems(String, HttpHeaders) |  | 100% |  | 100% | 0 | 3 | 0 | 6 | 0 | 1 |
| importEvents(String, String, int, String) |  | 100% | | n/a | 0 | 1 | 0 | 8 | 0 | 1 |
| getNextEvent(String, String, int, String) |  | 100% |  | 100% | 0 | 4 | 0 | 8 | 0 | 1 |
| toEventDtos(List) |  | 100% |   | 75% | 1 | 3 | 0 | 6 | 0 | 1 |
| getStringValue(Map, String) |  | 100% |   | 83% | 1 | 4 | 0 | 4 | 0 | 1 |
| parseEventInstant(String) |  | 100% |   | 75% | 1 | 3 | 0 | 7 | 0 | 1 |
| GoogleCalendarService(RestTemplate, GoogleSessionService) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| buildBearerHeaders(String) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| getState(String, int, String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |