Добавление встречи в календарь не по умолчанию, связанный с iCloud - PullRequest
0 голосов
/ 19 ноября 2018

Я пытаюсь добавить новые встречи в календарь, связанный с помощью «iCloud для Windows».Я прочитал все, что я могу найти на тему Outlook и календарей на этом сайте, и я использовал OutlookSpy для навигации по различным объектам и папкам (и я благодарю Dimitry за огромную помощь, которую он предоставил сообществу программистов для этого невероятного инструмента).

Однако я все еще не могу записать в календарь не по умолчанию.

Исходя из этого ответа, Создание встречи для определенного календаря.Перспектива VBA , вот мой код ...

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, или я простоЯ что-то упустил до попытки сохранить встречу.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 19 ноября 2018

MAPIFolder.Items.Add принимает только строку (класс сообщения) или одно из OlItemType перечислений (например, OlItemType.olAppointmentItem = 1)

Вам нужно использовать Namespace.GetSharedDefaultFolder вместо GetDefaultFolder, который используется только для сброса активно выбранного фодлера в OUtlook (почему?).

...