Import Calendar from PST file to Outlook for MacOS failed

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)

Hello @SergeiNikitin,

Please answer a few questions to be clear.

  • Did you import with the built-in Outlook For Mac tool?
  • How many events did you add to PST?
  • Are email messages added to PST imported?

Thank you.

  1. Yes.
    image (3).png (29.1 KB)
  2. One event.
  3. PST contains no emails, only calendar event.

@SergeiNikitin
We have opened the following new ticket(s) in our internal issue tracking system and will deliver their fixes according to the terms mentioned in Free Support Policies.

Issue ID(s): EMAILJAVA-35148

You can obtain Paid Support services if you need support on a priority basis, along with the direct access to our Paid Support management team.

@SergeiNikitin,

In some versions of Outlook for Mac, you need to add an “Inbox” folder for it to import correctly.
We will add this note to the documentation.

try (PersonalStorage pst = PersonalStorage.create("MapiCalendarToPST_out_inbox.pst", FileFormatVersion.Unicode)) {
    FolderInfo calendarFolder = pst.createPredefinedFolder("Calendar", StandardIpmFolder.Appointments);
    // ! Create Inbox folder
    pst.createPredefinedFolder("Inbox", StandardIpmFolder.Inbox);
    calendarFolder.addMapiMessageItem(appointment);
    calendarFolder.addMapiMessageItem(meeting);
}