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
  • Are there any log4j vulnerability issues with this plug in going on? When a vulnerability scan has been done, this plug in did not pass the test.

  • Hi Tom,

    we are using Appian Cloud 21.3 and after updating plugin to v4.3.5 send iCalendar via email stopped working.

    This is an error log example:

    2022-01-21 17:49:52,251 [Appian Work Item - 4740 - execution01 : UnattendedJavaActivityRequest] ERROR com.appiancorp.ical.Mail - Could not send mail via eu-west-3.smtp-gateway.appian-customer.com:587 to 
    com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0 Must issue a STARTTLS command first
    
    	at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2108)
    	at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1609)
    	at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1117)
    	at com.appiancorp.ical.Mail.sendMessage(Mail.java:124)
    	at com.appiancorp.ical.SendMeetingRequestActivity_v4.run(SendMeetingRequestActivity_v4.java:117)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.lambda$call$0(DefaultActivityExecutor.java:131)
    	at com.appiancorp.plugins.PluginUsageLogger.runWithPluginInformation(PluginUsageLogger.java:52)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.call(DefaultActivityExecutor.java:131)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.call(DefaultActivityExecutor.java:125)
    	at com.appiancorp.common.ContextClassLoaderSwitcher.runInContext(ContextClassLoaderSwitcher.java:27)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor.execute(DefaultActivityExecutor.java:125)
    	at com.appiancorp.process.engine.UnattendedJavaActivityRequest.execute(UnattendedJavaActivityRequest.java:88)
    	at com.appiancorp.process.engine.UnattendedJavaActivityRequestResponseCreator.getJavaActivityResultResponse(UnattendedJavaActivityRequestResponseCreator.java:21)
    	at com.appiancorp.process.engine.UnattendedJavaActivityRequest.getJavaActivityResultResponse(UnattendedJavaActivityRequest.java:67)
    	at com.appiancorp.process.engine.UnattendedJavaActivityRequest.execute0(UnattendedJavaActivityRequest.java:55)
    	at com.appiancorp.common.persistence.data.AppianDataUserContextProvider.executeWithConsistentDataReads(AppianDataUserContextProvider.java:116)
    	at com.appiancorp.process.engine.ProcessContinuationRequest.executeOuter(ProcessContinuationRequest.java:68)
    	at com.appiancorp.process.engine.ContinuationRequest.execute(ContinuationRequest.java:123)
    	at com.appiancorp.process.workpoller.UnattendedRequestHandlerBean.onMessage(UnattendedRequestHandlerBean.java:36)
    	at com.appiancorp.process.workpoller.WorkItem.run(WorkItem.java:94)
    	at org.springframework.jca.work.SimpleTaskWorkManager$DelegatingWorkAdapter.run(SimpleTaskWorkManager.java:239)
    	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:748)

    Can you help me?

    KR.

    Simone.

  • v4.3.5 Release Notes
    Updated the version of the Apache Commons IO library used in the plugin
  • I believe the email should work without extra configurations on an Appian Cloud site. You could open a support ticket in order to confirm that the email is being sent correctly. The custom plugin itself is not inside the scope of Appian Support but they will be able to confirm if the email is leaving the Appian Cloud infrastructure.

  • Also can you please help me with which logs i need to check what is happening i did check the tomcatstd out but couldnt find any.

  • Thanks for the reply i did check the junk and Spam Folder, unfortunately it is not there in those folders, also we are working on cloud. Do i need to check anything with the team or is the cloud should be sending the email. sorry for troubling you as we are in need of this requirement so wanted to check the feasibilities.

  • Hi , if the email is not being sent then I recommend to confirm your Appian environment is configured correctly to send emails. If emails are being sent but you do not receive the invite, you could also check your Junk/spam folder.

  • Hi this is not currently supported by the plug-in.

  • Hi Tom,

    The meeting UId Is getting generated by there is no email nor an invite send to the outlook,

    Can you please let us know what needs to be done for this

  • Hi,

    I am facing an issue like , i am able to execute the node in the process model but i am not able to see any invite to my mail box. how this can be achieved.