Send/Cancel Meeting Request and Generate iCalendar

Overview

Send and cancel a meeting request (iCal/vCal event) and generate the iCal String so that it can be written to a file.

This version is for Appian 22.3 and above. Cloud customers on a lower version of Appian that want to install this plugin should open a support case. Self-managed customers can find the latest jar for Appian 22.2 and lower version in the appmarket download file.

Key Features & Functionality

Contains three Smart Services that can

  • Generate an iCalendar String so that it can be written to a file
  • Send a Meeting Request (iCal/vCal event)
    • Returns the meeting unique identifier (uid) so that it can be used later to cancel the meeting request if needed
  • Cancel a Meeting Request (iCal/vCal event)
    • Given a uid returned by a previous execution of "Send Meeting Request", it allows you to cancel the meeting request and have it removed from the guests' calendar

A sample Appian application is included with the download of this Plug-in.  Release notes are also provided as part of the download package.

Anonymous
  • Hello there,

    We are currently facing an issue with the Generate iCalendar Smart Service. When it is executed, we get an error saying "An error occurred in executing an Activity Class." We are running Appian on Cloud and use version 22.3

    Our Tomcat Log says the following:

    2022-09-02 12:51:37,729 [ThreadPoolTaskExecutor-9438] ERROR com.appiancorp.process.workpoller.WorkItemListener - The following exception occurred while attempting to complete work item [[WorkId: 11, EngineId: execution01, Request: UnattendedJavaActivityRequest:268436103 as christian.michael.ritter@pwc.com by christian.michael.ritter@pwc.com, ProcessId: 268440647, ProcessModelId: 2990, Response: null]] - Exception: 
    javax.resource.spi.work.WorkCompletedException: java.lang.NoClassDefFoundError: javax/mail/internet/InternetAddress
    	at org.springframework.jca.work.SimpleTaskWorkManager$DelegatingWorkAdapter.run(SimpleTaskWorkManager.java:247)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    	at java.lang.Thread.run(Thread.java:750)
    Caused by: java.lang.NoClassDefFoundError: javax/mail/internet/InternetAddress
    	at com.appiancorp.cs.ical.SendMeetingRequestActivity_v4.run(SendMeetingRequestActivity_v4.java:81)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.lambda$call$0(DefaultActivityExecutor.java:136)

    We also examined the following code snippet:

    public void run() throws SmartServiceException {
        // Create an InternetAddress bean for the FROM of the meeting request.
        InternetAddress from;
        try {
          from = new InternetAddress(fromEmailAddress, fromDisplayName);
        } catch (Exception e) {
          String message = fromEmailAddress + " doesn't have a valid email address: " +
            fromEmailAddress;
          throw new SmartServiceException(ErrorCode.GENERIC_RUNTIME_ERROR, message);
        }

    Is it possible that Appian didn't include one or more Java libraries for the new releases?

  • how can attach document when send request? 

  • it may occur because you are using sender or recipient email address is in text type and email address should be in email type.

    so you can wrap the email in the email wrap function.
    eg =toemailaddress("email-address")
  • Does it work with all versions of office / outlook?

  • v4.3.7 Release Notes
    • Fixed backwards compatibility

  • We used "Blackduck" tool for vulnerability test of the plugin. 

  • The vulnerability issues we have are mentioned below. Please check and let me know what can be done on this 

    1) SendCancelMeetingRequestandGenerateiCalendar-4.3.5 (maven)
    Issue: Multiple PHP remote file inclusion vulnerabilities in 2le.net Castor PHP Web Builder 1.1.1 allow remote attackers to execute arbitrary PHP code via the rootpath parameter in (1) lib/code.php, (2) lib/dbconnect.php, (3) lib/error.php, (4) lib/menu.php, and other unspecified files.  NOTE: the provenance of this information is unknown; the details are obtained from third party information.


    2) SendCancelMeetingRequestandGenerateiCalendar-4.3.5 (maven)
    Issue: The default configuration for the Xerces SAX Parser in Castor before 1.3.3 allows context-dependent attackers to conduct XML External Entity (XXE) attacks via a crafted XML document.

    waiting on your reply. 

  • I was not able to reproduce this issue with a simple test. Can you share the configurations you are using for the smart service? Do you have any custom configurations for sending mail from your Appian Cloud site?

  • This plugin should use the version of Log4J provided by the Appian environment where it is deployed. If you have not already, make sure to upgrade / apply the latest Appian hotfix to ensure any Log4J issues are patched.