I'm developing an Outlook add-in using Smart Alerts with the OnAppointmentSend event. The add-in is supposed to validate and process only appointments/meetings, but the loading message "Add-in is working on your request" appears when users send both appointments AND regular emails.
The OnAppointmentSend event in Outlook is getting triggered for regular emails as well, instead of only for calendar appointments. I’ve built a custom Outlook add-in that should run exclusively when an appointment is sent, but currently it also shows the message "<add-in-name> is working on your request" during normal email sends. This behavior should be restricted to appointment sends only .
If i validates from js side so untill it validates ,messgae shows on outlook
Expected Behavior
- ✅ Loading message should appear when sending appointments/meetings
- ❌ Loading message should NOT appear when sending regular emails
Current Behavior
- Loading message appears for both appointments and regular emails
- Event handler is being triggered for all send actions, not just appointments
My Configuration
Manifest:
<?xml version="1.0" encoding="UTF-8"?>
<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0"
xsi:type="MailApp">
<!-- Basic Info -->
<Id>12345678-9abc-def0-1234-56789abcdef0</Id>
<Version>1.0.0.1</Version>
<ProviderName>custom-addin</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="custom-addin-test" />
<Description DefaultValue="Enhanced meeting scheduling with SharePoint integration" />
<!-- App Icons -->
<IconUrl DefaultValue="server-url/assets/icon-32.png" />
<HighResolutionIconUrl DefaultValue="server-url/assets/icon-80.png" />
<!-- Support Page -->
<SupportUrl DefaultValue="server-url/support" />
<!-- Allowed Domains -->
<AppDomains>
<AppDomain>server-url</AppDomain>
</AppDomains>
<Hosts>
<Host Name="Mailbox" />
</Hosts>
<!-- Requirements -->
<Requirements>
<Sets>
<Set Name="Mailbox" MinVersion="1.8" />
</Sets>
</Requirements>
<!-- Form Settings -->
<FormSettings>
<Form xsi:type="ItemEdit">
<DesktopSettings>
<SourceLocation DefaultValue="server-url/taskpane.html" />
</DesktopSettings>
</Form>
</FormSettings>
<!-- Permissions -->
<Permissions>ReadWriteItem</Permissions>
<Rule xsi:type="RuleCollection" Mode="Or">
<Rule xsi:type="ItemIs" ItemType="Appointment" FormType="Edit" />
<Rule xsi:type="ItemIs" ItemType="Appointment" FormType="Read" />
</Rule>
<!-- Version Overrides -->
<VersionOverrides
xmlns="http://schemas.microsoft.com/office/mailappversionoverrides/1.1"
xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0"
xsi:type="VersionOverridesV1_1">
<Requirements>
<bt:Sets DefaultMinVersion="1.8">
<bt:Set Name="Mailbox" />
</bt:Sets>
</Requirements>
<Hosts>
<Host xsi:type="MailHost">
<DesktopFormFactor>
<FunctionFile resid="Commands.Url" />
<ExtensionPoint xsi:type="AppointmentOrganizerCommandSurface">
<OfficeTab id="TabDefault">
<Group id="msgReadGroup">
<Label resid="GroupLabel" />
<Control xsi:type="Button" id="msgReadOpenPaneButton">
<Label resid="TaskpaneButton.Label" />
<Supertip>
<Title resid="TaskpaneButton.Label" />
<Description resid="TaskpaneButton.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.16x16" />
<bt:Image size="32" resid="Icon.32x32" />
<bt:Image size="80" resid="Icon.80x80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Taskpane.Url" />
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
<ExtensionPoint xsi:type="LaunchEvent">
<LaunchEvents>
<LaunchEvent
Type="OnAppointmentSend"
FunctionName="onItemSendHandler"
SendMode="PromptUser" />
</LaunchEvents>
<SourceLocation resid="Commands.Url"/>
</ExtensionPoint>
</DesktopFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="Icon.16x16" DefaultValue="server-url/assets/icon-16.png"/>
<bt:Image id="Icon.32x32" DefaultValue="server-url/assets/icon-32.png"/>
<bt:Image id="Icon.80x80" DefaultValue="server-url/assets/icon-80.png"/>
</bt:Images>
<bt:Urls>
<bt:Url id="Commands.Url" DefaultValue="server-url/commands.html"/>
<bt:Url id="Taskpane.Url" DefaultValue="server-url/taskpane.html"/>
</bt:Urls>
<bt:ShortStrings>
<bt:String id="GroupLabel" DefaultValue="custom-addin"/>
<bt:String id="TaskpaneButton.Label" DefaultValue="Select SharePoint Site"/>
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="TaskpaneButton.Tooltip" DefaultValue="Open meeting configuration panel"/>
</bt:LongStrings>
</Resources>
</VersionOverrides>
</OfficeApp>