Adding a custom event calendar to Dynamics CRM 4.0 can help team members stay in synch on events, milestones, and deadlines and can help provide visibility into major events. Although CRM 4.0 provides a calendar view in the product, a custom calendar is often needed to show events that are not time-based and are not linked to appointments or service activities.
This blog post provides examples of how various industries can utilize a custom calendar and provides technical details for how a custom calendar can be implemented.
One example of the potential use of a custom calendar is in the real estate industry. If the major milestones of a real estate transaction (appraisal, inspection, closing, possession, etc.) are stored as dates on the Opportunity record, then those dates can be shown on a calendar along with the client’s name and milestone description. This can help keep office team members, clients, and third-parties informed of major milestones for a real estate office’s transactions.
Another industry or team that can benefit from a custom calendar within Dynamics CRM is one that manages deadlines for tradeshow participation. Having been involved with several tradeshows in my own career I know that it takes a tremendous amount of coordination effort to make sure everything comes together.
Demonstration
In the following example, I created a custom entity named “Tradeshow” to track the various shows that a company could participate in and the related deadlines.

Although it’s possible to list the tradeshows and deadlines in a view or in a custom report, using a calendar view is often beneficial to show overlaps in deadlines and to better visualize upcoming events.
A calendar view showing “MS Gold Partner Expo” and another trade show might appear like this:
Each entry in this calendar is a hyperlink that will display the Tradeshow record when clicked. Also, the calendar could be extended to show a checkmark image when the milestone or deadline is completed.
Choices for Implementing a Custom Calendar
There are several approaches you can take to populate and display a calendar within Dynamics CRM.
Build It
Depending on your company’s technical expertise, you might choose to build the calendar from scratch as an ASP.NET application, as a SQL Reporting Services report, or entirely in JavaScript. For instance, you might decide that the look and behavior of the
Microsoft Webcast Calendar is exactly what you need so you fire up Visual Studio and start in on the application.
Start with Open Source
Rather than start from scratch, though, it’s often best to visit Open Source sites such as CodePlex, SourceForge, or The Code Project to obtain the source code for calendars that might provide most of the functionality that you need. Here are some Open Source options:
License a Component
Another approach is to purchase a license to a programmable pre-built component. There are numerous components available including:
Mashup
Rather than deploy a component to your web server it’s also possible to incorporate a web-based calendar within Dynamics CRM. You can simply add a link in your CRM instance’s SiteMap or ISV.Config settings to point to an online calendar. Many online calendars exist including the following:
Implementing an Events Calendar with ScriptCalendar
I built the Tradeshow calendar (see above) using the JavaScript-based
ScriptCalendar component ($69 server license). The component’s author provides a demonstration copy of the software with the limitation of only showing the first half of the month’s events.
Here are the steps I took to implement the ScriptCalendar component for the Tradeshow example (on a Dynamics CRM 4.0 demo VPC):
1. Download the ScriptCalendar application and extract the files to C:\Program Files\Microsoft Dynamics CRM\CRMWeb\ISV\Altriva\TradeShowCalendar\.
2. Load Visual Studio 2005 and start a new Web Site application. This application queries Dynamics CRM to retrieve event details and writes the event information to an XML file that ScriptCalendar utilizes to display events. (Note: On the ScriptCalendar website you will find a sample ASP.NET C# application the demonstrates how to programmatically create an XML file that ScriptCalendar can utilize to populate the calendar.)
3. Update the Dynamics CRM SiteMap to provide a link to the custom calendar. The URL should point to the default.aspx file you created in Visual Studio. Once the custom ASP.NET applications queries CRM and prepares the XML file for ScriptCalendar, your code should Response.Redirect to the calendar’s main HTML file (scrptcal.htm).
With ScriptCalendar, then, the implementation of a custom calendar is relatively simple. The only custom development needed is the code to query CRM and build the events XML file. However, you may be able to avoid custom code altogether if you schedule a SQL process (e.g., SQL Server Integration Services) to query CRM periodically and refresh the ScriptCalendar XML file. That approach might suffice if up-to-the-minute event information is not a requirement.
Other Uses for a Custom Calendar
Other examples of industries or teams that can use Dynamics CRM combined with a custom calendar to better manage events, milestones, and deadlines include the following:
- Project managers
- Information technology firms
- Sales teams
- Legal firms
- General contractors
- Recruitment firms
- Financial advisors
Essentially, any company or group that coordinates or tracks milestones, events, or deadlines can make use of a standard or custom entity in Dynamics CRM to store important dates and a custom calendar to better visualize the information.