code: public Event getEvent(FutureAPIResponse response)
        throws ExecutionException, InterruptedException, IOException {
      int status = response.get().getStatus();
      String message = response.get().getMessage();
  
      if (status == HTTP_OK) {
        // handle DateTime separately
        GsonBuilder gsonBuilder = new GsonBuilder();
        gsonBuilder.registerTypeAdapter(DateTime.class, new DateTimeAdapter());
        Gson gson = gsonBuilder.create();
  
        return gson.fromJson(message, Event.class);
      } else {
        throw new IOException(message);
      }
    }
docs: Synchronize a previously sent asynchronous get item request.
  
  @param response an instance of {@link FutureAPIResponse} returned from {@link
  #getEventAsFuture}
  @throws ExecutionException indicates an error in the HTTP backend
  @throws InterruptedException indicates an interruption during the HTTP operation
  @throws IOException indicates an error from the API response