Programmatically link the meeting workspace website to the calendar event in SharePoint 2010

Steps Involved:

1.       Open Visual Studio 2010 by going Start | All Programs | Microsoft Visual Studio 2010 | Right click on Microsoft Visual Studio 2010 and click on Run as administrator.

2.       Go to File tab, click on New and then click on Project.

3.       In the New Project dialog box, expand the Visual C# node, and then select the Windows node.

4.       In the Templates pane, select Console Application.

5.       Enter the Name and then click OK.

6.       In the solution explorer, right click on the solution and then click on Properties.

7.       Select the Application tab, check whether “.Net Framework 3.5” is selected for Target Framework.

8.       Select the Build tab, check whether “Any CPU” is selected for Platform Target.

9.       In the solution explorer, right click on the References folder and click on Add Reference.

10.    Add the following references.

1.       Microsoft.SharePoint.dll (C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI\Microsoft.SharePoint.dll)

11.    Double click on Program.cs and add the following Namespaces.

1.       using Microsoft.SharePoint; 
2.       using Microsoft.SharePoint.Meetings; 

12.    Replace Program.cs with the following code snippet.

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using Microsoft.SharePoint;

using Microsoft.SharePoint.Meetings;

 

 

namespace Console

{

    class Program

    {

        static void Main(string[] args)

        {   

            using (SPSite site = new SPSite("http://SERVERNAME:26413/sites/Vijai"))

            {

                using (SPWeb web = site.OpenWeb())

                {

                    //// Get the Calendar list

                    SPList list = web.Lists.TryGetList("Calendar");

                    //// Check if the Calendar list exists

                    if (list != null)

                    {

                        //// Add an event to the Calendar list

                        SPListItem item = list.Items.Add();

                        item["Title"] = "New Event";

                        item["Description"] = "New Event created using SharePoint Object Model";

                        item["Location"] = "First Floor";

                        item["Start Time"] = DateTime.Now;

                        item["End Time"] = DateTime.Now.AddDays(2);

                        item["Category"] = "Business";

                        item["fAllDayEvent"] = false;

                        //// Update the item

                        item.Update();

                        System.Console.WriteLine(item["Title"] + " event is added successfully to the Calendar");

                        //// Get the existing meeting workspace

                        SPWeb mwsWeb=site.OpenWeb("Basic Meeting Workspace");

                        //// Get the Calendar list Id

                        string listId = list.ID.ToString();

                        //// Get the event Id to which the meeting workspace has to be linked

                        int itemId = item.ID;

                        //// Gets an SPMeeting object that has meeting information for the specified Web site

                        SPMeeting meetingInfo = SPMeeting.GetMeetingInformation(mwsWeb);

                        //// Link the meeting workspace website with the newly created event

                        string meetingURL=meetingInfo.LinkWithEvent(web, listId, itemId, "WorkspaceLink", "Workspace");

                        //// Dispose the SPWeb object

                        mwsWeb.Dispose();

                        System.Console.WriteLine(item["Title"]+" event is linked to the workspace "+ meetingURL.ToString());

                        System.Console.ReadLine();

                    }

                    else

                    {

                        System.Console.WriteLine("List does not exists in the site");

                        System.Console.ReadLine();

                    }

                }

            }

        }

    }

}


13.       In the solution explorer, right click on the solution and click on Build.

14.       Hit F5.

Output:

CalendarEvent.jpg

When you click on "Basic Meeting workspace" it will be redirected to the meeting workspace website.