Show Calendar and Maps on Dynamics 365 Online Portals

Summary

  • Dynamics 365 Portal Entity List Controls can be configured to render as a Calendar or Map Control
  • These special controls will not render correctly when the Page Template is linked to a Web Template. A Page Template using “Re-write” mode is required for controls to appear correctly.

September 2020 Update: Here is a post with an alternate option for using maps on a Power Apps portals web page: https://readyxrm.blog/2020/09/18/portals-map/

Showing Calendar and Maps

On a project the other day I configured an Entity List that had date fields.  Configuring an Entity List is a pretty straightforward task when configuring Portals.

Entity List

However, I thought that this kind of data would be better displayed as Calendar layout.  I remembered that this is a standard feature of Entity Lists.  So I opened up the Entity List configuration and enabled the Calendar view.

Enabling Calendar View

I returned to the Portal and refreshed… only to be disappointed.

No Calendar View!

After some research and discovering my own answer on a forum post, I remembered that in order for the calendar (and map) views to display correctly you need to ensure that the web page showing these controls uses a page template that points to a rewrite page and not a web template.

To review from one of my posts from my post on Portals Web Page Structure in 2016, a Web Page record will contain the content to be displayed (such as an Entity List) and the layout will be determined via a Web Template (using HTML/Liquid to describe layout and markup) or directly from an Aspx.net page.  In between the Web Page and the Web Template or Aspx.net page is the Page Template record.  For most Portal Web Pages, they will use a Web Template.

Portal Page Structure

Currently, for the Calendar and Map views, a rewrite page is required. For most recent portals you will need to configure a special Page Template record for this purpose.

Create a Page Template record but instead of the default “Web Template” for the Type field, choose “Rewrite” and specify the value “~/Pages/FullPage.aspx” for the Rewrite URL.

Legacy Page Template

Then configure the Web Page record to use the Page Template pointing to the FullPage.aspx page instead of a Page Template pointing to a Liquid Web Template.

Web Page using “legacy” Page Template

Refreshing the page you will now see the Calendar view on the Entity List page as expected.

Calendar View

Note that you will need to follow the same method if you wanted to render the Entity List as a map.  You first need to enable the map settings in the Entity List:

Entity List Map View

And then the map should be rendered correctly if the web page points to a Rewrite Page Template.

Map View

Summary

The Dynamics 365 Portal has a lot of special features that are not always well known or required some undocumented setups/configurations to make them work correctly.  Hopefully, Microsoft will resolve this issue and allow calendar, map and maybe other views to be configured using Web Templates. 

For now, these steps will help you configure your Entity Lists for more than just lists of records.

Photo by rawpixel on Unsplash

Nick Doelman is a Microsoft Business Applications MVP and will be presenting at Extreme365 in Austin, Texas from December 2-7, 2018.

15 thoughts on “Show Calendar and Maps on Dynamics 365 Online Portals

  1. Hey, This is very helpful. Thank you for the information.
    A quick follow up query on this is if I have a calendar view showing all appointment, can I add a action to those available appointment to let a user book it.

    Like

    1. Hi Aakash, from this calendar view, you can drill down to a different page (configured in the entity list record in the Portals Management App) and it will pass the record GUID as a parameter. The target page can render something an entity form or web form where you let a portal user book it. Great use case!

      Like

  2. Thanks Nick, I’ve used your method to get a map view off my filtered accounts, it displays in the grid, but if I change it to use the redirect template and maps, it shows the maps, but no data.. even when I search.. now I’ve seen that in https://www.engineeredcode.com/blog/power-apps-portals-version-9-1-11-x-release blog post states there’s been some fixes in the portal.. how will the map control work now with the changes in the new portal?

    Like

  3. Can we add events in map view? I want to add click event on dates of Map view which will open popup to add events to Entity List. Can we able to do this?

    Like

    1. Unfortunately the out of the box map control will only provide you with directions to the location. I am researching other ways to interact with other map libraries to achieve what you are looking for as its need for many projects.

      Like

    1. Only certain re-write pages will show the components (e.g. ~/Pages/FullPage.aspx) are you using that or another aspx page in your page template? You might also want to consider using Web Templates and JavaScript, I have a link to do this for maps at the top of my blog and Colin Vermander has a strategy for calendars here: https://colinvermander.wordpress.com/2017/04/19/dynamics-365-portals-implement-fullcalendar-with-liquid/ These methods do require a bit of coding, but allow greater flexibility and more “future proof”

      Like

    1. Yes, what you need to is configure your entity list to show appointments for that specific contact. If it is just for the currently logged in user, the best way is to configure entity permissions using the scope of “contact”. You could add a filter directly in the entity list record specifying to filter on the currently logged in user.

      Like

  4. Hi Nick, This is very helpful. I would like to know if I can show system users all appointments in a calendar view.
    For eg, when a contact is working with the system user X, I would want them to see the availability of the user x before they can book an appointment. Just like how the scheduling assist shows attendees’ availability when you book a meeting. I really appreciate it.

    Like

    1. As long as the user’s appointments are in Dataverse they you could show them on a list, and use the calendar view. A lot would depend on your data structure. All that being said, Microsoft Bookings also provides this type of functionality “out of the box”, and you can use Power Automate to update Dataverse. Just another idea for consideration.

      Like

Leave a comment