Create a Project Task

Outlook Developer Reference
Create a Project Task

You can create a Project Task object and link it to a Business Project object.

The following C# and Visual Basic for Applications (VBA) examples show how to create a project task linked to an Account object.

  public void CreateProjectTask()
        {
            Outlook.ApplicationClass _app = new Outlook.ApplicationClass();
            Outlook.Application olApp = (Outlook.Application)_app;
            Outlook.NameSpace olNameSpace = _app.GetNamespace("MAPI");
            Outlook.Folders folders = olNameSpace.Session.Folders;
        Outlook.Folder bcmRootFolder = (Outlook.Folder)folders["Business Contact Manager"];
        Outlook.Folder bcmAccountsFldr = (Outlook.Folder)bcmRootFolder.Folders["Accounts"];
        Outlook.Folder bcmProjFolder = (Outlook.Folder)bcmRootFolder.Folders["Business Projects"];
        
        Outlook.ContactItem newAcct = (Outlook.ContactItem)bcmAccountsFldr.Items.Add("IPM.Contact.BCM.Account");
        newAcct.FullName = "Wide World Importers";
        newAcct.FileAs = "Wide World Importers";
        newAcct.Save();

        Outlook.TaskItem newProject = (Outlook.TaskItem)bcmProjFolder.Items.Add("IPM.Task.BCM.Project");
        newProject.Subject = "Project";

        if (newProject.UserProperties["Parent Entity EntryID"] == null)
        {
            Outlook.UserProperty userProp = newProject.UserProperties.Add("Parent Entity EntryID", Microsoft.Office.Interop.Outlook.OlUserPropertyType.olText, false, false);
            userProp.Value = newAcct.EntryID;
        }

        newProject.Save();

        Outlook.Folder bcmProjectTasksFolder = (Outlook.Folder)bcmProjFolder.Folders["Project Tasks"];

        Outlook.TaskItem newProjectTask = (Outlook.TaskItem)bcmProjectTasksFolder.Items.Add("IPM.Task.BCM.ProjectTask");
        newProjectTask.Subject = "Task 1 for Sales Project with Wide World Importers";

        if (newProjectTask.UserProperties["Parent Entity EntryID"] == null)
        {
            Outlook.UserProperty userProp = newProjectTask.UserProperties.Add("Parent Entity EntryID", Microsoft.Office.Interop.Outlook.OlUserPropertyType.olText, false, false);
            userProp.Value = newProject.EntryID;
        }

        newProjectTask.Save();
    }
  Sub CreateProjectTask()
Dim olApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim bcmRootFolder As Outlook.Folder
Dim olFolders As Outlook.Folders
Dim bcmAccountsFldr As Outlook.Folder
Dim bcmProjectsFolder As Outlook.Folder
Dim bcmProjectTasksFolder As Outlook.Folder
Dim existAcct As Outlook.ContactItem
Dim newProject As Outlook.TaskItem
Dim newProjectTask As Outlook.TaskItem
Dim userProp As Outlook.UserProperty

Set olApp = CreateObject("Outlook.Application")
Set objNS = olApp.GetNamespace("MAPI")
Set olFolders = objNS.Session.Folders

Set bcmRootFolder = olFolders("Business Contact Manager")
Set bcmAccountsFldr = bcmRootFolder.Folders("Accounts")

Set newAcct = bcmAccountsFldr.Items.Add("IPM.Contact.BCM.Account")
newAcct.FullName = "Wide World Importers"
newAcct.FileAs = "Wide World Importers"
newAcct.Email1Address = "someone@example.com"
newAcct.Save

Set bcmProjFolder = bcmRootFolder.Folders("Business Projects")

Set newProject = bcmProjFolder.Items.Add("IPM.Task.BCM.Project")
newProject.Subject = "Sales Project with Wide World Importers"

If (newProject.UserProperties("Source of Lead") Is Nothing) Then
    Set userProp = newProject.UserProperties.Add("Parent Entity EntryID", olText, False, False)
    userProp.Value = newAcct.EntryID
End If

newProject.Save

Set bcmProjectTasksFolder = bcmProjFolder.Folders("Project Tasks")
Set newProjectTask = bcmProjectTasksFolder.Items.Add("IPM.Task.BCM.ProjectTask")
newProjectTask.Subject = "Task 1 for Sales Project with Wide World Importers"

If (newProjectTask.UserProperties("Source of Lead") Is Nothing) Then
    Set userProp = newProjectTask.UserProperties.Add("Parent Entity EntryID", olText, False, False)
    userProp.Value = newProject.EntryID
End If

newProjectTask.Save

Set newProject = Nothing
Set newProjectTask = Nothing
Set existAcct = Nothing
Set bcmAccountsFldr = Nothing
Set bcmProjectsFolder = Nothing
Set bcmProjectTasksFolder = Nothing
Set olFolders = Nothing
Set bcmRootFolder = Nothing
Set objNS = Nothing
Set olApp = Nothing

End Sub

See Also

Select a Project Task | Edit a Project Task | Delete a Project Task | Office Developer Center: Outlook 2007