/**
  * get calendar by user setting (timezone, first day of week)
  *
  * @param calendarSetting
  * @return calendar object
  */
 public static Calendar getCalendarInstanceBySetting(CalendarSetting calendarSetting) {
   Calendar calendar = GregorianCalendar.getInstance();
   calendar.setLenient(false);
   calendar.setTimeZone(TimeZone.getTimeZone(calendarSetting.getTimeZone()));
   calendar.setFirstDayOfWeek(Integer.parseInt(calendarSetting.getWeekStartOn()));
   calendar.setMinimalDaysInFirstWeek(4);
   return calendar;
 }
 private TimeZone getUserTimeZone() {
   try {
     String username = ConversationState.getCurrent().getIdentity().getUserId();
     CalendarService calService =
         (CalendarService)
             PortalContainer.getInstance().getComponentInstanceOfType(CalendarService.class);
     CalendarSetting setting = calService.getCalendarSetting(username);
     return TimeZone.getTimeZone(setting.getTimeZone());
   } catch (Exception e) {
     if (LOG.isDebugEnabled()) LOG.error("Can not get time zone from user setting ", e);
     return null;
   }
 }
 private Calendar newPrivateCalendar() {
   Calendar calendar = new Calendar();
   calendar.setCalendarOwner(currentUser);
   calendar.setDataInit(true);
   calendar.setName(calRandomWords(5));
   calendar.setDescription(randomWords(20));
   calendar.setCalendarColor(getRandomColor());
   calendar.setEditPermission(new String[] {});
   calendar.setGroups(new String[] {});
   calendar.setViewPermission(new String[] {});
   calendar.setPrivateUrl(EMPTY);
   calendar.setPublicUrl(EMPTY);
   calendar.setPublic(false);
   calendar.setLocale(DEFAULT_LOCATION);
   calendar.setTimeZone(setting.getTimeZone());
   return calendar;
 }