GcalCalendar is an abstraction on top of ESource and ECalClient. Its initialization is asynchronous and failable. This gives us more flexibility when initializing and loading the calendars from EDS.