   * );
   ###
 
-  listCalendars: (onSuccess, onError) ->
-    @sendRequest('/calendars/', 'GET', 0, onSuccess, onError)
+  listCalendars: () ->
+      action = (resolve, reject) -> @sendRequest('/calendars/', 'GET', 0, resolve, reject)
+      new Promise(action.bind(@))
 
   ###*
   * Callback, returns an array of calendars.

  * );
  ###

  listEvents: (calendarId, onSuccess, onError) ->
    @sendRequest('/calendars/' + calendarId + '/events/', 'GET', 0, onSuccess, onError)

  ###*
  * Callback, executed when list events successful, data parameter contains list of events.

  * );
  ###

  addCalendar: (name) ->
    action = (resolve, reject) -> @sendRequest('/calendars/', 'POST', {name: name}, resolve, reject)
    new Promise(action.bind(@))

  ###*
  * Callback function, executed when calendar successfully added.
