Free online ICS to XML converter
Convert calendar events from ICS to XML or standardized xCal.
Convert ICS to XML online - free
Your file is processed instantly and deleted as soon as you download it.
Import a file from a URL
Paste a direct link to the file. We download it to our server and it is converted exactly like an upload.
How it works
-
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/3
Perform .ics to .xml conversion
After successful file upload, click to convert when you are ready.
-
3/3
Download converted .xml file
Conversion result is ready to download.
How to convert ics to xml file
- Contacts and address books
- No ratings yet.
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.
- Install the parser with
python -m pip install icalendar. - Read the ICS file in binary mode and parse it with
Calendar.from_ical(). - Iterate through the required components and map every source property to the target XML schema.
- Serialize dates and date-times deliberately, preserve time-zone information, and write UTF-8 XML with an XML declaration.
- 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.
| 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.