【问题标题】:Adding an appointment to a non-default calendar linked to iCloud将约会添加到链接到 iCloud 的非默认日历
【发布时间】:2018-11-19 11:28:08
【问题描述】:

我正在尝试将新约会添加到使用“iCloud for Windows”链接的日历中。我已经阅读了我在这个站点上可以找到的关于 Outlook 和日历主题的所有内容,并且我使用 OutlookSpy 浏览了各种对象和文件夹,(我感谢 Dimitry 为这个神话般的工具为编码社区提供的巨大帮助)。

但是,我仍然无法写入非默认日历。

基于这个答案,Creating an appointment to a specific calendar. VBA outlook,这是我的代码...

using Microsoft.Office.Interop.Outlook
...
Application app = new Application();
AppointmentItem appt = null;

app.ActiveExplorer().CurrentFolder = 
app.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderCalendar);
Recipient recipent = app.Session.CreateRecipient("Jobs"); 

appt = app.CreateItem(OlItemType.olAppointmentItem);
appt.Subject = "Subject goes here ...";
appt.Location = "Address/Suburb/State";
appt.Body = "Job GPS: " + "-1234567 987654";
appt.Start = DateTime.Now;
appt.End = appt.Start.AddHours(2);

app.ActiveExplorer().CurrentFolder.Items.Add(appt); <--- Fails here

我不确定我要写入的日历是否是非 Outlook 日历,或者我只是在尝试保存约会之前遗漏了某些内容。

我们将不胜感激。

【问题讨论】:

    标签: c# outlook calendar


    【解决方案1】:

    MAPIFolder.Items.Add 只接受一个字符串(消息类)或OlItemType 枚举之一(例如OlItemType.olAppointmentItem = 1)

    您需要使用Namespace.GetSharedDefaultFolder 而不是GetDefaultFolder,后者仅用于重置 OUTlook 中主动选择的文件夹(为什么?)。

    【讨论】:

    • 我的想法是选择 iCloud 对象内的“工作”日历,使其成为默认文件夹,然后向其中添加约会。 Namespace("MAPI").GetSharedDefaultFolder 需要收件人,我的代码现在在此命令上出错。此外,现在,我不确定 Recipient 应该是“iCloud”还是“Jobs”。
    • 您应该是可以唯一解析给该邮箱所有者的东西。如果不是 Exchange 邮箱,则使用 Namespace.Stores 获取该文件夹的父存储,然后调用 Store.GetDefaultFolder(olFolderCalendar)
    • GetSharedDefaultFolder 与共享文件夹而非默认文件夹之间有区别吗?我的 Outlook 配置包括 3 个邮箱,其中一个有 2 个额外的别名,以及指向 Apple 用户日历的“iCal for Windows”日历专用链接。这是我需要在其中插入约会的最后一个日历。从您上一条评论中,我认为我需要先识别此日历所在的商店,然后获取默认(共享)文件夹是否正确?
    • GetSharedDefaultFolder 仅限 Exchange。听起来您使用的不是 Exchange。
    • 我很抱歉德米特里,我应该在一开始就提到。我们使用的是 Office 365(但 Outlook 在每台 PC 上本地安装)。
    猜你喜欢
    • 1970-01-01
    • 2013-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-16
    • 2014-07-01
    相关资源
    最近更新 更多