Product Family

Convert PST to ICS in C++

High performance PST to ICS conversion using C++ Email library.

How to Convert PST to ICS Using C++

In order to convert PST to ICS, we’ll use

Aspose.Email for C++

API which is a feature-rich, powerful and easy to use document manipulation and conversion API for C++ platform. You can download its latest version directly, just open


package manager, search for Aspose.Email.Cpp and install. You may also use the following command from the Package Manager Console.


PM> Install-Package Aspose.Email.Cpp

Steps to Convert PST to ICS via C++

C++ programmers can easily convert PST file to ICS in just a few lines of code.

  • Load PST file with PersonalStorage::FromFile.
  • Call the SaveAs() method having two parameters.
  • Output ICS file and FileFormat::Ics as parameters.
  • ICS file will be saved at the specified path.
  • Open ICS file in compatible program.

System Requirements

Before running the C++ conversion code, make sure that you have the following prerequisites.

  • Microsoft Windows or a compatible OS with C++ Runtime Environment for Windows 32 bit, Windows 64 bit and Linux 64 bit.
  • Aspose.Email for C++ DLL referenced in your project.

Convert PST to ICS - C++

// Load the Outlook PST file
System::SharedPtr<PersonalStorage> pst = PersonalStorage::FromFile(dataDir + L"Sub.pst");
// Get the Calendar folder
System::SharedPtr<FolderInfo> folderInfo = pst->get_RootFolder()->GetSubFolder(L"Inbox");
// Loop through all the calendar items in this folder
System::SharedPtr<MessageInfoCollection> messageInfoCollection = folderInfo->GetContents();
    auto messageInfo_enumerator = (messageInfoCollection)->GetEnumerator();
    decltype(messageInfo_enumerator->get_Current()) messageInfo;
    while (messageInfo_enumerator->MoveNext() && (messageInfo = messageInfo_enumerator->get_Current(), true)){
        // Get the calendar information
        System::SharedPtr<MapiMessage> calendar = System::DynamicCast<Aspose::Email::Outlook::MapiMessage>(pst->ExtractMessage(messageInfo)->ToMapiMessageItem());
        // Save to disk in ICS format
        calendar->Save(L"\\Calendar\\" + calendar->get_Subject() + L"_out.ics");
  • PST to ICS Conversion Live Demos

    Other Supported Conversions

    You can also convert PST into many other file formats including few listed below.

    PST TO EML (Outlook Email Messages)
    PST TO EMLX (Apple EMLX Format)
    PST TO HTML (Hyper Text Markup Language)
    PST TO MBOX (Electronic Mail Messages)
    PST TO MHTML (Web Page Archive Format)
    PST TO MSG (Outlook & Exchange Format)
    PST TO OFT (Outlook Email Templates)
    PST TO OST (Offline Storage Files)
    PST TO VCF (Virtual Card Format)