PST file created using aspose-email-22.12 and this code based on that template: Working with Calendar Items in PST File|Documentation
Date startDate = new Date();
java.util.Calendar cal = java.util.Calendar.getInstance();
cal.setTime(startDate);
cal.add(java.util.Calendar.MINUTE, 30);
Date endDate = cal.getTime();
// Create the appointment
MapiCalendar appointment = new MapiCalendar("LAKE ARGYLE WA 6743", "Appointment", "This is a very important meeting.", startDate, endDate);
// Create the meeting
MapiRecipientCollection attendees = new MapiRecipientCollection();
attendees.add("ReneeAJones@armyspy.com", "Renee A. Jones", MapiRecipientType.MAPI_TO);
attendees.add("SzllsyLiza@dayrep.com", "Szollosy Liza", MapiRecipientType.MAPI_TO);
MapiCalendar meeting = new MapiCalendar("Meeting Room 3 at Office Headquarters", "Meeting", "Please confirm your availability.", startDate,
endDate, "CharlieKhan@dayrep.com", attendees);
String file = System.getProperty("java.io.tmpdir") + File.separator + "MapiCalendarToPST" + System.currentTimeMillis() + " _out.pst";
try (PersonalStorage pst = PersonalStorage.create(file + "MapiCalendarToPST_out.pst", FileFormatVersion.Unicode)) {
FolderInfo calendarFolder = pst.createPredefinedFolder("Calendar", StandardIpmFolder.Appointments);
calendarFolder.addMapiMessageItem(appointment);
calendarFolder.addMapiMessageItem(meeting);
}
After importing that into Outloook for Mac (Version 16.70, 23021201) there are the following entries in the log file:
02/17/2023 16:33:59.514 OUTLOOK (0xeb7a) 0x1 Microsoft Outlook outlook.import ibwz6 Medium Import Type Distribution {"ImportType": "PST"}
02/17/2023 16:33:59.514 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.import 8m8dg Medium PST Import {"PSTFileSize": 271360}
02/17/2023 16:33:59.517 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD5B57EB10", "Duration(ms)": 0, "Query": "BEGIN IMMEDIATE TRANSACTION"}
02/17/2023 16:33:59.517 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD5B57EB10", "Duration(ms)": 0, "Query": "INSERT INTO Folders (Record_ModDate,Record_AccountUID,Folder_ParentID,Folder_FolderClass,Folder_FolderType,Folder_SpecialFolderType,Folder_Name,Folder_ContainsPartialDwnldMsgs,Record_ExchangeOrEasId,Record_ExchangeChangeKey,Folder_OnlineFolderType,Folder_IgnoreReminders,Folder_SubFolderSyncMapReset,Folder_Subscribed,Folder_SyncMapReset,Folder_O365GroupUID,Folder_FolderOrder,Folder_FavoriteOrder,PathToDataFile) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,:pathtofile)"}
02/17/2023 16:33:59.518 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD5B57EB10", "Duration(ms)": 1, "Query": "INSERT INTO Files VALUES (?1, ?2)"}
02/17/2023 16:33:59.520 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD5B57EB10", "Duration(ms)": 2, "Query": "COMMIT TRANSACTION"}
02/17/2023 16:33:59.520 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD574531D0", "Duration(ms)": 0, "Query": "SELECT PathToDataFile FROM Folders WHERE Record_RecordID =?"}
02/17/2023 16:33:59.522 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD5740A070", "Duration(ms)": 0, "Query": "SELECT PathToDataFile FROM Folders WHERE Record_RecordID =?"}
02/17/2023 16:33:59.522 OUTLOOK (0xeb7a) 0x1 Microsoft Outlook outlook.app.navigation 9uter Medium OlkViewController - init {"ClassInformation": "<OLSyncProgressViewController: 0x60000056f500>"}
02/17/2023 16:33:59.525 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD574531D0", "Duration(ms)": 0, "Query": "SELECT PathToDataFile FROM Folders WHERE Record_RecordID =?"}
02/17/2023 16:33:59.525 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD5740A070", "Duration(ms)": 0, "Query": "SELECT PathToDataFile FROM Folders WHERE Record_RecordID =?"}
02/17/2023 16:33:59.526 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD5B57EB10", "Duration(ms)": 0, "Query": "BEGIN IMMEDIATE TRANSACTION"}
02/17/2023 16:33:59.526 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD5B57EB10", "Duration(ms)": 0, "Query": "INSERT INTO Folders (Record_ModDate,Record_AccountUID,Folder_ParentID,Folder_FolderClass,Folder_FolderType,Folder_SpecialFolderType,Folder_Name,Folder_ContainsPartialDwnldMsgs,Record_ExchangeOrEasId,Record_ExchangeChangeKey,Folder_OnlineFolderType,Folder_IgnoreReminders,Folder_SubFolderSyncMapReset,Folder_Subscribed,Folder_SyncMapReset,Folder_O365GroupUID,Folder_FolderOrder,Folder_FavoriteOrder,PathToDataFile) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,:pathtofile)"}
02/17/2023 16:33:59.526 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD5B57EB10", "Duration(ms)": 0, "Query": "INSERT INTO Files VALUES (?1, ?2)"}
02/17/2023 16:33:59.528 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD5B57EB10", "Duration(ms)": 1, "Query": "COMMIT TRANSACTION"}
02/17/2023 16:33:59.528 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD574531D0", "Duration(ms)": 0, "Query": "SELECT PathToDataFile FROM Folders WHERE Record_RecordID =?"}
02/17/2023 16:33:59.528 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD5740A070", "Duration(ms)": 0, "Query": "SELECT PathToDataFile FROM Folders WHERE Record_RecordID =?"}
02/17/2023 16:33:59.530 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.calendar c2y53 Verbose CCalendarRecord::StartLoadTimeZone_LockNeeded() {"Details": "no start time zone handle item, setting time zone to default (RecordID=0, UID=, Start time in start timezone=1/1/1601 0:0:0 [0], End time in end timezone=1/1/1601 0:0:0 [0], )"}
02/17/2023 16:33:59.530 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.calendar c2y55 Verbose CCalendarRecord::LoadEndTimeZone_LockNeeded() {"Details": "no end time zone handle item (RecordID=0, UID=, Start=1/1/1601 0:0:0 [0], End=1/1/1601 0:0:0 [0], )"}
02/17/2023 16:33:59.531 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.calendar c2y53 Verbose CCalendarRecord::StartLoadTimeZone_LockNeeded() {"Details": "no start time zone handle item, setting time zone to default (RecordID=0, UID=, Start time in start timezone=1/1/1601 0:0:0 [0], End time in end timezone=1/1/1601 0:0:0 [0], )"}
02/17/2023 16:33:59.532 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.calendar c2y55 Verbose CCalendarRecord::LoadEndTimeZone_LockNeeded() {"Details": "no end time zone handle item (RecordID=0, UID=, Start=1/1/1601 0:0:0 [0], End=1/1/1601 0:0:0 [0], )"}
02/17/2023 16:33:59.533 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD574531D0", "Duration(ms)": 0, "Query": "BEGIN IMMEDIATE TRANSACTION"}
02/17/2023 16:33:59.535 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD574531D0", "Duration(ms)": 1, "Query": "INSERT INTO CalendarEvents (Record_ModDate,Record_FolderID,Record_AccountUID,Calendar_AllowNewTimeProposal,Calendar_AttendeeCount,Calendar_DismissTime,Calendar_EndDateUTC,Calendar_HasReminder,Calendar_IsRecurring,Calendar_MasterRecordID,Calendar_RecurrenceID,Calendar_StartDateUTC,Calendar_SyncBlocked,Calendar_UID,Record_UUID,Record_ExchangeOrEasId,Record_ExchangeChangeKey,Calendar_ItemMigrationStatus,PathToDataFile) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,:pathtofile)"}
02/17/2023 16:33:59.536 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD574531D0", "Duration(ms)": 0, "Query": "INSERT INTO Files VALUES (?1, ?2)"}
02/17/2023 16:33:59.537 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD574531D0", "Duration(ms)": 1, "Query": "INSERT INTO CalendarEvents_Categories (Record_RecordID,Record_FolderID,Category_RecordID) VALUES (?1,?2,?3)"}
02/17/2023 16:33:59.537 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD574531D0", "Duration(ms)": 0, "Query": "INSERT INTO CalendarEvents (Record_ModDate,Record_FolderID,Record_AccountUID,Calendar_AllowNewTimeProposal,Calendar_AttendeeCount,Calendar_DismissTime,Calendar_EndDateUTC,Calendar_HasReminder,Calendar_IsRecurring,Calendar_MasterRecordID,Calendar_RecurrenceID,Calendar_StartDateUTC,Calendar_SyncBlocked,Calendar_UID,Record_UUID,Record_ExchangeOrEasId,Record_ExchangeChangeKey,Calendar_ItemMigrationStatus,PathToDataFile) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,:pathtofile)"}
02/17/2023 16:33:59.537 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD574531D0", "Duration(ms)": 0, "Query": "INSERT INTO Files VALUES (?1, ?2)"}
02/17/2023 16:33:59.538 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD574531D0", "Duration(ms)": 0, "Query": "INSERT INTO CalendarEvents_Categories (Record_RecordID,Record_FolderID,Category_RecordID) VALUES (?1,?2,?3)"}
02/17/2023 16:33:59.538 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD5740A070", "Duration(ms)": 0, "Query": "SELECT PathToDataFile FROM Folders WHERE Record_RecordID =?"}
02/17/2023 16:33:59.538 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD5DCAAB50", "Duration(ms)": 0, "Query": "SELECT COUNT(*) FROM RecordLocks WHERE Record_UUID = ? AND ProcessID = ? AND ProcessStartTime = ? AND TransactionID = ?"}
02/17/2023 16:33:59.538 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD574531D0", "Duration(ms)": 0, "Query": "SELECT BlockID,BlockTag FROM Folders_OwnedBlocks WHERE Record_RecordID = ?1"}
02/17/2023 16:33:59.538 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD574531D0", "Duration(ms)": 0, "Query": "DELETE FROM Folders_OwnedBlocks WHERE Record_RecordID = ?1"}
02/17/2023 16:33:59.538 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD574531D0", "Duration(ms)": 0, "Query": "SELECT Folder_ParentID FROM Folders WHERE Record_RecordID =?"}
02/17/2023 16:33:59.538 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD574531D0", "Duration(ms)": 0, "Query": "SELECT PathToDataFile FROM Folders WHERE Record_RecordID =?"}
02/17/2023 16:33:59.538 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD574531D0", "Duration(ms)": 0, "Query": "DELETE FROM Folders WHERE Record_RecordID=:recordid"}
02/17/2023 16:33:59.538 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD574531D0", "Duration(ms)": 0, "Query": "INSERT INTO Files VALUES (?1, ?2)"}
02/17/2023 16:33:59.540 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD574531D0", "Duration(ms)": 1, "Query": "COMMIT TRANSACTION"}
02/17/2023 16:33:59.540 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD5B57EB10", "Duration(ms)": 0, "Query": "SELECT PathToDataFile, Record_Recover FROM CalendarEvents WHERE Record_RecordID =?"}
02/17/2023 16:33:59.541 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD5740A070", "Duration(ms)": 0, "Query": "SELECT PathToDataFile FROM Folders WHERE Record_RecordID =?"}
02/17/2023 16:33:59.541 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.dataprovider.sql 85dx0 Verbose sqlite3 profile {"Connection": "0x00007FAD5B57EB10", "Duration(ms)": 0, "Query": "SELECT PathToDataFile FROM Folders WHERE Record_RecordID =?"}
02/17/2023 16:33:59.541 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.import 8m8df Medium PST Import Distribution by records {"PSTNumberOfFolderItems": 3, "PSTNumberOfMailItems": 0, "PSTNumberOfCalendarItems": 2, "PSTNumberOfContactItems": 0, "PSTNumberOfTaskItems": 0, "PSTNumberOfNoteItems": 0, "PSTNumberOfFailedFolderItems": 0, "PSTNumberOfFailedMailItems": 0, "PSTNumberOfFailedCalendarItems": 0, "PSTNumberOfFailedContactItems": 0, "PSTNumberOfFailedTaskItems": 0, "PSTNumberOfFailedNoteItems": 0}
02/17/2023 16:33:59.541 OUTLOOK (0xeb7a) 0xd74d000 Microsoft Outlook outlook.import ibwz3 Medium Import Messages for Telmetry {"ImportedFile": "MapiCalendarToPST1676638975591 _out.pstMapiCalendarToPST_out.pst", "Status": "Success"}
and the export folder is created:
image (1).png (50.6 KB)
but it does not contain the Calendar folder and the imported event. Account folders and calendars also do not contain it.
image (2).png (12.4 KB)