List  tzsReferenced = new ArrayList();
    static ParseMimeMessage.InviteParserResult parseInviteForModify(Account account, Element inviteElem,             Invite oldInv, List /* Attendee */ attendeesToCancel) throws ServiceException     {        List /*<ICalTimeZone>*/ tzsReferenced = new ArrayList();                Invite mod = new Invite(Method.REQUEST, oldInv.getTimeZoneMap());        CalendarUtils.parseInviteElementCommon(account, inviteElem, mod, oldInv.getTimeZoneMap());                // use UID from old inv        String uid = oldInv.getUid();        mod.setUid(oldInv.getUid());                // DTSTAMP        mod.setDtStamp(new Date().getTime());              // SEQUENCE        mod.setSeqNo(oldInv.getSeqNo()+1);                if (oldInv.hasRecurId()) {            mod.setRecurId(oldInv.getRecurId());        }                // compare the new attendee list with the existing one...if attendees have been removed, then        // we need to send them individual cancelation messages        List /* Attendee */ newAts = mod.getAttendees();        List /* Attendee */ oldAts = oldInv.getAttendees();        for (Iterator iter = oldAts.iterator(); iter.hasNext();) {            Attendee cur = (Attendee)iter.next();            if (!listContains(newAts, cur)) {                attendeesToCancel.add(cur);            }        }                        // build the full calendar wrapper:         Calendar iCal = makeCalendar(Method.REQUEST);                for (Iterator iter = tzsReferenced.iterator(); iter.hasNext();) {            ICalTimeZone cur = (ICalTimeZone) iter.next();            VTimeZone vtz = cur.toVTimeZone();            iCal.getComponents().add(vtz);        }                iCal.getComponents().add(mod.toVEvent());                try {            iCal.validate(true);        } catch (ValidationException e) {             sLog.info("iCal Validation Exception in ModifyAppointmentInviteParser", e);            if (e.getCause() != null) {                sLog.info("\tcaused by "+e.getCause(), e.getCause());            }        }                String summaryStr = "";        if (mod.getName() != null) {            summaryStr = mod.getName();        }                        ParseMimeMessage.InviteParserResult toRet = new ParseMimeMessage.InviteParserResult();        toRet.mCal = iCal;        toRet.mUid = uid;        toRet.mSummary = summaryStr;                return toRet;    }