@Kroll.method
  public CalendarProxy getCalendarById(int id) {
    ArrayList<CalendarProxy> calendars =
        CalendarProxy.queryCalendars("Calendars._id = ?", new String[] {"" + id});

    if (calendars.size() > 0) {
      return calendars.get(0);
    } else {
      return null;
    }
  }
 @Kroll.getProperty
 @Kroll.method
 public CalendarProxy[] getSelectableCalendars() {
   ArrayList<CalendarProxy> calendars;
   // selectable calendars are "visible"
   if (Build.VERSION.SDK_INT >= 14) { // ICE_CREAM_SANDWICH, 4.0
     calendars = CalendarProxy.queryCalendars("Calendars.visible = ?", new String[] {"1"});
   }
   // selectable calendars are "selected"
   else if (Build.VERSION.SDK_INT >= 11) { // HONEYCOMB, 3.0
     calendars = CalendarProxy.queryCalendars("Calendars.selected = ?", new String[] {"1"});
   }
   // selectable calendars are "selected" && !"hidden"
   else {
     calendars =
         CalendarProxy.queryCalendars(
             "Calendars.selected = ? AND Calendars.hidden = ?", new String[] {"1", "0"});
   }
   return calendars.toArray(new CalendarProxy[calendars.size()]);
 }
 @Kroll.getProperty
 @Kroll.method
 public CalendarProxy[] getAllCalendars() {
   ArrayList<CalendarProxy> calendars = CalendarProxy.queryCalendars(null, null);
   return calendars.toArray(new CalendarProxy[calendars.size()]);
 }
 @Kroll.method
 public boolean hasCalendarPermissions() {
   return CalendarProxy.hasCalendarPermissions();
 }