如何使用 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();
}
我正在尝试创建一个应用程序,我在其他日历中添加了一个事件,我对它具有写入权限。 我设法创建了一个应用程序来发送会议邀请。但我想直接添加到日历? 第二步,如果日程发生变化,我想更改活动日期。
任何人都可以告诉我如何创建 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();
}