Skip to main content

DotNetNuke Upcoming Events setup of Calendar of Events

After much trial and error, spending endless hours on figuring out upcoming module with errors and issues I decided to find a better solution and what’s better solution than a xml and XSL.

I have been using “OTBMedia-UpcomingEvents” since 4.x, but it’s giving lot of issues in 5.0 so the need to find a better solution.

After initial start I realize the sort does not work with XSL as is but going over settings I see that I can manipulate the RSS output of the events RSS in “Template Settings” under settings.

Events >> Settings

[NOTALLDAYEVENT][event:startdate|g][/NOTALLDAYEVENT][ALLDAYEVENT][event:alldayeventtext][/ALLDAYEVENT] - [event:title]

After this manipulation I can easily format the xml in DotNetNuke’s XML/XSL module based on title, as the XML/XSL does not handles date correctly or at least to my knowledge.

XML >> XSL (code)

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="">
<xsl:output method="html" indent="yes"/>
<xsl:param name="TITLE"/>
<style type="text/css">
.xmlEventLink a:link, a:active, a:visited{}
.xmlEventLink a:hover, a:visited:hover{}
<xsl:template match="rss">
  <!-- Do not show channel image -->
  <xsl:for-each select="channel/item">
      <xsl:sort select="title"/>
    <!-- to open links in a new window, change target="_main" to target="_new" -->
    <div class="xmlEventLink"><strong><xsl:value-of select="substring(title,1,19)"/> - <a href="{link}" target="_main"><xsl:value-of select="substring(title,23,50)"/></a></strong></div><br/>

<xsl:template match="description">
    <xsl:value-of select="."/>


To credit the right person, the XML above was originally part of a article/example and was edited for that article/example by (“Lee Sykes DNN Creative Magazine”)


This is not the perfect solution but this is a start to resolve the upcoming events issue with DotNetNuke versions. I will keep tweaking along and see how best I can manipulate to find the perfect solution.

When I get a working solution I will post it along on this blog and may be also on under DotNetNuke tips and tricks.