List  invData = DbMailItem.getAppointments(this, start, end, folderId);
List  invData = DbMailItem.getAppointments(this, start, end, folderId, excludeFolders);
    public synchronized Collection /*<Appointment>*/ getAppointmentsForRange(OperationContext octxt, long start, long end, int folderId)    throws ServiceException {        boolean success = false;        try {            beginTransaction("getAppointmentsForRange", octxt);            // if they specified a folder, make sure it actually exists            if (folderId != ID_AUTO_INCREMENT)                getFolderById(folderId);            // get the list of all visible appointments in the specified folder            List appointments = new ArrayList();            List /* UnderlyingData */ invData = DbMailItem.getAppointments(this, start, end, folderId);            for (Iterator iter = invData.iterator(); iter.hasNext(); ) {                Appointment appt = getAppointment((MailItem.UnderlyingData) iter.next());                if (folderId == appt.getFolderId() || (folderId == ID_AUTO_INCREMENT && appt.inMailbox()))                    if (appt.canAccess(ACL.RIGHT_READ))                        appointments.add(appt);            }            success = true;            return appointments;        } finally {            endTransaction(success);        }    }