/**
   * Erstellt anhand des übergebenen Appointment-Objekts einen iCalendar-Event.
   *
   * @param appointment Ein Rapla Appointment.
   * @return Ein iCalendar-Event mit den Daten des Appointments.
   */
  private VEvent createVEvent(
      Appointment appointment,
      boolean doExportAsMeeting,
      String exportAttendeesParticipationStatus) {

    PropertyList properties = new PropertyList();

    boolean isAllDayEvent = appointment.isWholeDaysSet();
    addDateStampToEvent(appointment, properties);
    addCreateDateToEvent(appointment, properties);
    addStartDateToEvent(appointment, properties, isAllDayEvent);
    addLastModifiedDateToEvent(appointment, properties);
    addEndDateToEvent(appointment, properties, isAllDayEvent);
    addEventNameToEvent(appointment, properties);
    addDescriptionToEvent(appointment, properties);
    addUidToEvent(appointment, properties);
    addLocationToEvent(appointment, properties);
    addCategories(appointment, properties);
    addOrganizer(appointment, properties, doExportAsMeeting);
    addAttendees(appointment, properties, doExportAsMeeting, exportAttendeesParticipationStatus);
    addRepeatings(appointment, properties);

    VEvent event = new VEvent(properties);

    return event;
  }