05.04.2020

Microsoft Outlook For Mac Tutorial

-->
  1. Install Microsoft Outlook For Mac
  2. Microsoft Outlook For Mac Versions
  3. Microsoft Outlook For Mac Tutorial 2016

This tutorial teaches you how to build an Outlook add-in that can be used in message compose mode to insert content into the body of a message.

Expand your Outlook. We've developed a suite of premium Outlook features for people with advanced email and calendar needs. An Office 365 subscription offers an ad-free interface, custom domains, enhanced security options, the full desktop version of Office, and 1 TB of cloud storage. Modern workplace training. Learn how to get more work done, from anywhere on any device with Office 365 and Windows 10. Discover how industry professionals leverage Microsoft 365 to communicate, collaborate, and improve productivity across the team and organization.

In this tutorial, you will:

  • Create an Outlook add-in project
  • Define buttons that will render in the compose message window
  • Implement a first-run experience that collects information from the user and fetches data from an external service
  • Implement a UI-less button that invokes a function
  • Implement a task pane that inserts content into the body of a message

Install Microsoft Outlook For Mac

Prerequisites

  • Node.js (the latest LTS version)

  • The latest version of Yeoman and the Yeoman generator for Office Add-ins. To install these tools globally, run the following command via the command prompt:

    Note

    Even if you've previously installed the Yeoman generator, we recommend you update your package to the latest version from npm.

  • Outlook 2016 or later on Windows (connected to an Office 365 account) or Outlook on the web

  • A GitHub account

Setup

The add-in that you'll create in this tutorial will read gists from the user's GitHub account and add the selected gist to the body of a message. Complete the following steps to create two new gists that you can use to test the add-in you're going to build.

  1. Login to GitHub.

  2. Create a new gist.

    • In the Gist description.. field, enter Hello World Markdown.

    • In the Filename including extension.. field, enter test.md.

    • Add the following markdown to the multiline textbox:

    • Select the Create public gist button.

  3. Create another new gist.

    • In the Gist description.. field, enter Hello World Html.

    • In the Filename including extension.. field, enter test.html.

    • Add the following markdown to the multiline textbox:

    • Select the Create public gist button.

Create an Outlook add-in project

  1. Run the following command to create an add-in project using the Yeoman generator:

    Note

    When you run the yo office command, you may receive prompts about the data collection policies of Yeoman and the Office Add-in CLI tools. Use the information that's provided to respond to the prompts as you see fit.

    When prompted, provide the following information to create your add-in project:

    • Choose a project type - Office Add-in Task Pane project

    • Choose a script type - Javascript

    • What do you want to name your add-in? - Git the gist

    • Which Office client application would you like to support? - Outlook

    After you complete the wizard, the generator will create the project and install supporting Node components.

    Tip

    You can ignore the next steps guidance that the Yeoman generator provides after the add-in project's been created. The step-by-step instructions within this article provide all of the guidance you'll need to complete this tutorial.

  2. Navigate to the root directory of the project.

  3. This add-in will use the following libraries:

    • Showdown library to convert Markdown to HTML
    • URI.js library to build relative URLs.
    • jquery library to simplify DOM interactions.

    To install these tools for your project, run the following command in the root directory of the project:

Update the manifest

The manifest for an add-in controls how it appears in Outlook. It defines the way the add-in appears in the add-in list and the buttons that appear on the ribbon, and it sets the URLs for the HTML and JavaScript files used by the add-in.

Microsoft Outlook For Mac Versions

Specify basic information

Make the following updates in the manifest.xml file to specify some basic information about the add-in:

  1. Locate the ProviderName element and replace the default value with your company name.

    If it prints successfully from Notes that tell us that you have a problem with your installation of Microsoft Office. In that case you may need to uninstall Office 2016 from your Mac and then reinstall it. See Troubleshoot Office 2016 for Mac issues by completely uninstalling before you reinstall. Microsoft office 2011 for mac troubleshooting.

  2. Locate the Description element, replace the default value with a description of the add-in, and save the file.

Test the generated add-in

Before going any further, let's test the basic add-in that the generator created to confirm that the project is set up correctly.

Note

Office Add-ins should use HTTPS, not HTTP, even when you are developing. If you are prompted to install a certificate after you run the following command, accept the prompt to install the certificate that the Yeoman generator provides.

  1. Run the following command in the root directory of your project. When you run this command, the local web server will start (if it's not already running).

  2. Follow the instructions in Sideload Outlook add-ins for testing to sideload the manifest.xml file that's located in the root directory of the project.

  3. In Outlook, open an existing message and select the Show Taskpane button. If everything's been set up correctly, the task pane will open and render the add-in's welcome page.

Define buttons

Now that you've verified the base add-in works, you can customize it to add more functionality. By default, the manifest only defines buttons for the read message window. Let's update the manifest to remove the buttons from the read message window and define two new buttons for the compose message window:

  • Insert gist: a button that opens a task pane

  • Insert default gist: a button that invokes a function

Remove the MessageReadCommandSurface extension point

Open the manifest.xml file and locate the ExtensionPoint element with type MessageReadCommandSurface. Delete this ExtensionPoint element (including its closing tag) to remove the buttons from the read message window.

Add the MessageComposeCommandSurface extension point

Locate the line in the manifest that reads </DesktopFormFactor>. Immediately before this line, insert the following XML markup. Note the following about this markup:

  • The ExtensionPoint with xsi:type='MessageComposeCommandSurface' indicates that you're defining buttons to add to the compose message window.

  • By using an OfficeTab element with id='TabDefault', you're indicating you want to add the buttons to the default tab on the ribbon.

  • The Group element defines the grouping for the new buttons, with a label set by the groupLabel resource.

  • The first Control element contains an Action element with xsi:type='ShowTaskPane', so this button opens a task pane.

  • The second Control element contains an Action element with xsi:type='ExecuteFunction', so this button invokes a JavaScript function contained in the function file.

Update resources in the manifest

The previous code references labels, tooltips, and URLs that you need to define before the manifest will be valid. You'll specify this information in the Resources section of the manifest.

  1. Locate the Resources element in the manifest file and delete the entire element (including its closing tag).

  2. In that same location, add the following markup to replace the Resources element you just removed:

  3. Save your changes to the manifest.

Reinstall the add-in

Microsoft Outlook For Mac Tutorial 2016

Since you previously installed the add-in from a file, you must reinstall it in order for the manifest changes to take effect.

  1. Follow the instructions in Sideload Outlook add-ins for testing to locate the Custom add-ins section at the bottom of the My add-ins dialog box.

  2. Select the .. button next to the Git the gist entry and then choose Remove.

  3. Close the My add-ins window.

  4. The custom button should disappear from the ribbon momentarily.

  5. Follow the instructions in Sideload Outlook add-ins for testing to reinstall the add-in using the updated manifest.xml file.

After you've reinstalled the add-in, you can verify that it installed successfully by checking for the commands Insert gist and Insert default gist in a compose message window. Note that nothing will happen if you select either of these items, because you haven't yet finished building this add-in.

  • If you're running this add-in in Outlook 2016 or later on Windows, you should see two new buttons in the ribbon of the compose message window: Insert gist and Insert default gist.

  • If you're running this add-in in Outlook on the web, you should see a new button at the bottom of the compose message window. Select that button to see the options Insert gist and Insert default gist.

Implement a first-run experience

This add-in needs to be able to read gists from the user's GitHub account and identify which one the user has chosen as the default gist. In order to achieve these goals, the add-in must prompt the user to provide their GitHub username and choose a default gist from their collection of existing gists. Complete the steps in this section to implement a first-run experience that will display a dialog to collect this information from the user.

Collect data from the user

Let's start by creating the UI for the dialog itself. Within the ./src folder, create a new subfolder named settings. In the ./src/settings folder, create a file named dialog.html, and add the following markup to define a very basic form with a text input for a GitHub username and an empty list for gists that'll be populated via JavaScript.

Next, create a file in the ./src/settings folder named dialog.css, and add the following code to specify the styles that are used by dialog.html.

Now that you've defined the dialog UI, you can write the code that makes it actually do something. Create a file in the ./src/settings folder named dialog.js and add the following code. Note that this code uses jQuery to register events and uses the messageParent function to send the user's choices back to the caller.

Update webpack config settings

Finally, open the file webpack.config.js file in the root directory of the project and complete the following steps.

  1. Locate the entry object within the config object and add a new entry for dialog.

    After you've done this, the new entry object will look like this:

  2. Locate the plugins array within the config object and add these two new objects to the end of that array.

    After you've done this, the new plugins array will look like this:

  3. If the web server is running, close the node command window.

  4. Run the following command to rebuild the project.

  5. Run the following command to start the web server.

Fetch data from GitHub

The dialog.js file you just created specifies that the add-in should load gists when the change event fires for the GitHub username field. To retrieve the user's gists from GitHub, you'll use the GitHub Gists API.

Within the ./src folder, create a new subfolder named helpers. In the ./src/helpers folder, create a file named gist-api.js, and add the following code to retrieve the user's gists from GitHub and build the list of gists.

Note

You may have noticed that there's no button to invoke the settings dialog. Instead, the add-in will check whether it has been configured when the user selects either the Insert default gist button or the Insert gist button. If the add-in has not yet been configured, the settings dialog will prompt the user to configure before proceeding.

Implement a UI-less button

This add-in's Insert default gist button is a UI-less button that will invoke a JavaScript function, rather than open a task pane like many add-in buttons do. When the user selects the Insert default gist button, the corresponding JavaScript function will check whether the add-in has been configured.

  • If the add-in has already been configured, the function will load the content of the gist that the user has selected as the default and insert it into the body of the message.

  • If the add-in hasn't yet been configured, then the settings dialog will prompt the user to provide the required information.

Update the function file (HTML)

A function that's invoked by a UI-less button must be defined in the file that's specified by the FunctionFile element in the manifest for the corresponding form factor. This add-in's manifest specifies https://localhost:3000/commands.html as the function file.

Open the file ./src/commands/commands.html and replace the entire contents with the following markup.

Update the function file (JavaScript)

Open the file ./src/commands/commands.js and replace the entire contents with the following code. Note that if the insertDefaultGist function determines the add-in has not yet been configured, it adds the ?warn=1 parameter to the dialog URL. Doing so makes the settings dialog render the message bar that's defined in ./settings/dialog.html, to tell the user why they're seeing the dialog.

Create a file to manage configuration settings

The HTML function file references a file named addin-config.js, which doesn't yet exist. Create a file named addin-config.js in the ./src/helpers folder and add the following code. This code uses the RoamingSettings object to get and set configuration values.

Create new functions to process gists

Next, open the ./src/helpers/gist-api.js file and add the following functions. Note the following:

  • If the gist contains HTML, the add-in will insert the HTML as-is into the body of the message.

  • If the gist contains Markdown, the add-in will use the Showdown library to convert the Markdown to HTML, and will then insert the resulting HTML into the body of the message.

  • If the gist contains anything other than HTML or Markdown, the add-in will insert it into the body of the message as a code snippet.

Test the button

Save all of your changes and run npm run dev-server from the command prompt, if the server isn't already running. Then complete the following steps to test the Insert default gist button.

  1. Open Outlook and compose a new message.

  2. In the compose message window, select the Insert default gist button. You should be prompted to configure the add-in.

  3. In the settings dialog, enter your GitHub username and then either Tab or click elsewhere in the dialog to invoke the change event, which should load your list of gists. Select a gist to be the default, and select Done.

  4. Select the Insert default gist button again. This time, you should see the contents of the gist inserted into the body of the email.

    Note

    Outlook on Windows: To pick up the latest settings, you may need to close and reopen the compose message window.

Implement a task pane

This add-in's Insert gist button will open a task pane and display the user's gists. The user can then select one of the gists to insert into the body of the message. If the user has not yet configured the add-in, they will be prompted to do so.

Specify the HTML for the task pane

In the project that you've created, the task pane HTML is specified in the file ./src/taskpane/taskpane.html. Open that file and replace the entire contents with the following markup.

Specify the CSS for the task pane

In the project that you've created, the task pane CSS is specified in the file ./src/taskpane/taskpane.css. Open that file and replace the entire contents with the following code.

Specify the JavaScript for the task pane

In the project that you've created, the task pane JavaScript is specified in the file ./src/taskpane/taskpane.js. Open that file and replace the entire contents with the following code.

Test the button

Save all of your changes and run npm run dev-server from the command prompt, if the server isn't already running. Then complete the following steps to test the Insert gist button.

  1. Open Outlook and compose a new message.

  2. In the compose message window, select the Insert gist button. You should see a task pane open to the right of the compose form.

  3. In the task pane, select the Hello World Html gist and select Insert to insert that gist into the body of the message.

Next steps

In this tutorial, you've created an Outlook add-in that can be used in message compose mode to insert content into the body of a message. To learn more about developing Outlook add-ins, continue to the following article:

-->

The Teams Meeting add-in lets users schedule a Teams meeting from Outlook. The add-in is available for Outlook on Windows, Mac, web, and mobile.

Teams Meeting add-in in Outlook for Windows

The Teams Meeting add-in is automatically installed for users who have Microsoft Teams and either Office 2010, Office 2013 or Office 2016 installed on their Windows PC. Users will see the Teams Meeting add-in on the Outlook Calendar ribbon.

Note

  • There are additional considerations if your organization runs both Teams and Skype for Business. Under some circumstances, the Teams add-in is not available in Outlook. See Upgrade from Skype for Business to Teams for details.
  • User permissions to execute the Regsvr32.exe file is a minimum requirement for the Teams Meeting add-in to be installed on the computer.
  • If users do not see the Teams Meeting add-in, instruct them to close Outlook and Teams, then restart the Teams client first, then sign in to Teams, and then restart the Outlook client, in that specific order.
  • If you are using an Office Outlook installation from the Microsoft Store, the Teams Meeting add-in isn't supported. Users who require this add-in are advised to install Click-to-Run version of Office, as outlined in Office on Windows 10 in S mode article.

Teams Meeting add-in in Outlook for Mac

The Teams Meeting button in Outlook for Mac will appear in the Outlook for Mac ribbon if Outlook is running production build 16.24.414.0 and later and is activated with an Office 365 client subscription.​

The meeting coordinates (the Teams join link and dial-in numbers) will be added to the meeting invite after the user clicks Send.

Mac

Teams Meeting add-in in Outlook Web App

The Teams Meetings button in Outlook Web App will appear as part of new event creation if the user is on an early version of the new Outlook on the web. See the Outlook Blog to learn about how users can try the early version of the new Outlook on the web.

The meeting coordinates (the Teams join link and dial-in numbers) will be added to the meeting invite after the user clicks Send.

Teams Meeting add-in in Outlook mobile (iOS and Android)

The Teams Meeting button shows up in latest builds of the Outlook iOS and Android app.

The meeting coordinates (the Teams join link and dial-in numbers) will be added to the meeting invite after the user clicks Send.

Teams Meeting add-in in and FindTime for Outlook

FindTime is an add-in for Outlook that helps users reach a consensus on a meeting time across companies. Once the meeting invitees have provided their preferred times, FindTime sends out the meeting invite on the user's behalf. If the Online meeting option is selected in FindTime, FindTime will schedule a Skype for Business or Microsoft Teams meeting. (FindTime will use whichever has been set by your organization as the default online meeting channel.)

Note

If you saved a Skype for Business setting in your Findtime dashboard, FindTime will use that instead of Microsoft Teams. If you want to use Microsoft Teams, delete the Skype for Business setting in your dashboard.

See Schedule meetings with FindTime for more information.

Authentication requirements

The Teams Meeting add-in requires users to sign in to Teams using Modern Authentication. If users do not use this method to sign in, they'll still be able to use the Teams client, but will be unable to schedule Teams online meetings using the Outlook add-in. You can fix this by doing one of the following:

  • If Modern Authentication is not configured for your organization, you should configure Modern Authentication.
  • If Modern Authentication is configured, but they canceled out on the dialog box, you should instruct users to sign in again using multi-factor authentication.

To learn more about how to configure authentication, see Identity models and authentication in Microsoft Teams.

Enable private meetings

Allow scheduling for private meetings must be enabled in the Microsoft Teams admin center for the add-in to get deployed. In the admin center, go to Meetings > Meeting Policies, and in the General section, toggle Allow scheduling private meetings to On.)

The Teams client installs the correct add-in by determining if users need the 32-bit or 64-bit version.

Note

Users might need to restart Outlook after an installation or upgrade of Teams to get the latest add-in.​

Teams upgrade policy and the Teams Meeting add-in for Outlook

Customers can choose their upgrade journey from Skype for Business to Teams. Tenant admins can use the Teams co-existence mode to define this journey for their users. Tenant admins have the option to enable users to use Teams alongside Skype for Business (Islands mode).

When users who are in Island mode schedule a meeting in Outlook, they typically expect to be able to choose whether to schedule a Skype for Business or a Teams meeting. In Outlook on the web, Outlook Windows, and Outlook Mac, users see both Skype for Business and Teams add-ins when in Islands mode. Due to certain limitations in the initial release, Outlook mobile can only support creating Skype for Business or Teams meetings. See the following table for details.

Coexistence mode in the Teams admin centerDefault meetings provider in Outlook mobile
IslandsSkype for Business
Skype for Business onlySkype for Business
Skype for Business with Teams collaborationSkype for Business
Skype for Business with Teams collaboration and meetingsTeams
Teams onlyTeams

Other considerations

The Teams Meeting add-in is still building functionality, so be aware of the following:

  • The add-in is for scheduled meetings with specific participants, not for meetings in a channel. Channel meetings must be scheduled from within Teams.
  • The add-in will not work if an Authentication Proxy is in the network path of user's PC and Teams Services.
  • Users can't schedule live events from within Outlook. Go to Teams to schedule live events. For more information, see What are Microsoft Teams live events?.

Troubleshooting

If you cannot get the Teams Meeting add-in for Outlook to install, try these troubleshooting steps.

  • Ensure all available updates for Outlook desktop client have been applied.
  • Restart the Teams desktop client.
  • Sign out and then sign back in to the Teams desktop client.
  • Restart the Outlook desktop client. (Make sure Outlook isn't running in admin mode.)
  • Make sure the logged-in user account name does not contain spaces. (This is a known issue, and will be fixed in a future update.)
  • Make sure single sign-on (SSO) is enabled.

If your administrator has configured Microsoft Exchange to control access to Exchange Web Server (EWS), a delegate won't be able to schedule a Teams meeting on behalf of the boss. The solution for this configuration is under development and will be released in the future.

For general guidance about how to disable add-ins, see View, manage, and install add-ins in Office programs.

Learn more about meetings and calling in Microsoft Teams.