如何使用 C# 在我具有写入权限的其他用户日历中创建事件?

How to create an evet in other user calendar which I have write permision, using C#?

我正在尝试创建一个应用程序,我在其他日历中添加了一个事件,我对它具有写入权限。 我设法创建了一个应用程序来发送会议邀请。但我想直接添加到日历? 第二步,如果日程发生变化,我想更改活动日期。

任何人都可以告诉我如何创建 C# 代码以在其他日历中添加事件? 谢谢你的想法!

已经尝试发送会议邀请,这可行,但需要用户批准,他们不会很好地应用程序。

使用 OutLook = Microsoft.Office.Interop.Outlook;

    public void NovoAtendimento(MeetInfo nwVisit)
    {
        OutLook.Application objOL = new OutLook.Application();
        OutLook.AppointmentItem objAppt = (OutLook.AppointmentItem)objOL.CreateItem(OutLook.OlItemType.olAppointmentItem);
        objAppt.Subject = nwVisit.Titulo;
        objAppt.Body = nwVisit.Detalhe;
        objAppt.Location = nwVisit.Local;
        objAppt.Start = nwVisit.DiaInicio;
        objAppt.End = nwVisit.DiaFim;
        objAppt.MeetingStatus = OutLook.OlMeetingStatus.olMeeting;
        objAppt.RequiredAttendees = nwVisit.Email;
        objAppt.Save();
        objAppt.Send();
        objAppt = null;
        objOL = null;

    }

不使用 Application.CreateItem,而是使用 Namespace.CreateRecipient / Namespace.GetSharedDefaultFolder 检索共享文件夹,然后使用 MAPIFolder.Items.Add 添加约会。

在检查了 Dmitry 的提示后,这是最终有效的程序行:

    public void TestCheckCalendar(MeetInfo usrCall)
    {

        OutLook.Application myApp = new OutLook.Application();
        OutLook.NameSpace myNs = myApp.GetNamespace("MAPI");
        OutLook.Recipient myReci = myNs.CreateRecipient(usrCall.Email);
        OutLook.MAPIFolder calFolder = myApp.Session.GetSharedDefaultFolder(myReci,OutLook.OlDefaultFolders.olFolderCalendar);
        OutLook.Items itemTest = null;
        OutLook.AppointmentItem appItem = null;

        itemTest = calFolder.Items;
        appItem = itemTest.Add(OutLook.OlItemType.olAppointmentItem) as OutLook.AppointmentItem;
        appItem.Start = usrCall.DiaInicio;
        appItem.End = usrCall.DiaFim;
        appItem.Location = usrCall.Local;
        appItem.Subject = usrCall.Titulo;
        appItem.Body = usrCall.Detalhe;
        appItem.Save();


    }