Convert ics to xml

Free online ICS to XML converter

Convert calendar events from ICS to XML or standardized xCal.

Convert ICS to XML online - free

Uploading…
Selected files exceed the 15 MB total limit. Please select fewer or smaller files.

Your file is processed instantly and deleted as soon as you download it.

How it works

  1. 1/3

    Upload your .ics file

    Click to browse to select your file you want to convert or simply drag & drop your file into selected area.

  2. 2/3

    Perform .ics to .xml conversion

    After successful file upload, click to convert when you are ready.

  3. 3/3

    Download converted .xml file

    Conversion result is ready to download.

How to convert ics to xml file

A calendar application or integration platform may require XML instead of an iCalendar file for importing, querying, archiving, or exchanging event data. Conversion must translate calendar properties into an XML vocabulary; changing the .ics extension does not convert the file.

What the ICS format is

ICS is the filename extension commonly used for iCalendar data, whose core syntax is defined by RFC 5545. It is a UTF-8-capable text format with components such as VEVENT events, VTODO tasks, and VJOURNAL entries. Common properties include UID, DTSTART, DTEND, SUMMARY, LOCATION, attendees, recurrence rules, alarms, and time-zone definitions.

Microsoft Outlook, Apple Calendar, Google Calendar, Mozilla Thunderbird, and many scheduling systems create or import ICS files. They are commonly used for event invitations, calendar exports, appointment transfers, and meeting attachments. ICS is calendar data, not a contacts or CAD format.

What the XML format is

XML is a hierarchical text format that represents structured data with elements, attributes, namespaces, and optional schema definitions. XML supports validation with XSD, querying with XPath, and transformation with XSLT, making it suitable for systems that require a defined interchange or archival structure.

XML has no universal built-in calendar vocabulary. The receiving application must specify its element names, namespaces, required fields, and data types. xCal, defined by RFC 6321, is the standardized XML representation of iCalendar data; use it when the target system supports xCal. Otherwise, map the ICS properties to the recipient's custom XML schema.

How to convert an ICS file to XML

For a one-off conversion, use the converter on 101convert.com: upload the .ics file, choose XML as the output format, start the conversion, and download the resulting .xml file. Check the generated element structure against the importing application's requirements. Do not upload calendars containing confidential information unless the service's handling and retention terms are acceptable.

For repeatable conversions or files requiring controlled field mapping, use a parser rather than regular expressions. Python's icalendar package parses folded lines, escaped text, dates, time zones, and calendar components; the standard-library xml.etree.ElementTree module writes XML.

  1. Install the parser with python -m pip install icalendar.
  2. Read the ICS file in binary mode and parse it with Calendar.from_ical().
  3. Iterate through the required components and map every source property to the target XML schema.
  4. Serialize dates and date-times deliberately, preserve time-zone information, and write UTF-8 XML with an XML declaration.
  5. Validate the result against the recipient's XSD, or generate the RFC 6321 xCal structure if that is the required format.
from icalendar import Calendar
import xml.etree.ElementTree as ET

with open("calendar.ics", "rb") as source:
    calendar = Calendar.from_ical(source.read())

root = ET.Element("calendar")
for component in calendar.walk("VEVENT"):
    event = ET.SubElement(root, "event")
    for source_name, target_name in (
        ("UID", "uid"), ("SUMMARY", "summary"),
        ("DTSTART", "start"), ("DTEND", "end"),
        ("LOCATION", "location"), ("DESCRIPTION", "description")
    ):
        value = component.get(source_name)
        if value is None:
            continue
        data = getattr(value, "dt", value)
        element = ET.SubElement(event, target_name)
        element.text = data.isoformat() if hasattr(data, "isoformat") else str(data)

ET.ElementTree(root).write(
    "calendar.xml", encoding="utf-8", xml_declaration=True
)

This script creates a small custom XML vocabulary, not xCal. Extend the mapping for attendees, organizers, alarms, attachments, recurrence rules, RECURRENCE-ID, EXDATE, and other properties, or replace the element names and namespaces with those required by the target schema.

Quality and compatibility checks

Renaming calendar.ics to calendar.xml leaves the internal iCalendar syntax unchanged and does not produce valid XML.

Time handling requires particular care. Preserve TZID values, UTC offsets, floating times, and daylight-saving rules. Converting a local time to a bare string can shift appointments when another system interprets it in a different time zone. Preserve recurrence rules and their exceptions, including RECURRENCE-ID and EXDATE.

After conversion, verify recurring events, all-day events, alarms, attendees, organizer data, attachments, non-ASCII text, and cancelled events. An iCalendar parser must decode folded lines and escaped values such as \,, \;, and \n; basic string replacement can corrupt field boundaries or text.

ICS vs XML: format comparison

How the ICS and XML formats compare on the properties that matter most for this conversion.

Comparison of the ICS and XML file formats
Property .ICS vCalendar/iCalendar file .XML Extensible Markup Language
Plain-text readable Yes Yes
Data types Typed Typed
Nested structures Yes Yes
Formulas No No
Multiple tables or sheets No —
Typical file size Small Small
Open standard Yes Yes
Best used for Sharing and distribution Data exchange
Introduced 1998 1998
Developer Internet Engineering Task Force (IETF) W3C
MIME type text/calendar application/xml

The database currently does not contain any direct ics file converter links.

Frequently asked questions

Is the ICS to XML converter free?

Yes, converting ICS to XML on 101convert.com is completely free. No registration, email address or installation is required. If you need a higher file size limit or want to convert more files at once, see our plans.

How large can my ICS file be?

You can upload ICS files up to 15 MB and convert up to 100 files at once in a single batch.

What happens to my uploaded files?

Files are processed automatically and deleted from our servers within a few minutes after conversion. We never view or share your files.

Do I need to install any software to convert ICS to XML?

No. The ICS to XML conversion runs entirely online in your browser and works on Windows, Mac, Linux, Android and iPhone.

Did the conversion fail?

In most cases, the cause is an incorrect file format. Please upload a valid ICS file for this ICS to XML conversion. Occasionally, the issue may be on our side. We analyze recurring conversion failures and disable or fix the converter if we detect a defect.

Additional formats for
ics file conversion

Reverse conversion

Convert to xml from
other formats

Share on social media: