@RequestMapping(value = "/meetingAction", method = RequestMethod.GET)
 public String meetingAction(
     HttpServletRequest request,
     Model uiModel,
     @RequestParam(required = true) Long eventId,
     @RequestParam(required = true) String type,
     @RequestParam(required = false) Long seriesId,
     @RequestParam(required = false) Long occurrenceId,
     @RequestParam(required = false) String date,
     @RequestParam(required = false) String referer) {
   User user = (User) request.getSession().getAttribute(Constants.KME_USER_KEY);
   try {
     if (type != null) {
       if (type.equals("R")) {
         calendarEventOAuthService.removeMeeting(user.getUserId(), eventId);
       } else if (type.equals("K")) {
         calendarEventOAuthService.keepMeeting(user.getUserId(), eventId);
       } else {
         MeetingStatusChange meetingStatusChange = new MeetingStatusChange();
         meetingStatusChange.setEventId(eventId);
         meetingStatusChange.setStatus(type);
         calendarEventOAuthService.updateMeetingStatus(user.getUserId(), meetingStatusChange);
       }
     }
   } catch (PageLevelException pageLevelException) {
     uiModel.addAttribute("message", pageLevelException.getMessage());
     return "calendar/message";
   }
   if ("D".equals(type) || "R".equals(type) || "K".equals(type)) {
     return "redirect:/calendar/month";
   } else if (seriesId != null && date != null) {
     return "redirect:/calendar/invite?eventId="
         + eventId
         + "&seriesId="
         + seriesId
         + "&date="
         + date
         + (referer != null ? "&referer=" + referer : "");
   }
   return "redirect:/calendar/invite?eventId="
       + eventId
       + (occurrenceId != null ? "&occurrenceId=" + occurrenceId : "")
       + (date != null ? "&date=" + date : "")
       + (referer != null ? "&referer=" + referer : "");
 }