{"id":120,"date":"2018-02-01T11:01:27","date_gmt":"2018-02-01T19:01:27","guid":{"rendered":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/extending-the-out-of-office-app\/"},"modified":"2025-06-11T08:09:55","modified_gmt":"2025-06-11T15:09:55","slug":"extending-the-out-of-office-app","status":"publish","type":"post","link":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/extending-the-out-of-office-app\/","title":{"rendered":"Extending the Out of Office App"},"content":{"rendered":"<p>\u00a0<\/p>\n<p>One of the purposes of our Office Template Series is self defining: To give PowerApps users templates or starting points to customize in their org. With that in mind, I&#8217;d like to walk through an extensibility scenario with the <strong>Out of Office<\/strong> app.<\/p>\n<p>Generally, when people set their out of office in outlook, they provide a list of several people to contact regarding all the different projects they are associated with. As a starting point, the current <strong>Out of Office<\/strong> app only allows users to select one person to contact during their out of office period. Let\u2019s extend that to:<\/p>\n<ul>\n<li>allow users to dynamically set a list of people to contact in their absence and<\/li>\n<li>provide a deep link to each of their email addresses.<\/li>\n<\/ul>\n<p>To follow along with this tutorial, please go to <a href=\"https:\/\/web.powerapps.com\/\" target=\"_blank\" rel=\"noopener\">https:\/\/web.powerapps.com<\/a> and download the latest version of the <strong>Out of Office<\/strong> app, or download the fully finished app <a href=\"https:\/\/powerusers.microsoft.com\/t5\/Community-Apps-Gallery\/Out-of-Office-Extension\/m-p\/86818\" target=\"_blank\" rel=\"noopener\">here<\/a>\u00a0<\/p>\n<h2><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/bb74aabf-7014-46ce-8fb3-7ef554334f04.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"Navigation\" border=\"0\" height=\"1070\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/bb74aabf-7014-46ce-8fb3-7ef554334f04.png\" style=\"display: inline; background-image: none;\" title=\"Navigation\" width=\"1574\"\/><\/a><\/h2>\n<p>\u00a0<\/p>\n<h2>Modifying the Out of Office App<\/h2>\n<p>At a high level, here\u2019s what we\u2019re going to do to the\u00a0app:<\/p>\n<ul>\n<li>Rewire the \u2018<strong>CreateContactInfoScreen\u2019<\/strong> screen to allow a user to select multiple referral contacts for their out of office message\n<ul>\n<li>These contacts will be stored in a collection internal to the app<\/li>\n<\/ul>\n<\/li>\n<li>Create a new screen which allows users to set messages for each of these referral contacts\n<ul>\n<li>These messages will be stored as HTML in another internal collection<\/li>\n<\/ul>\n<\/li>\n<li>Modify the out of office message generation logic to fit the above amendments<\/li>\n<\/ul>\n<h2>Rewiring the Create Contact Info Screen:<\/h2>\n<p>Let\u2019s start at the top: rewiring the \u2018<strong>CreateContactInfoScreen\u2019 <\/strong>screen.<\/p>\n<p>While in the PowerApps editor, navigate to the \u2018<strong>CreateContactInfoScreen\u2019<\/strong>. Within the \u2018<strong>ContactInfo_Contacts\u2019 <\/strong>group, delete the items highlighted in the image below. These controls must be deleted to make room for a gallery which will store a collection of people to contact during the user\u2019s out of office period.<\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/5e728bc3-1260-4493-9ae8-68c3d9efb793.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"1DeleteThisStuff\" border=\"0\" height=\"1058\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/5e728bc3-1260-4493-9ae8-68c3d9efb793.png\" style=\"display: inline; background-image: none;\" title=\"1DeleteThisStuff\" width=\"979\"\/><\/a><\/p>\n<p>Next, insert a blank vertical gallery in the newly open space. Before moving forward, duplicate the screen. It will serve as a basis for the second part of this extension.<\/p>\n<p>On the original \u2019<strong>CreateContactInfoScreen<\/strong>\u2019 we will be using the new gallery to allow users to select their points of contact for their out of office message. Select said gallery and set these properties as follows:<\/p>\n<pre>\nItems = UserCollect\nWrapCount = 2<\/pre>\n<p>Insert a button in the gallery and set its properties as follows:<\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/9028b6de-611e-4022-b4c0-5494cc865765.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"2AddGallery\" border=\"0\" height=\"1058\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/9028b6de-611e-4022-b4c0-5494cc865765.png\" style=\"display: inline; background-image: none;\" title=\"2AddGallery\" width=\"1220\"\/><\/a><\/p>\n<pre>\nText = ThisItem.Name\nOnSelect = If(!(ThisItem in ThoseToContact), Collect(ThoseToContact, ThisItem), Remove(ThoseToContact, ThisItem))\nColor = If(!(ThisItem in ThoseToContact), RGBA(47,41,43,1), White)\nFill = If(ThisItem in ThoseToContact, RGBA(101, 94, 254, 1), White)<\/pre>\n<p>\u2019<strong>ThoseToContact<\/strong>\u2019 is a collection which stores the people the user has selected as points of contact during their out of office period. The OnSelect logic we\u2019ve created above allows a user to select or deselect a person into or out of the \u2018<strong>ThoseToContact<\/strong>\u2019 collection. Style is added in the Color\/Fill properties of the button to provide additional clarity to the user of which people are in the \u2018<strong>ThoseToContact\u2019<\/strong> collection.<\/p>\n<p>The final step on this screen is rewiring the \u2018Next\u2019 button. Select it and change its properties as follows:<\/p>\n<pre>\nOnSelect =<\/pre>\n<blockquote>\n<pre>\nClear(MessageContacts);\nForAll(ThoseToContact, Collect(MessageContacts, {MessageID: id, EmailURL: \"&lt;li&gt;&lt;a href=mailto:\" &amp; Address &amp; \"&gt;\" &amp; Name &amp; \"&lt;\/a&gt;\", Message: \"\"}));\nNavigate(CreateContactInfoScreen_1, None)<\/pre>\n<\/blockquote>\n<pre>\nDisplayMode = If(CountRows(ThoseToContact) &gt; 0, DisplayMode.Edit, Disabled)<\/pre>\n<p>\u2018<strong>MessageContacts<\/strong>\u2019 is a collection which arranges each selected person (in <strong>\u2018ThoseToContact\u2019<\/strong>) with their respective part of the out of office message. The \u2018<strong>EmailURL<\/strong>\u2019 field is a deep link to each person\u2019s email address. The <strong>\u2018Message\u2019 <\/strong>field is their part of the out of office message. Don\u2019t worry about the open &lt;li&gt; tag in \u2018<strong>EmailURL<\/strong>\u2019, we\u2019ll be closing it in the next screen when we learn how to fill out the \u2018<strong>Message<\/strong>\u2019 column.<\/p>\n<p>The DisplayMode property is adjusted so that the button will be disabled if the user hasn\u2019t selected anyone to include in their referral message.<\/p>\n<p>With those few changes, the extension is halfway done.<\/p>\n<h2>Creating the Referral Messages Screen<\/h2>\n<p>Navigate to the screen we duplicated in the previous section (by default, it should be named \u2018<strong style=\"font-size: 13.008px;\">CreateContactInfoScreen_1<\/strong>\u2019). Like the previous screen, the bulk of the work here involves manipulating the gallery. Select it and set:<\/p>\n<pre>\nItems = ThoseToContact<\/pre>\n<p>Recall that \u2018<strong>ThoseToContact<\/strong>\u2019 is the collection we created on the previous screen to store the points of contact a user wants to set in their out of office message. This gallery then, allows the user to see those people and provide a message for each.<\/p>\n<p>Add a button, 2 labels, an \u2018X\u2019 icon, and a text input control to the gallery. The button is for aesthetic purposes only and will serve as a background \u201ccontainer\u201d for the other items. Make sure the button fills the height\/width of the gallery template and that it sits behind every other control. The rest of the properties for each of these controls is as follows:<\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/c98ead0e-6a77-4523-9824-ff6c0313f6c5.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"4NewScreenGalleryCallOut\" border=\"0\" height=\"910\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/c98ead0e-6a77-4523-9824-ff6c0313f6c5.png\" style=\"display: inline; background-image: none;\" title=\"4NewScreenGalleryCallOut\" width=\"1354\"\/><\/a><\/p>\n<p><strong>TextInput:<\/strong><\/p>\n<pre>\nOnChange =<\/pre>\n<blockquote>\n<pre>\nUpdateIf(MessageContacts, MessageID = ThisItem.id,\n   {Message: \" regarding \" &amp; TextInput2.Text &amp; \"&lt;\/li&gt;\"})<\/pre>\n<\/blockquote>\n<pre>\nDefault: \u201c\u201d<\/pre>\n<p><strong>X Icon:<\/strong><\/p>\n<pre>\nOnSelect =<\/pre>\n<blockquote>\n<pre>\nRemove(ThoseToContact, ThisItem);\nRemove(MessageContacts,\n   LookUp(MessageContacts, ThisItem.id = MessageID))<\/pre>\n<\/blockquote>\n<p>The two properties highlighted in red and reproduced in text are the only ones significant to the functionality of the extension. Every other property listed is only for style or content.<\/p>\n<p>The OnChange property of the \u2018<strong>TextInput<\/strong>\u2019 control is what writes the proper message to the proper user in the \u2018<strong>MessageContacts<\/strong>\u2019 field. We wrap the logic inside an <strong>UpdateIf<\/strong> function so that only the row with MessageID = ThisItem.id is overwritten. You\u2019ll also notice that the open &lt;li&gt; tag is closed here. The Default property is blanked so it\u2019s clear that no message is provided for that person.<\/p>\n<p>The OnSelect property of the \u2018X\u2019 icon is removing that person from both the \u2018MessageContacts\u2019 collection and the \u2018<strong style=\"font-size: 13.008px;\">ThoseToContact<\/strong>\u2019 collection. Removal from \u2018<strong style=\"font-size: 13.008px;\">MessageContacts<\/strong>\u2019 is necessary because the gallery on this screen pulls from that collection, so without this removal, that person would still be visible in the gallery. Removal from \u2018<strong style=\"font-size: 13.008px;\">ThoseToContact\u2019<\/strong> is necessary because this collection is used to form the entirety of the out of office message, so failure to remove the person from this collection would result in a wrong\/extra point of contact in the message.<\/p>\n<p>Lastly, the OnSelect &amp; DisplayMode properties of the \u2018Next\u2019 button on this screen needs to be modified. Select the button and in the OnSelect property make the proper modifications from the original logic (boxed in red) to the new logic (boxed in green):<\/p>\n<p><a href=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/58c3b17b-ab31-41c4-bd73-bc0e2f6d1f11.png\"><img loading=\"lazy\" decoding=\"async\" alt=\"5NextButton4\" border=\"0\" height=\"377\" src=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/58c3b17b-ab31-41c4-bd73-bc0e2f6d1f11.png\" style=\"display: inline; background-image: none;\" title=\"5NextButton4\" width=\"1404\"\/><\/a><\/p>\n<p><strong>Original Logic:<\/strong><\/p>\n<blockquote>\n<pre>\nSet(Regarding, TextInput3.Text);<\/pre>\n<\/blockquote>\n<p><strong>New Logic:<\/strong><\/p>\n<blockquote>\n<pre>\nUpdateIf(MessageContacts, Message = \"\", {Message: \" regarding general inquiries&lt;\/li&gt;\"});\nSet(Regarding, Concat(MessageContacts, \"&lt;ul&gt;\" &amp; EmailURL &amp; Message &amp; \"&lt;\/ul&gt;\"));<\/pre>\n<\/blockquote>\n<p><strong>Original Logic:<\/strong><\/p>\n<blockquote>\n<pre>\nContactUser &amp; \" at \" &amp; ContactUserEmail &amp; If(Not(IsBlank(Regarding)),\" regarding \" &amp; Regarding) &amp; \". <\/pre>\n<\/blockquote>\n<p><strong>New Logic:<\/strong><\/p>\n<blockquote>\n<pre>\n Regarding &amp; \u201c<\/pre>\n<\/blockquote>\n<p>For the DisplayMode property:<\/p>\n<pre>\nDisplayMode = If(CountRows(ThoseToContact) &lt; 2, Disabled, Edit)<\/pre>\n<p>The first piece of the new OnSelect functionality sets any blank user specific messages to a generic \u201cregarding general inquires\u201d message. It then takes the \u2018<strong>MessageContacts<\/strong>\u2019 collection containing the individual \u2018person pieces\u2019 of the out of office message, and concatenates them down into one long string and stores it in the <strong>Regarding <\/strong>variable. The latter piece of the new functionality then amends that string (<strong>Regarding<\/strong>) into the pre existing message generation logic. This message will be presented to the user for review on the final \u2018<strong>CreateReviewScreen<\/strong>\u2019.<\/p>\n<p>The DisplayMode functionality ensures that a user must set at least one point of contact in their out of office message before initializing it.<\/p>\n<h2>Summary<\/h2>\n<p>Now that we have finished the extension exercise, let\u2019s recap what we just did.<\/p>\n<p>The point of this exercise was to extend the <strong>Out of Office <\/strong>app to allow users to set multiple points of contact in their out of office message. To do so, we created two collections: \u2018<strong>ThoseToContact<\/strong>\u2019 and \u2018<strong>MessageContacts<\/strong>\u2019. \u2018<strong>ThoseToContact<\/strong>\u2019 is made up of people selected from the gallery we made in our first screen. As an app user selects\/deselects a person in that gallery, they are added\/removed from \u2018<strong>ThoseToContact<\/strong>\u2019. \u2018<strong>MessageContacts<\/strong>\u2019 starts being built in the OnSelect property of the Next button on that same screen. It takes all of the points of contact in \u2018<strong>ThoseToContact<\/strong>\u2019 and creates a table where each row contains the email address of a single point of contact and an (initially) blank \u2018regarding message\u2019.<\/p>\n<p>In the second screen, the blank message field gets updated by the user from the gallery. When the text value of the \u2018<strong>TextInputBox<\/strong>\u2019 is changed, the message field of it\u2019s respective row in \u2018<strong>MessageContacts<\/strong>\u2019 is updated to reflect that change. For any regarding messages left blank, we populate it with a precanned message. Finally, we modified the logic in the Next button on this screen to concatenate \u2018<strong>MessageContacts<\/strong>\u2019 into a single string which we then amended to the logic which generates the full out of office message.<\/p>\n<h2>Notes about this modification<\/h2>\n<ul>\n<li>Editing your out of office message from the review screen is more complex now, due to the HTML tags. If you plan on modifying your message there, be sure that you are only editing the text between the HTML tags.<\/li>\n<li>This extension removed the ability to search for any user within your O365 tenant and set them as your referring contact. The pattern to place this feature back into the app is a straight forward, but dense exercise. See Veronica Ward\u2019s blog <a href=\"https:\/\/powerapps.microsoft.com\/en-us\/blog\/creating-dialogs-in-powerapps\/\">Creating A Dialog<\/a> for a possible design option for creating this search screen. Otherwise, the app <a href=\"https:\/\/powerusers.microsoft.com\/t5\/Community-Apps-Gallery\/Out-of-Office-Extension\/m-p\/86818\" target=\"_blank\" rel=\"noopener\">here<\/a> contains this feature\u00a0<\/li>\n<li>With the message as is, the formatting will be a little clunky. Feel free to add additional HTML to better format the message, or refer to <a href=\"https:\/\/powerusers.microsoft.com\/t5\/Community-Apps-Gallery\/Out-of-Office-Extension\/m-p\/86818\" target=\"_blank\" rel=\"noopener\">this<\/a> for a possible fix.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Learn how to extend upon the Out of Office app to allow users to set multiple points of contact in their out of office message<\/p>\n","protected":false},"author":122,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ms_queue_id":[],"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","_alt_title":"","ms-ems-related-posts":[],"footnotes":""},"audience":[3378],"content-type":[3423],"job-role":[],"product":[3473],"property":[],"topic":[],"coauthors":[2137],"class_list":["post-120","post","type-post","status-publish","format-standard","hentry","audience-it-professional","content-type-tips-and-guides","product-power-apps"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Extending the Out of Office App - Microsoft Power Platform Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/02\/01\/extending-the-out-of-office-app\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Extending the Out of Office App - Microsoft Power Platform Blog\" \/>\n<meta property=\"og:description\" content=\"Learn how to extend upon the Out of Office app to allow users to set multiple points of contact in their out of office message\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/extending-the-out-of-office-app\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Power Platform Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-02-01T19:01:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-11T15:09:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/bb74aabf-7014-46ce-8fb3-7ef554334f04.png\" \/>\n<meta name=\"author\" content=\"Ian Davis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ian Davis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/02\/01\/extending-the-out-of-office-app\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/02\/01\/extending-the-out-of-office-app\/\"},\"author\":[{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/author\/ian-davis\/\",\"@type\":\"Person\",\"@name\":\"Ian Davis\"}],\"headline\":\"Extending the Out of Office App\",\"datePublished\":\"2018-02-01T19:01:27+00:00\",\"dateModified\":\"2025-06-11T15:09:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/02\/01\/extending-the-out-of-office-app\/\"},\"wordCount\":1472,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/02\/01\/extending-the-out-of-office-app\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/bb74aabf-7014-46ce-8fb3-7ef554334f04.png\",\"keywords\":[\"Templates\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/02\/01\/extending-the-out-of-office-app\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/02\/01\/extending-the-out-of-office-app\/\",\"url\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/02\/01\/extending-the-out-of-office-app\/\",\"name\":\"Extending the Out of Office App - Microsoft Power Platform Blog\",\"isPartOf\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/02\/01\/extending-the-out-of-office-app\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/02\/01\/extending-the-out-of-office-app\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/bb74aabf-7014-46ce-8fb3-7ef554334f04.png\",\"datePublished\":\"2018-02-01T19:01:27+00:00\",\"dateModified\":\"2025-06-11T15:09:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/02\/01\/extending-the-out-of-office-app\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/02\/01\/extending-the-out-of-office-app\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/02\/01\/extending-the-out-of-office-app\/#primaryimage\",\"url\":\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/bb74aabf-7014-46ce-8fb3-7ef554334f04.png\",\"contentUrl\":\"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/bb74aabf-7014-46ce-8fb3-7ef554334f04.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/02\/01\/extending-the-out-of-office-app\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Extending the Out of Office App\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#website\",\"url\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/\",\"name\":\"Microsoft Power Platform Blog\",\"description\":\"Innovate with Business Apps\",\"publisher\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization\",\"name\":\"Microsoft Power Platform Blog\",\"url\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png\",\"contentUrl\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png\",\"width\":194,\"height\":145,\"caption\":\"Microsoft Power Platform Blog\"},\"image\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/person\/ee987ca73b80da17152712d077d8d4b4\",\"name\":\"Ian Davis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/6634a69deb3276d6e114a73f5695089c7e5c66839976ce7917fb3f38b4927735?s=96&d=mm&r=g57e71db5672bb5f15ccbe9dc23df17df\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6634a69deb3276d6e114a73f5695089c7e5c66839976ce7917fb3f38b4927735?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6634a69deb3276d6e114a73f5695089c7e5c66839976ce7917fb3f38b4927735?s=96&d=mm&r=g\",\"caption\":\"Ian Davis\"},\"url\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/author\/v-chdav2\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Extending the Out of Office App - Microsoft Power Platform Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/02\/01\/extending-the-out-of-office-app\/","og_locale":"en_US","og_type":"article","og_title":"Extending the Out of Office App - Microsoft Power Platform Blog","og_description":"Learn how to extend upon the Out of Office app to allow users to set multiple points of contact in their out of office message","og_url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/extending-the-out-of-office-app\/","og_site_name":"Microsoft Power Platform Blog","article_published_time":"2018-02-01T19:01:27+00:00","article_modified_time":"2025-06-11T15:09:55+00:00","og_image":[{"url":"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/bb74aabf-7014-46ce-8fb3-7ef554334f04.png","type":"","width":"","height":""}],"author":"Ian Davis","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Ian Davis","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/02\/01\/extending-the-out-of-office-app\/#article","isPartOf":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/02\/01\/extending-the-out-of-office-app\/"},"author":[{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/author\/ian-davis\/","@type":"Person","@name":"Ian Davis"}],"headline":"Extending the Out of Office App","datePublished":"2018-02-01T19:01:27+00:00","dateModified":"2025-06-11T15:09:55+00:00","mainEntityOfPage":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/02\/01\/extending-the-out-of-office-app\/"},"wordCount":1472,"commentCount":0,"publisher":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization"},"image":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/02\/01\/extending-the-out-of-office-app\/#primaryimage"},"thumbnailUrl":"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/bb74aabf-7014-46ce-8fb3-7ef554334f04.png","keywords":["Templates"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/02\/01\/extending-the-out-of-office-app\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/02\/01\/extending-the-out-of-office-app\/","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/02\/01\/extending-the-out-of-office-app\/","name":"Extending the Out of Office App - Microsoft Power Platform Blog","isPartOf":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/02\/01\/extending-the-out-of-office-app\/#primaryimage"},"image":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/02\/01\/extending-the-out-of-office-app\/#primaryimage"},"thumbnailUrl":"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/bb74aabf-7014-46ce-8fb3-7ef554334f04.png","datePublished":"2018-02-01T19:01:27+00:00","dateModified":"2025-06-11T15:09:55+00:00","breadcrumb":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/02\/01\/extending-the-out-of-office-app\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/02\/01\/extending-the-out-of-office-app\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/02\/01\/extending-the-out-of-office-app\/#primaryimage","url":"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/bb74aabf-7014-46ce-8fb3-7ef554334f04.png","contentUrl":"https:\/\/pwrappscdn.azureedge.net\/mediahandler\/blog\/media\/PowerApps\/blog\/bb74aabf-7014-46ce-8fb3-7ef554334f04.png"},{"@type":"BreadcrumbList","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2018\/02\/01\/extending-the-out-of-office-app\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/"},{"@type":"ListItem","position":2,"name":"Extending the Out of Office App"}]},{"@type":"WebSite","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#website","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/","name":"Microsoft Power Platform Blog","description":"Innovate with Business Apps","publisher":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization","name":"Microsoft Power Platform Blog","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png","contentUrl":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png","width":194,"height":145,"caption":"Microsoft Power Platform Blog"},"image":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/person\/ee987ca73b80da17152712d077d8d4b4","name":"Ian Davis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/6634a69deb3276d6e114a73f5695089c7e5c66839976ce7917fb3f38b4927735?s=96&d=mm&r=g57e71db5672bb5f15ccbe9dc23df17df","url":"https:\/\/secure.gravatar.com\/avatar\/6634a69deb3276d6e114a73f5695089c7e5c66839976ce7917fb3f38b4927735?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6634a69deb3276d6e114a73f5695089c7e5c66839976ce7917fb3f38b4927735?s=96&d=mm&r=g","caption":"Ian Davis"},"url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/author\/v-chdav2\/"}]}},"bloginabox_animated_featured_image":null,"bloginabox_display_generated_audio":false,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Microsoft Power Platform Blog","distributor_original_site_url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts\/120","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/users\/122"}],"replies":[{"embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/comments?post=120"}],"version-history":[{"count":1,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts\/120\/revisions"}],"predecessor-version":[{"id":131119,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts\/120\/revisions\/131119"}],"wp:attachment":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/media?parent=120"}],"wp:term":[{"taxonomy":"audience","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/audience?post=120"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/content-type?post=120"},{"taxonomy":"job-role","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/job-role?post=120"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/product?post=120"},{"taxonomy":"property","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/property?post=120"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/topic?post=120"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/coauthors?post=120"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}