How to fix: Recurring Meeting Workspace error: ‘g_InstanceID’ is undefined

Note: I'm lifting this from my DataFormWebPart.com blog post , in hopes of the workaround getting more traffic.

Scenarios:

After changing the master page on a Meeting Workspace site, the recurring meeting workspace hyperlinks under “Select a date from the list below” do not work and throw a JavaScript error.

If you create a custom master page and use it for your Meeting Workspaces, a JavaScript error is thrown.

Error:
‘g_InstanceID’ is undefined

Cause:
The g_instanceId global JavaScript variable is declared in a script registered runtime by the Microsoft.SharePoint.Meetings.PropertyBag web control. This control is used in the master page that’s used by Meeting Workspace sites called “MWSDefault.master” (located on server in 12 hive\TEMPLATE\GLOBAL\).

Steps to Reproduce:

  1. Create a new Workspace: Site Actions-> Create Site -> Select [Meetings] Basic Meeting Workspace, click Create.
  2. On Workspace site, add a Calendar list: Site Actions -> Create -> [Tracking] Calendar.
  3. Add a new event to Calendar list, make recurring event, and select [x] Use a Meeting Workspace to organize attendees, agendas, documents, minutes, and other details for this event. Click OK.
  4. Follow steps to create workspace for Calendar event. Go to workspace.
  5. Change master page for workspace: Site Actions -> Site Settings -> [Look and Feel] Master page -> select any master page for Site Master Page and System Master Page. Click OK. Go back to workspace.
  6. Now the links under “Select a date from the list below:” do not work and throw a JavaScript error message: ‘g_InstanceID’ is undefined .

Workaround:

  1. Open SharePoint Designer 2007. Go to File | Open Site and connect to SharePoint site.
  2. Expand out _catalogs -> masterpage -> open master page used on Meeting Workspace.
  3. In Code View, add the following line of code under <%@ Import Namespace="Microsoft.SharePoint" %> tag:
    <%@ Register Tagprefix="Meetings" Namespace="Microsoft.SharePoint.Meetings" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
  4. Add the following line of code after opening <body …> tag: <Meetings:PropertyBag runat="server"/>
  5. Save master page, check in (if necessary), and publish major version.