public boolean overlaps(Calendar startTime, Calendar endTime) {
        Calendar eventStart = getStartTime();
        Calendar eventEnd = getEndTime();
        if ( eventStart == null || eventEnd == null )
            return false;
        if ( isBetween(startTime, endTime) )
            return true;
        if ( startTime.getTimeInMillis() < eventEnd.getTimeInMillis() &&
             eventEnd.getTimeInMillis() <= endTime.getTimeInMillis() )
            return true;
        if ( eventStart.getTimeInMillis() <= startTime.getTimeInMillis() && 
        		eventEnd.getTimeInMillis() >= endTime.getTimeInMillis())
        	return true;
        return startTime.getTimeInMillis() <= eventStart.getTimeInMillis() &&
               eventStart.getTimeInMillis() < endTime.getTimeInMillis();
    }