Module extension add-ins appear in the Outlook navigation bar, right alongside mail, tasks, and calendars. A module extension isn't limited to using mail and appointment information. You can create applications that run inside Outlook to make it easy for your users to access business information and productivity tools without ever leaving Outlook.
Tip
Module extensions are only supported in classic Outlook on Windows. To provide a more modern solution that's available on various platforms, create personal tab apps that open in Outlook instead. With personal tab apps, your users will have access to business critical data and productivity tools not just in Outlook, but across Microsoft 365 applications, including Microsoft Teams, and various platforms.
Supported clients and manifests
To create and run module extension add-ins, you must:
Run the add-in in classic Outlook on Windows (Outlook 2016 or later).
Open a module extension
To open a module extension, navigate to the Outlook navigation bar, select More Apps, then choose the module extension add-in.
Tip
In older versions of classic Outlook on Windows, the navigation bar appears at the bottom of the window. Access to a module extension varies depending on the layout of the navigation bar and the number of available module extensions.
If the user has compact navigation selected, the navigation bar has an icon that shows an extension is loaded.
If the user isn't using compact navigation, the navigation bar will display the name of the add-in.
If more than one add-in is loaded, the Add-ins options is displayed in the navigation bar. Select Add-ins, then choose the add-in you want to use.
Configure a module extension
When you select a module extension add-in, Outlook replaces the built-in module with your custom module so that you can interact with the add-in. You can use some of the features of the Outlook JavaScript API in your add-in. APIs that logically assume a specific Outlook item, such as a message or appointment, don't work in module extensions. The module can also include function commands in the Outlook ribbon that interact with the add-in's page. To facilitate this, your function commands must call the Office.onReady or Office.initialize method and the Event.completed method.
The following is a section of a manifest file that defines a module extension.
XML
<VersionOverridesxmlns="http://schemas.microsoft.com/office/mailappversionoverrides"xsi:type="VersionOverridesV1_0"><VersionOverridesxmlns="http://schemas.microsoft.com/office/mailappversionoverrides/1.1"xsi:type="VersionOverridesV1_1"><Requirements><bt:SetsDefaultMinVersion="1.3"><bt:SetName="Mailbox"/></bt:Sets></Requirements><Hosts><Hostxsi:type="MailHost"><DesktopFormFactor><!-- Sets the URL of the JavaScript file that contains the code to
run the operations of a module extension add-in. --><FunctionFileresid="residFunctionFileUrl"/><!--Configures the add-in as a module extension. --><ExtensionPointxsi:type="Module"><SourceLocationresid="residExtensionPointUrl"/><Labelresid="residExtensionPointLabel"/><CommandSurface><CustomTabid="idTab"><Groupid="idGroup"><Labelresid="residGroupLabel"/><Controlxsi:type="Button"id="group.changeToAssociate"><Labelresid="residChangeToAssociateLabel"/><Supertip><Titleresid="residChangeToAssociateLabel"/><Descriptionresid="residChangeToAssociateDesc"/></Supertip><Icon><bt:Imagesize="16"resid="residAssociateIcon16"/><bt:Imagesize="32"resid="residAssociateIcon32"/><bt:Imagesize="80"resid="residAssociateIcon80"/></Icon><Actionxsi:type="ExecuteFunction"><FunctionName>changeToAssociateRate</FunctionName></Action></Control></Group><Labelresid="residCustomTabLabel"/></CustomTab></CommandSurface></ExtensionPoint></DesktopFormFactor></Host></Hosts><Resources><bt:Images><bt:Imageid="residAssociateIcon16"DefaultValue="https://localhost:3000/assets/associate-16.png"/><bt:Imageid="residAssociateIcon32"DefaultValue="https://localhost:3000/assets/associate-32.png"/><bt:Imageid="residAssociateIcon80"DefaultValue="https://localhost:3000/assets/associate-80.png"/></bt:Images><bt:Urls><bt:Urlid="residFunctionFileUrl"DefaultValue="https://localhost:3000/module.html"/><bt:Urlid="residExtensionPointUrl"DefaultValue="https://localhost:3000/module.html"/></bt:Urls><bt:ShortStrings><bt:Stringid="residExtensionPointLabel"DefaultValue="Billable Hours"/><bt:Stringid="residGroupLabel"DefaultValue="Change billing rate"/><bt:Stringid="residCustomTabLabel"DefaultValue="Billable hours"/><bt:Stringid="residChangeToAssociateLabel"DefaultValue="Associate Rate"/></bt:ShortStrings><bt:LongStrings><bt:Stringid="residChangeToAssociateDesc"DefaultValue="Change to the associate billing rate: $127/hr"/></bt:LongStrings></Resources></VersionOverrides></VersionOverrides>
The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, see our contributor guide.
Office Add-ins feedback
Office Add-ins is an open source project. Select a link to provide feedback: