Outlook Web Add-in not activating in Calendar edit mode - outlook

I'm trying to write an Outlook web add-in to ask for additional information when creating a new appointment. At this point I'm able to open my add-in's pane when reading an appointment, but when I try to create or edit an appointment, this pane isn't visible. What do I have to do to have this be displayed when creating or edit an appointment? I tried different OfficeApp types and different types of ExtensionPoints.
My manifest looks like:
<?xml version="1.0" encoding="UTF-8"?>
<!--Created:...-->
<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"
xmlns:mailappor="http://schemas.microsoft.com/office/mailappversionoverrides/1.0"
xsi:type="MailApp">
<!-- Begin Basic Settings: Add-in metadata, used for all versions of Office unless override provided. -->
<!-- IMPORTANT! Id must be unique for your add-in, if you reuse this manifest ensure that you change this id to a new GUID. -->
<Id>...</Id>
<!--Version. Updates from the store only get triggered if there is a version change. -->
<Version>1.0.0.0</Version>
<ProviderName>My Company</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<!-- The display name of your add-in. Used on the store and various places of the Office UI such as the add-ins dialog. -->
<DisplayName DefaultValue="My Add-In" />
<Description DefaultValue="My First Outlook Web Add-In" />
<!-- Domains that will be allowed when navigating. For example, if you use ShowTaskpane and then have an href link, navigation will only be allowed if the domain is on this list. -->
<AppDomains>
<AppDomain>https://login.microsoftonline.com</AppDomain>
<AppDomain>https://login.live.com</AppDomain>
</AppDomains>
<!--End Basic Settings. -->
<Hosts>
<Host Name="Mailbox" />
</Hosts>
<Requirements>
<Sets>
<Set Name="Mailbox" MinVersion="1.1" />
</Sets>
</Requirements>
<FormSettings>
<Form xsi:type="ItemRead">
<DesktopSettings>
<SourceLocation DefaultValue="~remoteAppUrl/MeetingRead.html" />
<RequestedHeight>250</RequestedHeight>
</DesktopSettings>
</Form>
</FormSettings>
<Permissions>ReadWriteItem</Permissions>
<Rule xsi:type="RuleCollection" Mode="Or">
<Rule xsi:type="ItemIs" ItemType="Appointment" FormType="ReadOrEdit" />
</Rule>
<DisableEntityHighlighting>false</DisableEntityHighlighting>
<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_0">
<Requirements>
<bt:Sets DefaultMinVersion="1.3">
<bt:Set Name="Mailbox" />
</bt:Sets>
</Requirements>
<Hosts>
<Host xsi:type="MailHost">
<DesktopFormFactor>
<!-- Location of the Functions that UI-less buttons can trigger (ExecuteFunction Actions). -->
<FunctionFile resid="functionFile" />
<!-- Message Read -->
<ExtensionPoint xsi:type="AppointmentOrganizerCommandSurface">
<!-- Use the default tab of the ExtensionPoint or create your own with <CustomTab id="myTab"> -->
<OfficeTab id="TabDefault">
<!-- Up to 6 Groups added per Tab -->
<Group id="group1">
<Label resid="groupLabel" />
<!-- Launch the add-in : task pane button -->
<Control xsi:type="Button" id="msgReadOpenPaneButton">
<Label resid="paneShowLabel" />
<Supertip>
<Title resid="paneShowLabel" />
<Description resid="paneShowTooltipLong" />
</Supertip>
<Icon>
<bt:Image size="16" resid="icon16" />
<bt:Image size="32" resid="icon32" />
<bt:Image size="80" resid="icon80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="messageReadTaskPaneUrl" />
</Action>
</Control>
<!-- Go to http://aka.ms/ButtonCommands to learn how to add more Controls: ExecuteFunction and Menu -->
</Group>
</OfficeTab>
</ExtensionPoint>
<!-- Go to http://aka.ms/ExtensionPointsCommands to learn how to add more Extension Points: MessageRead, AppointmentOrganizer, AppointmentAttendee -->
</DesktopFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="icon16" DefaultValue="~remoteAppUrl/Images/icon16.png" />
<bt:Image id="icon32" DefaultValue="~remoteAppUrl/Images/icon32.png" />
<bt:Image id="icon80" DefaultValue="~remoteAppUrl/Images/icon80.png" />
</bt:Images>
<bt:Urls>
<bt:Url id="functionFile" DefaultValue="~remoteAppUrl/Functions/FunctionFile.html" />
<bt:Url id="messageReadTaskPaneUrl" DefaultValue="~remoteAppUrl/MessageRead.html" />
</bt:Urls>
<bt:ShortStrings>
<bt:String id="groupLabel" DefaultValue="Group label" />
<bt:String id="customTabLabel" DefaultValue="Tab label" />
<bt:String id="paneShowLabel" DefaultValue="Pane label" />
<bt:String id="paneShowTooltipShort" DefaultValue="Open pane." />
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="paneShowTooltipLong" DefaultValue="Look for any options in this element." />
<bt:String id="paneReadSuperTipDescription"
DefaultValue="Opens a pane displaying all available properties. This is an example of a button that opens a task pane." />
</bt:LongStrings>
</Resources>
</VersionOverrides>
</OfficeApp>
If you need additional files or informations, just ask.
Max

It looks like you're missing a Form element for type ItemEdit. Try adding that inside FormSetting, similar to this:
<FormSetting>
...
<Form xsi:type="ItemEdit">
<DesktopSettings>
<SourceLocation DefaultValue="your url" />
<RequestedHeight>250</RequestedHeight>
</DesktopSettings>
</Form>
</FormSetting>

If you are under AppointmentOrganizerCommandSurface, your button should be added to the ribbon on all appointments that YOU are the organizer. Adding a button under: AppointmentAttendeeCommandSurface Adds a button when you are NOT the organizer (you would probably be an Attendee in that case).
Are you not seeing your button show up in the Ribbon? What Version of Outlook are you on? (or are you trying to do this in OWA?)
There is currently no way to open a pane by default when an item opens. This is a highly requested feature though.

Related

Office Regex not underlining anything

I'm building an outlook addin (running it locally, not through web) that should detect certain words when a user is composing messages. I started with the basic example here. Then modified the manifest to instead work on "compose" based on the differences in this tutorial.
From what I've read, all I have to do to have it underline a regex match is to add a rule to detect the thing I want to detect in the manifest. Once detected, the user should be able to click on it and I can have it do anything I want, but I can't even get it to detect the regex. The keyword I'm looking for is based on the example ticker symbol, but I simplified it to just look for "NYSE"
In the manifext.xml below, I have code to add a taskbar and a button but I haven't coded them to do anything, they just appear in the ribbon when I compose a message. I did this just so I could have a visual indication that something was working. These do appear, but still the regex is not underlining the keyword "NYSE". What am I missing here?
Here is my manifest.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<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" xmlns:mailappor="http://schemas.microsoft.com/office/mailappversionoverrides/1.0" xsi:type="MailApp">
<Id>123456789123456789123456789</Id>
<Version>1.0.0.0</Version>
<ProviderName>Me</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="composeTest"/>
<Description DefaultValue="My Compose Add-in based on the template"/>
<IconUrl DefaultValue="https://localhost:3000/assets/icon-64.png"/>
<HighResolutionIconUrl DefaultValue="https://localhost:3000/assets/icon-128.png"/>
<SupportUrl DefaultValue="https://www.contoso.com/help"/>
<AppDomains>
<AppDomain>https://www.contoso.com</AppDomain>
</AppDomains>
<Hosts>
<Host Name="Mailbox"/>
</Hosts>
<Requirements>
<Sets>
<Set Name="Mailbox" MinVersion="1.1"/>
</Sets>
</Requirements>
<FormSettings>
<Form xsi:type="ItemRead">
<DesktopSettings>
<SourceLocation DefaultValue="https://localhost:3000/taskpane.html"/>
<RequestedHeight>250</RequestedHeight>
</DesktopSettings>
</Form>
</FormSettings>
<Permissions>ReadWriteItem</Permissions>
<Rule xsi:type="RuleCollection" Mode="And">
<Rule xsi:type="ItemIs" ItemType="Message" FormType="Compose"/>
<Rule xsi:type="ItemHasRegularExpressionMatch" PropertyName="BodyAsPlaintext" RegExName="TickerSymbols" RegExValue="NYSE\b"/>
</Rule>
<DisableEntityHighlighting>false</DisableEntityHighlighting>
<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_0">
<Requirements>
<bt:Sets DefaultMinVersion="1.3">
<bt:Set Name="Mailbox"/>
</bt:Sets>
</Requirements>
<Hosts>
<Host xsi:type="MailHost">
<DesktopFormFactor>
<FunctionFile resid="Commands.Url"/>
<!-- This is a COMPOSE addin, so we want the button(s) to appear when the compose windoe(s) are opened -->
<ExtensionPoint xsi:type="MessageComposeCommandSurface">
<OfficeTab id="TabDefault">
<Group id="msgComposeGroup">
<Label resid="GroupLabel"/>
!-- First button opens task pane (is this needed in my app???) -->
<Control xsi:type="Button" id="msgComposeOpenPaneButton">
<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>
<!-- This button calls a function named "Action" as described below -->
<Control xsi:type="Button" id="ActionButton">
<Label resid="ActionButton.Label"/>
<Supertip>
<Title resid="ActionButton.Label"/>
<Description resid="ActionButton.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="ExecuteFunction">
<!-- "action" is the name of the function to run when this second button is clicked -->
<FunctionName>action</FunctionName>
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
</DesktopFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="Icon.16x16" DefaultValue="https://localhost:3000/assets/icon-16.png"/>
<bt:Image id="Icon.32x32" DefaultValue="https://localhost:3000/assets/icon-32.png"/>
<bt:Image id="Icon.80x80" DefaultValue="https://localhost:3000/assets/icon-80.png"/>
</bt:Images>
<bt:Urls>
<bt:Url id="Commands.Url" DefaultValue="https://localhost:3000/commands.html"/>
<bt:Url id="Taskpane.Url" DefaultValue="https://localhost:3000/taskpane.html"/>
</bt:Urls>
<bt:ShortStrings>
<bt:String id="GroupLabel" DefaultValue="Contoso Add-in"/>
<bt:String id="TaskpaneButton.Label" DefaultValue="Show Taskpane"/>
<bt:String id="ActionButton.Label" DefaultValue="Perform an action"/>
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="TaskpaneButton.Tooltip" DefaultValue="Opens a pane displaying all available properties."/>
<bt:String id="ActionButton.Tooltip" DefaultValue="Perform an action when clicked."/>
</bt:LongStrings>
</Resources>
</VersionOverrides>
</OfficeApp>
ItemHasRegularExpressionMatch is only available on the Read command surface.
Please refer to the documentation here : https://learn.microsoft.com/en-us/office/dev/add-ins/outlook/activation-rules#specify-activation-rules-in-a-manifest
should detect certain words when a user is composing messages
You can specify regular expression rules to have a contextual add-in activated when a match is found in specific fields of the message. Contextual add-ins activate only in read mode. Outlook doesn't activate contextual add-ins when the user is composing an item. There are also other scenarios where Outlook doesn't activate add-ins, for example, digitally signed items. For more information, see Activation rules for Outlook add-ins.

Outlook add-in Windows : Button not showing up in the ribbon

I'm developping an add-in for outlook windows and i'm having trouble setting up the manifest so that the button shows up on the ribbon in the appointment interface.
As of right now, the button that shows up on the ribbon is the button "Office Add-ins" that opens up a window that allow users to select the Add-in i'm developping.
Here is a picture of the button that shows up instead of my add-in icon :
Office Add-ins button showing up
Here is the manifest of my add-in (anonymised)
<?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"
xmlns:mailappor="http://schemas.microsoft.com/office/mailappversionoverrides/1.0" xsi:type="MailApp">
<Id>04049d6c-3286-46c1-be8a-965a2a8ee58f</Id>
<Version>1.0.0.0</Version>
<ProviderName>X</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="Room Finder"/>
<Description DefaultValue="Find a free room for your meeting."/>
<IconUrl DefaultValue="https://someurl.com/assets/logo-64.png"/>
<HighResolutionIconUrl DefaultValue="https://someurl.com/assets/logo-128.png"/>
<SupportUrl DefaultValue="https://someurl.com"/>
<AppDomains>
<AppDomain>https://someurl.com</AppDomain>
</AppDomains>
<Hosts>
<Host Name="Mailbox"/>
</Hosts>
<Requirements>
<Sets>
<Set Name="Mailbox" MinVersion="1.1"/>
</Sets>
</Requirements>
<FormSettings>
<Form xsi:type="ItemEdit">
<DesktopSettings>
<SourceLocation DefaultValue="https://someurl.com/webaddin/taskpane.html"/>
</DesktopSettings>
</Form>
</FormSettings>
<Permissions>ReadWriteMailbox</Permissions>
<Rule xsi:type="RuleCollection" Mode="Or">
<Rule xsi:type="ItemIs" ItemType="Appointment" FormType="Edit"/>
<Rule xsi:type="ItemIs" ItemType="Appointment" FormType="Read" />
<Rule xsi:type="ItemHasKnownEntity" EntityType="MeetingSuggestion" />
</Rule>
<DisableEntityHighlighting>false</DisableEntityHighlighting>
<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_0">
<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides/1.1" xsi:type="VersionOverridesV1_1">
<Description resid="residAppDesc" />
<Requirements>
<bt:Sets DefaultMinVersion="1.5">
<bt:Set Name="Mailbox"/>
</bt:Sets>
</Requirements>
<Hosts>
<Host xsi:type="MailHost">
<DesktopFormFactor>
<ExtensionPoint xsi:type="AppointmentOrganizerCommandSurface">
<OfficeTab id="TabDefault">
<Group id="appOrgGroup">
<Label resid="GroupLabel"/>
<Control xsi:type="Button" id="appOrgTaskPaneButton">
<Label resid="appOrgTaskPaneButton.Label"/>
<Supertip>
<Title resid="appOrgTaskPaneButton.Label"/>
<Description resid="appOrgTaskPaneButton.Tooltip"/>
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.16x16"/>
<bt:Image size="32" resid="Icon.32x32"/>
<bt:Image size="80" resid="Icon.80x80"/>
<bt:Image size="128" resid="Icon.128x128"/>
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="appOrgTaskPaneButton.Url"/>
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
</DesktopFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="Icon.16x16" DefaultValue="https://someurl.com/webaddin/assets/logo-16.png"/>
<bt:Image id="Icon.32x32" DefaultValue="https://someurl.com/webaddin/assets/logo-32.png"/>
<bt:Image id="Icon.64x64" DefaultValue="https://someurl.com/webaddin/assets/logo-64.png"/>
<bt:Image id="Icon.80x80" DefaultValue="https://someurl.com/webaddin/assets/logo-80.png"/>
<bt:Image id="Icon.128x128" DefaultValue="https://someurl.com/webaddin/assets/logo-128.png"/>
</bt:Images>
<bt:Urls>
<!-- Separate page for appointments-->
<bt:Url id="appOrgTaskPaneButton.Url" DefaultValue="https://someurl.com/webaddin/taskpane.html"/>
</bt:Urls>
<bt:ShortStrings>
<bt:String id="GroupLabel" DefaultValue="My company"/>
<bt:String id="appOrgTaskPaneButton.Label" DefaultValue="Find Meeting Room"/>
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="appOrgTaskPaneButton.Tooltip" DefaultValue="Find an available room for this meeting based on your building and floor selection"/>
<bt:String id="residAppDesc" DefaultValue="My company"></bt:String>
</bt:LongStrings>
</Resources>
</VersionOverrides>
</VersionOverrides>
</OfficeApp>
Is there anything wrong with my manifest.xml ? I tried to deviate as less as i could from examples from microsoft teams on Github repos
Edit : It seems that this issue does not happen on outlook 2021
Environment setup : Microsoft Outlook 2016 (16.0.5182.1000) Exchange 2016 (build version 15.1.2375.7) on-premise
In the manifest file a built-in tab was specified:
<OfficeTab id="TabDefault">
Most probably there is no tab on the ribbon with such ID for appointments.
For a custom tab you need to use the following element instead:
<CustomTab id="Contoso Tab">
The OfficeTab is used for built-in ribbon tabs in the following way:
<OfficeTab id="TabData">
If you use the CustomTab element, you can't use the OfficeTab element.
You may check the Find the IDs of controls and control groups section in MSDN if you need to find the built-in tab ID.

outlook add-ins on safari and chrome on mobiles

Given that outlook for iOS and android only supports "MessageReadCommandSurface" I thought I'd investigate how my add-in looks on safari and chrome running on a mobile. On all other platforms I can see'Send to OneNote' as well as my own app but on mobile i only get 'My Templates'. My add-in doesn't appear. Am i doing something wrong?
<?xml version="1.0" encoding="UTF-8"?>
<!--Created:ce44715c-8c4e-446b-879c-ea9ebe0f09c8-->
<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"
xmlns:mailappor="http://schemas.microsoft.com/office/mailappversionoverrides/1.0"
xsi:type="MailApp">
<!-- Begin Basic Settings: Add-in metadata, used for all versions of Office unless override provided. -->
<!-- IMPORTANT! Id must be unique for your add-in, if you reuse this manifest ensure that you change this id to a new GUID. -->
<Id>23c97452-1ba9-4e87-b34d-9e99d92013d6</Id>
<!--Version. Updates from the store only get triggered if there is a version change. -->
<Version>1.0.0.0</Version>
<ProviderName>"Timewatch"</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<!-- The display name of your add-in. Used on the store and various places of the Office UI such as the add-ins dialog. -->
<DisplayName DefaultValue="My Office Add-in" />
<Description DefaultValue="My First Outlook add-in"/>
<IconUrl DefaultValue="~remoteAppUrl/Images/icon64.png"/>
<!--<IconUrl DefaultValue="https://localhost/Images/icon64.png"/>-->
<SupportUrl DefaultValue="http://www.contoso.com" />
<!-- Domains that will be allowed when navigating. For example, if you use ShowTaskpane and then have an href link, navigation will only be allowed if the domain is on this list. -->
<AppDomains>
<AppDomain>AppDomain1</AppDomain>
<AppDomain>AppDomain2</AppDomain>
<AppDomain>AppDomain3</AppDomain>
</AppDomains>
<!--End Basic Settings. -->
<Hosts>
<Host Name="Mailbox" />
</Hosts>
<Requirements>
<Sets>
<Set Name="Mailbox" MinVersion="1.1" />
</Sets>
</Requirements>
<FormSettings>
<Form xsi:type="ItemRead">
<DesktopSettings>
<SourceLocation DefaultValue="~remoteAppUrl/MessageRead.html"/>
<!--<SourceLocation DefaultValue="https://localhost//MessageRead.html"/>-->
<RequestedHeight>250</RequestedHeight>
</DesktopSettings>
</Form>
</FormSettings>
<Permissions>ReadWriteItem</Permissions>
<Rule xsi:type="RuleCollection" Mode="Or">
<Rule xsi:type="ItemIs" ItemType="Message" FormType="Read" />
</Rule>
<DisableEntityHighlighting>false</DisableEntityHighlighting>
<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_0">
<Requirements>
<bt:Sets DefaultMinVersion="1.3">
<bt:Set Name="Mailbox" />
</bt:Sets>
</Requirements>
<Hosts>
<Host xsi:type="MailHost">
<DesktopFormFactor>
<!-- Location of the Functions that UI-less buttons can trigger (ExecuteFunction Actions). -->
<FunctionFile resid="functionFile" />
<!-- Message Read -->
<ExtensionPoint xsi:type="MessageReadCommandSurface">
<!-- Use the default tab of the ExtensionPoint or create your own with <CustomTab id="myTab"> -->
<OfficeTab id="TabDefault">
<!-- Up to 6 Groups added per Tab -->
<Group id="msgReadGroup">
<Label resid="groupLabel" />
<!-- Launch the add-in : task pane button -->
<Control xsi:type="Button" id="msgReadOpenPaneButton">
<Label resid="paneReadButtonLabel" />
<Supertip>
<Title resid="paneReadSuperTipTitle" />
<Description resid="paneReadSuperTipDescription" />
</Supertip>
<Icon>
<bt:Image size="16" resid="icon16" />
<bt:Image size="32" resid="icon32" />
<bt:Image size="80" resid="icon80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="messageReadTaskPaneUrl" />
</Action>
</Control>
<!-- Go to http://aka.ms/ButtonCommands to learn how to add more Controls: ExecuteFunction and Menu -->
</Group>
</OfficeTab>
</ExtensionPoint>
<!-- Go to http://aka.ms/ExtensionPointsCommands to learn how to add more Extension Points: MessageRead, AppointmentOrganizer, AppointmentAttendee -->
</DesktopFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="icon16" DefaultValue="~remoteAppUrl/Images/icon16.png"/>
<bt:Image id="icon32" DefaultValue="~remoteAppUrl/Images/icon32.png"/>
<bt:Image id="icon80" DefaultValue="~remoteAppUrl/Images/icon80.png"/>
<!--<bt:Image id="icon16" DefaultValue="https://localhost//Images/icon16.png"/>
<bt:Image id="icon32" DefaultValue="https://localhost//Images/icon32.png"/>
<bt:Image id="icon80" DefaultValue="https://localhost//Images/icon80.png"/>-->
</bt:Images>
<bt:Urls>
<bt:Url id="functionFile" DefaultValue="~remoteAppUrl/Functions/FunctionFile.html"/>
<bt:Url id="messageReadTaskPaneUrl" DefaultValue="~remoteAppUrl/MessageRead.html"/>
<!--<bt:Url id="functionFile" DefaultValue="https://localhost//Functions/FunctionFile.html"/>
<bt:Url id="messageReadTaskPaneUrl" DefaultValue="https://localhost//MessageRead.html"/>-->
</bt:Urls>
<bt:ShortStrings>
<bt:String id="groupLabel" DefaultValue="My Add-in Group"/>
<bt:String id="customTabLabel" DefaultValue="My Add-in Tab"/>
<bt:String id="paneReadButtonLabel" DefaultValue="Display all properties"/>
<bt:String id="paneReadSuperTipTitle" DefaultValue="Get all properties"/>
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="paneReadSuperTipDescription" DefaultValue="Opens a pane displaying all available properties. This is an example of a button that opens a task pane."/>
</bt:LongStrings>
</Resources>
<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides/1.1" xsi:type="VersionOverridesV1_1">
<Requirements>
<bt:Sets DefaultMinVersion="1.5">
<bt:Set Name="Mailbox" />
</bt:Sets>
</Requirements>
<Hosts>
<Host xsi:type="MailHost">
<DesktopFormFactor>
<!-- Location of the Functions that UI-less buttons can trigger (ExecuteFunction Actions). -->
<FunctionFile resid="functionFile" />
<!-- Message Read -->
<ExtensionPoint xsi:type="MessageReadCommandSurface">
<!-- Use the default tab of the ExtensionPoint or create your own with <CustomTab id="myTab"> -->
<OfficeTab id="TabDefault">
<!-- Up to 6 Groups added per Tab -->
<Group id="msgReadGroup">
<Label resid="groupLabel" />
<!-- Launch the add-in : task pane button -->
<Control xsi:type="Button" id="msgReadOpenPaneButton">
<Label resid="paneReadButtonLabel" />
<Supertip>
<Title resid="paneReadSuperTipTitle" />
<Description resid="paneReadSuperTipDescription" />
</Supertip>
<Icon>
<bt:Image size="16" resid="icon16" />
<bt:Image size="32" resid="icon32" />
<bt:Image size="80" resid="icon80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="messageReadTaskPaneUrl" />
<SupportsPinning>true</SupportsPinning>
</Action>
</Control>
<!-- Go to http://aka.ms/ButtonCommands to learn how to add more Controls: ExecuteFunction and Menu -->
</Group>
</OfficeTab>
</ExtensionPoint>
<!-- Go to http://aka.ms/ExtensionPointsCommands to learn how to add more Extension Points: MessageRead, AppointmentOrganizer, AppointmentAttendee -->
</DesktopFormFactor>
<MobileFormFactor>
<FunctionFile resid="residUILessFunctionFileUrl" />
<ExtensionPoint xsi:type="MobileMessageReadCommandSurface">
<Group id="mobileMsgRead">
<Label resid="GroupOT" />
<Control xsi:type="MobileButton" id="TaskPaneBtn">
<Label resid="ButtonOT" />
<Icon xsi:type="bt:MobileIconList">
<bt:Image size="25" scale="1" resid="icon25" />
<bt:Image size="25" scale="2" resid="icon25" />
<bt:Image size="25" scale="3" resid="icon25" />
<bt:Image size="32" scale="1" resid="icon32" />
<bt:Image size="32" scale="2" resid="icon32" />
<bt:Image size="32" scale="3" resid="icon32" />
<bt:Image size="48" scale="1" resid="icon48" />
<bt:Image size="48" scale="2" resid="icon48" />
<bt:Image size="48" scale="3" resid="icon48" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="messageReadTaskPaneUrl" />
</Action>
</Control>
</Group>
</ExtensionPoint>
</MobileFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="icon16" DefaultValue="~remoteAppUrl/Images/icon16.png"/>
<bt:Image id="icon25" DefaultValue="~remoteAppUrl/Images/icon25.png"/>
<bt:Image id="icon32" DefaultValue="~remoteAppUrl/Images/icon32.png"/>
<bt:Image id="icon48" DefaultValue="~remoteAppUrl/Images/icon48.png"/>
<bt:Image id="icon80" DefaultValue="~remoteAppUrl/Images/icon80.png"/>
<!--<bt:Image id="icon16" DefaultValue="https://localhost//Images/icon16.png"/>
<bt:Image id="icon32" DefaultValue="https://localhost//Images/icon32.png"/>
<bt:Image id="icon80" DefaultValue="https://localhost//Images/icon80.png"/>-->
</bt:Images>
<bt:Urls>
<bt:Url id="functionFile" DefaultValue="~remoteAppUrl/Functions/FunctionFile.html"/>
<bt:Url id="messageReadTaskPaneUrl" DefaultValue="~remoteAppUrl/MessageRead.html"/>
<!--<bt:Url id="functionFile" DefaultValue="https://localhost//Functions/FunctionFile.html"/>
<bt:Url id="messageReadTaskPaneUrl" DefaultValue="https://localhost//MessageRead.html"/>-->
</bt:Urls>
<bt:ShortStrings>
<bt:String id="GroupOT" DefaultValue="OutlookTime®"/>
<bt:String id="ButtonOT" DefaultValue="Outlook Timesheet"/>
<bt:String id="ButtonOTTipTitle" DefaultValue="Outlook Timesheet"/>
<bt:String id="groupLabel" DefaultValue="My Add-in Group"/>
<bt:String id="customTabLabel" DefaultValue="My Add-in Tab"/>
<bt:String id="paneReadButtonLabel" DefaultValue="Display all properties"/>
<bt:String id="paneReadSuperTipTitle" DefaultValue="Get all properties"/>
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="paneReadSuperTipDescription" DefaultValue="Opens a pane displaying all available properties. This is an example of a button that opens a task pane."/>
</bt:LongStrings>
</Resources>
</VersionOverrides>
</VersionOverrides>
</OfficeApp>
Please add PhoneSettings element in your manifest for that experience.

Outlook add - in is greyed out on outlook 2013 Desktop for some users

I am having this issue with outlook add-in. So the add-in is published inside company by IT, and everybody sees it on OWA and it is functioning the way it supposed to.
Now for some users when they open Outlook 2013 Desktop it is greyed out like this:
And when I go to manage add-in on owa this is what I see which seems alright:
I tried to disable other add-ins to see if those are causing conflicts and that did not work. Here is the manifest file: I deleted some lines that are company related and modified url's but the rest is the same.
<FormSettings>
<!--
<Form xsi:type="ItemRead">
<DesktopSettings>
<SourceLocation DefaultValue="~remoteAppUrl/AppRead/Home/Home.html"/>
<RequestedHeight>250</RequestedHeight>
</DesktopSettings>
</Form>
-->
<Form xsi:type="ItemEdit">
<DesktopSettings>
<SourceLocation DefaultValue="~remoteAppUrl/MailForms/AppCompose/1.0.0.3/Home/Home.html"/>
</DesktopSettings>
</Form>
</FormSettings>
<Permissions>ReadWriteItem</Permissions>
<Rule xsi:type="RuleCollection" Mode="Or">
<Rule xsi:type="ItemIs" ItemType="Message" FormType="Edit" />
<Rule xsi:type="ItemIs" ItemType="Appointment" FormType="Edit" />
<!--
<Rule xsi:type="ItemIs" ItemType="Message" FormType="Read" />
<Rule xsi:type="ItemIs" ItemType="Appointment" FormType="Read" />
-->
</Rule>
<DisableEntityHighlighting>false</DisableEntityHighlighting>
<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_0">
<Requirements>
<bt:Sets DefaultMinVersion="1.4">
<bt:Set Name="Mailbox" />
</bt:Sets>
</Requirements>
<DesktopFormFactor>
<!-- Location of the Functions that UI-less buttons can trigger (ExecuteFunction Actions). -->
<FunctionFile resid="functionFile" />
<!-- Message Read -->
<!--<ExtensionPoint xsi:type="MessageReadCommandSurface">
--><!-- Use the default tab of the ExtensionPoint or create your own with <CustomTab id="myTab"> --><!--
<OfficeTab id="TabDefault">
--><!-- Up to 6 Groups added per Tab --><!--
<Group id="msgReadGroup">
<Label resid="groupLabel" />
--><!-- Launch the add-in : task pane button --><!--
<Control xsi:type="Button" id="msgReadOpenPaneButton">
<Label resid="paneReadButtonLabel" />
<Supertip>
<Title resid="paneReadSuperTipTitle" />
<Description resid="paneReadSuperTipDescription" />
</Supertip>
<Icon>
<bt:Image size="16" resid="icon16" />
<bt:Image size="32" resid="icon32" />
<bt:Image size="80" resid="icon80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="messageReadTaskPaneUrl" />
</Action>
</Control>
--><!-- Go to http://aka.ms/ButtonCommands to learn how to add more Controls: ExecuteFunction and Menu --><!--
</Group>
</OfficeTab>
</ExtensionPoint>-->
<!-- Message Compose -->
<ExtensionPoint xsi:type="MessageComposeCommandSurface">
<!-- Use the default tab of the ExtensionPoint or create your own with <CustomTab id="myTab"> -->
<OfficeTab id="TabDefault">
<!-- Up to 6 Groups added per Tab -->
<Group id="msgReadGroup">
<Label resid="groupLabel" />
<!-- Launch the add-in : task pane button -->
<Control xsi:type="Button" id="msgReadOpenPaneButton">
<Label resid="paneReadButtonLabel" />
<Supertip>
<Title resid="paneReadSuperTipTitle" />
<Description resid="paneReadSuperTipDescription" />
</Supertip>
<Icon>
<bt:Image size="16" resid="icon16" />
<bt:Image size="32" resid="icon32" />
<bt:Image size="80" resid="icon80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="messageComposeTaskPaneUrl" />
</Action>
</Control>
<!-- Go to http://aka.ms/ButtonCommands to learn how to add more Controls: ExecuteFunction and Menu -->
</Group>
</OfficeTab>
</ExtensionPoint>
<!-- Go to http://aka.ms/ExtensionPointsCommands to learn how to add more Extension Points: MessageRead, AppointmentOrganizer, AppointmentAttendee -->
</DesktopFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="icon16" DefaultValue="~remoteAppUrl/MailForms/Images/icon16.png"/>
<bt:Image id="icon32" DefaultValue="~remoteAppUrl/MailForms/Images/icon32.png"/>
<bt:Image id="icon80" DefaultValue="~remoteAppUrl/MailForms/Images/icon80.png"/>
</bt:Images>
<bt:Urls>
<bt:Url id="functionFile" DefaultValue=" ~remoteAppUrl/MailForms/Functions/FunctionFile.html"/>
<!--<bt:Url id="messageReadTaskPaneUrl" DefaultValue="~remoteAppUrl/AppRead/Home/Home.html"/>-->
<bt:Url id="messageComposeTaskPaneUrl" DefaultValue="~remoteAppUrl/MailForms/AppCompose/1.0.0.3/Home/Home.html"/>
</bt:Urls>
<bt:ShortStrings>
<bt:String id="groupLabel" DefaultValue="My Add-in Group"/>
<bt:String id="customTabLabel" DefaultValue="My Add-in Tab"/>
<bt:String id="paneReadButtonLabel" DefaultValue="Messageware Mail Forms"/>
<bt:String id="paneReadSuperTipTitle" DefaultValue="Get all properties"/>
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="paneReadSuperTipDescription" DefaultValue="Opens a pane displaying all available properties. This is an example of a button that opens a task pane."/>
</bt:LongStrings>
</Resources>
</VersionOverrides>
</OfficeApp>
Any ideas?
Ok - so your DefaultMinVersion is 1.4:
<bt:Sets DefaultMinVersion="1.4">
Per the Requirement Set documentation, requirement set 1.4 was added to Outlook 2013 via kb 3118280, which is version 15.0.4859.1000. So you should check the version of Outlook 2013 you're running. Any client which is out of date would offer requirement set 1.3 or lower and would show the icon as greyed out.
Your comment about Salesforce reminds me of something I just debugged. The version of Outlook itself doesn't matter for requirements sets. It's the version of osf.dll and osfshared.dll that matter. So quite likely that's out of date. Try the latest OSF update and see if that gets Salesforce working.
Bug I filed on the requirements sets documentation: https://github.com/OfficeDev/office-js-docs/issues/1461

Outlook Add-in ribbon button not showing

Background
I'm developing an Office addin for Outlook. I'm trying to add a button to the ribbon that should open a TaskPane. I've defined the ribbon button in my manifest, under the <Control> block of the XML:
<?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" xsi:type="MailApp">
<Id>1bf213f9-65a5-4395-aef8-239d72c7e509</Id>
<Version>1.0.0.0</Version>
<ProviderName>myProviderName</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="myDisplayName" />
<Description DefaultValue="myDescription"/>
<Hosts>
<Host Name="Mailbox" />
</Hosts>
<Requirements>
<Sets>
<Set Name="MailBox" MinVersion="1.1" />
</Sets>
</Requirements>
<FormSettings>
<Form xsi:type="ItemEdit">
<DesktopSettings>
<SourceLocation DefaultValue="https://hiddenurl/app/index.html" />
</DesktopSettings>
</Form>
</FormSettings>
<Permissions>ReadWriteItem</Permissions>
<Rule xsi:type="RuleCollection" Mode="Or">
<Rule xsi:type="ItemIs" FormType="Edit" ItemType="Message"/>
</Rule>
<DisableEntityHighlighting>false</DisableEntityHighlighting>
<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides"
xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0"
xsi:type="VersionOverridesV1_0">
<Hosts>
<Host xsi:type="MailHost">
<DesktopFormFactor>
<ExtensionPoint xsi:type="MessageComposeCommandSurface">
<OfficeTab id="TabDefault">
<Group id="mainGroup">
<Label resid="groupLabel"/>
<Tooltip resid="groupsTooltip"/>
<Control xsi:type="Button" id="button">
<Label resid="buttonLabel"/>
<Tooltip resid="buttonTooltip"/>
<Supertip>
<Title resid="superTipTitle"/>
<Description resid="superTipDescription"/>
</Supertip>
<Icon>
<bt:Image size="16" resid="icon16"/>
<bt:Image size="32" resid="icon32"/>
<bt:Image size="80" resid="icon80"/>
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="taskPaneUrl" />
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
</DesktopFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="icon16" DefaultValue="https://hiddenurl/assets/icons/icon_16.png" />
<bt:Image id="icon32" DefaultValue="https://hiddenurl/assets/icons/icon_32.png" />
<bt:Image id="icon80" DefaultValue="https://hiddenurl/assets/icons/icon_80.png" />
</bt:Images>
<bt:Urls>
<bt:Url id="taskPaneUrl" DefaultValue="https://hiddenurl/app/index.html" />
</bt:Urls>
<bt:ShortStrings>
<bt:String id="tabLabel" DefaultValue="tabLabel" />
<bt:String id="groupLabel" DefaultValue="groupLabel" />
<bt:String id="groupsTooltip" DefaultValue="groupsTooltip" />
<bt:String id="buttonLabel" DefaultValue="buttonLabel" />
<bt:String id="buttonTooltip" DefaultValue="buttonTooltip" />
<bt:String id="superTipTitle" DefaultValue="superTipTitle" />
<bt:String id="superTipDescription" DefaultValue="superTipDescription" />
</bt:ShortStrings>
</Resources>
</VersionOverrides>
</OfficeApp>
I expect to see a button on the ribbon with my logo, which I should be able to click to open a TaskPane. However I see no button and under Office Add-ins / My Add-ins, my Addin is not even showing.
What I've tried
If I remove the entire <VersionOverrides> block in the manifest the Add-in shows up again under Office Add-ins / My Add-ins and I can access my TaskPane through there.
I've tried to follow these examples without success:
OfficeDev/outlook-add-in-command-demo
Building Office add-in commands
Questions
What could be wrong with my manifest file?
How can I verify that the manifest file declares the ribbon button correct?
How can I verify that my manifest file is correct?
Your resource section is not properly formatted. Please update to the following and everything will work as you requested ...
<Resources>
<bt:Images>
<bt:Image id="icon16" DefaultValue="https://hiddenurl/assets/icons/icon_16.png" />
<bt:Image id="icon32" DefaultValue="https://hiddenurl/assets/icons/icon_16.png" />
<bt:Image id="icon80" DefaultValue="https://hiddenurl/assets/icons/icon_16.png" />
</bt:Images>
<bt:Urls>
<bt:Url id="taskPaneUrl" DefaultValue="https://hiddenurl/app/index.html" />
</bt:Urls>
<bt:ShortStrings>
<bt:String id="tabLabel" DefaultValue="tabLabel" />
<bt:String id="groupLabel" DefaultValue="groupLabel" />
<bt:String id="buttonLabel" DefaultValue="buttonLabel" />
<bt:String id="superTipTitle" DefaultValue="superTipTitle" />
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="buttonTooltip" DefaultValue="buttonTooltip" />
<bt:String id="groupsTooltip" DefaultValue="groupsTooltip" />
<bt:String id="superTipDescription" DefaultValue="superTipDescription" />
</bt:LongStrings>
</Resources>
You should add "IconUrl" and "HighResolutionIconUrl" into "OfficeApp" section to support clients which do not know anything about "VersionOverridesV1_0". those two nodes should come after "Description". If you will be submittimg your app into the Office Store in the future you will be required to add "SupportUrl" node after "HighResolutionIconUrl".
Keep in mind everything inside manifest file is strict by schemes and should be valid.

Resources