CSV-to-ICS Converter is a simple and free tool for converting text files (CSV or TSV) into ICS calendars - all in the privacy of your own computer. The basic features are very easy to use and the following sections will help get you started.
CSV-to-ICS Converter also includes some advanced capabilities which could be overlooked. This documentation will help you get the most out of CSV-to-ICS Converter.
We hope you'll find this documentation useful. If you have any ideas or suggestions on how the documentation could be improved, please let us know.
CSV-to-ICS Converter runs on Windows 11, 10, 8.x, and 7. It requires .NET Framework 4.6.2 or later, which is already included on most Windows installations.
CSV-to-ICS Converter can process text files that are formatted with comma-separated values (CSV) or tab-separated values (TSV). These files can be created in any spreadsheet editor, such as Excel or OpenOffice. The first row can be a header, defining the field names for data in the following rows. If a header row isn't specified, you'll need to first specify how the column indexes map to data fields. The Free Edition can convert files that contain 50 or fewer events (rows). The Pro and Ultimate Editions have no limitation on how many events can be in a converted file.
An example CSV file is shown below:
The table below defines the default field names supported by CSV-to-ICS Converter, along with the possible field name variations. The fields can be defined in any order and the only mandatory fields are Title and Start (or Start Date and Start Time). All other fields are optional. If your fields have different names or if your file does not include a header row, the column mappings can be customized when using the Ultimate Edition.
|Title||Subject, Summary, Event||The event title text.|
|Location||Address, Room||The event location.|
|Category||Categories||The event category. If there are multiple categories, separate them with semicolons. Example: "Work; Important; Follow-up"|
|Classification||Class||The event classification. Example values are PUBLIC, PRIVATE, CONFIDENTIAL, UNCLASS,
CLASSIFIED, SECRET/NOFORN, TOP SECRET, etc.
This field is only supported in the Ultimate Edition.
|Priority||Priority Level, Importance||The event priority ("High", "Medium", "Low", or blank).|
|Description||Body, Message, Detail, Details, Notes, Memo||The event description.|
|URL||Webpage, Website, Web Page, Web Site, Related Page, Related URL||The URL of a webpage that is associated with the event. Some calendar programs don't import the URL field, so if you don't see the URL after importing the generated ICS file in your calendar program, try putting the URL in the Description field instead.|
|Start||Start Date/Time, Starting Date/Time, Begin||The event starting date and time. For an all-day event, just the date is needed. The
format should match the date/time format used by Windows, as specified in the
Control Panel, under "Clock, Language, and Region > Change date, time, or
Use this field when you want to combine the starting date and time into a single field. If you want to separate the date and time fields, use the Start Date and Start Time fields instead.
|Start Date||Starting Date, Begin Date||The event starting date.|
|Start Time||Starting Time, Begin Time||The event starting time. Leave blank for all-day events.|
|End||End Date/Time, Ending Date/Time, Finish, Due||The event ending date and time. For an all-day event, just the date is needed. The
format should match the date/time format used by Windows, as specified in the
Control Panel, under "Clock, Language, and Region > Change date, time, or
Use this field when you want to combine the ending date and time into a single field. If you want to separate the date and time fields, use the End Date and End Time fields instead. If none of these fields are included, the Duration field will be used to calculate the ending date/time.
|End Date||Ending Date, Finish Date, Due Date||The event ending date.|
|End Time||Ending Time, Finish Time, Due Time||The event ending time. Leave blank for all-day events.|
|Duration||Length||The event duration. The value should be formatted as "N span", where N is
a number of span is "minutes", "hours", "days", "weeks",
or "months". Example: "30 minutes".
This field can be used as an alternative to the End, End Date, and End Time fields. The ending date/time will be calculated when this field is present.
|Time Zone||Timezone, Time-Zone, Timezone Name, Timezone ID, TZ, TZID||The event time zone. The value should be one of the time zone names supported by Windows, such as "Central
Each event can have a time zone specified. A mix of multiple time zones is
If not specified, the default time zone specified in the Options will be used. Unless you've changed the default time zone option, it will be the same as the local time zone used by Windows.
NOTE: If the Export time zone Option is unchecked, this field will be ignored.
|All Day||All Day Event, Entire Day, All-Day, All-Day Event||An all-day flag used for events that occur over the span of an entire day, such as
birthdays and holidays.
Values that are blank, "No", or "False" will be treated as non all-day events, while values of "X", "Yes", or "True" will be treated as all-day. This format is also used by the Recurs Daily, Recurs Weekly, Recurs Monthly, and Recurs Yearly fields.
|Free/Busy||Busy, Busy Status||The busy status of an event. This status will be generated to both TRANSP and
X-MICROSOFT-CDO-BUSYSTATUS properties in the output. Compatible software, such as
Outlook and Google Calendar, will show the event status accordingly.
Supported values are "free", "tentative", "busy", and "OOF" (out of office). Only "free" and "busy" are used for generating TRANSP values that are used by calendar programs other than Outlook.
|Transparency||Transp||This field is similar to the Free/Busy field, but potentially supported in other
calendar programs besides Outlook. Supported values are OPAQUE or TRANSPARENT. A
value of OPAQUE means the event is considered busy and will block scheduling of
other events at that time. A value of TRANSPARENT means the event is considered free
and will not block scheduling of other events at the same time.|
This field is only supported in the Ultimate Edition.
|Reminder Time||Popup, Popup Reminder, Popup Reminder Time, Reminder Time, Alert, Alert Time, Notification, Notification Time||The time before the event starts when a reminder should appear. If blank, there will be no reminder. Otherwise, specify the length of time as either a time of day or "N span", similar to the Duration field's format. If a time of day is specified and a date is specified in the Reminder Date field, the reminder will appear at the specified time on that date. If only a time of day is specified, the reminder will appear at the specified time on the start date of the event.|
|Reminder Date||Popup Reminder Date, Alert Date, Notification Date||The date when a reminder should appear. The Reminder Time field can be used to also specify the time of day the reminder should appear on the reminder date. Leave blank if no reminder or if the Reminder Time field is an offset (such as "15 minutes") from the event start time.|
|Required Attendees||Attendee, Attendees, Recipients, Required, To||Required attendees for a meeting request. Multiple attendees can be separated with
semicolons. Attendees can be specified with a name followed by an email address
(example: "John Doe <email@example.com>") or just an email
Note: CSV-to-ICS Converter won't automatically send a meeting notice. This will be up to the software used to import the resulting ICS file. For example, if importing into Outlook, each imported meeting will need to be opened and the Send button clicked in order to send the converted meeting notices.
|Optional Attendees||Optional, CC||Optional attendees for a meeting request, formatted the same as Required Attendees. These attendees will be on the CC line when a meeting notice is sent.|
|Organizer||Meeting Organizer, From||The meeting organizer, formatted the same as Required Attendees. If
left blank, the account or profile used in the software that imports the meeting
notices from the ICS file will be the meeting organizer.
If importing into Outlook, do not include an Organizer column. If the Organizer column is specified, the required and optional meeting attendees won't import.
|Recurrence||Recurrence Summary, Recurs, Repeat, Repeats||This field specifies a basic recurrence pattern for the event. The first occurrence
of the series is specified by the Start field. Supported values are
"Daily", "Weekly", "Monthly", and "Yearly".
This field should be blank for events that don't recur.
This field can be used as an alternative to the separate Recurs Daily, Recurs Weekly, Recurs Monthly, and Recurs Yearly fields.
|Recurs Daily||Daily, Recur Daily||A flag indicating an event that recurs daily. The first occurrence and day-of-week are determined by the Start field.|
|Recurs Weekly||Weekly, Recur Weekly||A flag indicating an event that recurs weekly. The first occurrence and day-of-week are determined by the Start field.|
|Recurs Monthly||Monthly, Recur Monthly||A flag indicating an event that recurs monthly. The first occurrence and day-of-month are determined by the Start field.|
|Recurs Yearly||Yearly, Recur Yearly||A flag indicating an event that recurs yearly. The first occurrence and day-of-year are determined by the Start field.|
|Recurrence End Date||Recurrence End, Recurrence Stop Date, Recurrence Stop||The date when the specified recurrence pattern should end. No additional events will occur after the specified date. Leave blank if the event isn't recurring, doesn't have a known ending date, or if a value has been specified in the Number of Occurrences field.|
|Number of Occurrences||Max Occurrences, Maximum Occurrences, Occurrence Count, Recurrence Count, Occurrences||The maximum number of occurrences of the specified recurring series. Leave blank if the event isn't recurring, doesn't have a known number of occurrences, or if a value has been specified in the Recurrence End Date field.|
|Recurrence Interval||Recur Interval, Repeat Interval, Interval||A number indicating the interval between occurrences of the specified recurrence pattern. For example, if the recurrence pattern is daily and recurrence interval is set to 4, the recurring event will repeat every 4 days. Leave this number blank if the event isn't recurring or should repeat without an interval.|
|ID||UID, Unique ID, Key||A unique identifier for the event. Specifying unique identifiers will help ensure events are not duplicated when importing updated ICS files into other calendar programs.|
|X-label||Software-specific extension properties can be specified. These fill map directly to corresponding extension properties in the generated ICS file. Any column that begins with a X- prefix will be treated as an extension property. Example: ICS X-MOZ-GENERATION. Note, this feature requires the Ultimate Edition. Extension properties will be ignored when using the Pro or Free Edition.|
Additional custom fields can also be present. The values in those fields will be processed when using the Ultimate Edition, or ignored when using the Free or Pro Editions. Custom field labels and values will appear in the event descriptions of the generated ICS file.
Software-specific extension properties, such as X-MOZ-GENERATION, can also be present. Any field name that has an X- prefix will be treated as an extension property. If a value is specified, the extension property will be included within the corresponding VEVENT of the generated ICS file. This is an advanced feature and is only supported in the Ultimate Edition.
If you have column headers that don't match the column names CSV-to-ICS Converter is expecting, or if your files don't include a row header, the mapping of input columns to data fields can be customized when using the Ultimate Edition.
To map column names, make sure the box labeled Input files include a header row containing column names is checked. Next, enter your column names in the list and pick the mapped data fields from the drop-down. You don't need to override the mapping of column names that CSV-to-ICS Converter already recognizes. To delete a mapping, select the row and then press the Delete key.
If your files don't include a header row, you can map fields based on column index, where the left-most column has an index of 1. Uncheck the Input files include a header row containing column names box. Enter the column index values and select the mapped data fields from the drop-down. The index values don't need to be in any particular order and you can skip index values for columns you don't want processed. Note: processing of custom fields and extension properties won't be performed when a column header isn't present.
Column mappings and other settings, such as the folder to monitor for automatic ICS generation, can be saved using the Save Settings button, or loaded using the Load Settings button. Settings are also saved automatically, but this feature makes it possible to transfer settings from one computer to another.
You can follow these simple steps to convert a single CSV file to an ICS file:
The generated ICS file can be imported into almost any calendar app, including Google Calendar, Outlook, VueMinder, PrintableCal, and more. You can send it by email to other people, put it on a website, or do anything else you'd like with the ICS file. If you haven't purchased a license, a small note will appear in the description of the converted events, indicating the ICS file was generated using the Free Edition of CSV-to-ICS Converter. This note can be removed by upgrading to the Pro or Ultimate Edition.
If you have many files to convert, doing them one at a time might become tedious. The Ultimate Edition can convert an entire folder containing CSV files into ICS files. CSV-to-ICS Converter can run in the background or as a Windows service, where it will continue to monitor the specified folder. If any files are added or modified within the folder, updated ICS files will be automatically generated. This automated processing could save untold hours of performing single file conversions. It's a premium feature, but one that could easily pay for itself by freeing up your time to do other more important things.
You can follow these steps to convert an entire folder of CSV files into corresponding ICS files:
If you want CSV-to-ICS Converter to monitor the specified folder even when you're not logged into your computer or running the program, check the Run as Windows service box.
CSV-to-ICS Converter can also be minimized to the notification area rather than the task bar. While minimized, it will continue to run in the background, monitoring the input folder for new or modified CSV files and generating updating ICS files as needed. To configure CSV-to-ICS Converter to be minimized to the notification area, select the Options tab and check the box labeled Minimize to notification area instead of the task bar.
To redisplay the CSV-to-ICS Converter window, click the icon in the notification area, or right-click and select Open CSV-to-ICS Converter. You can review the Log to see if and when ICS files were automatically converted while CSV-to-ICS Converter was running in the background.
If you have a website or an external server where your converted ICS files need to reside, CSV-to-ICS Converter Ultimate Edition can be configured to automatically upload your converted ICS files via an FTP server. This works just like automatically converting CSV files into ICS files in a folder, except the ICS files will be uploaded.
You can follow these steps to configure CSV-to-ICS Converter to automatically upload converted ICS files to an FTP server:
The Free Edition can perform standard conversions of CSV to ICS files contaning fewer than 50 events. For many people, that's all that is needed. You're welcome to use the Free Edition and we hope it will help you out.
If you need more, here's a quick comparison of the features provided in each edition:
|Convert CSV and TSV files to ICS files|
|Convert an unlimited number of events, rather than being limited to a maximum of 50 per file.|
|Remove the CSV-to-ICS Converter "Free Edition" notification from event descriptions.|
|Receive technical support directly from the people who built the product|
|Convert user-defined custom fields.|
|Convert software-specific extension properties (X-prefix).|
|Monitor a folder for updated CSV/TSV files and automatically generate ICS files.|
|Optionally run as a Windows Service.|
|Customize how columns in input files are mapping to data fields in output files.|
|Automatically upload ICS files to an FTP server.|
|Temporary license (expires after 7 days)||$14.95
|Perpetual license (never expires)||$59.95
After purchasing a license, you'll immediately receive an email containing your license key. To activate your license, start CSV-to-ICS Converter, click the Activate tab, and paste your license key in the space provided. After entering your license key, the license will be activated. This might take a few seconds. The screen will update after successful activation. Additional features will be immediately unlocked.
By default, CSV-to-ICS Converter will automatically check for updates when started. If an updated version is available, the Check for Updates tab will be displayed. Recent changes will be listed.
If you're using the Free Edition or a perpetual Pro/Ultimate license with lifetime updates or an active updates subscription, click the Download Latest Version button to update. The installer for the latest version will download and run. After the installer completes, the latest version of CSV-to-ICS Converter will automatically start. Any previous settings and preferences will be still be present after installing the update.
If you prefer CSV-to-ICS Converter to not automatically check for updates when started, this option can be disabled by unchecking the box near the bottom of the Check for Updates tab. You can manually check for updates at any time by clicking the Check for Updates button.
By default, CSV-to-ICS Converter will save its application data and settings to the "C:\Users\CurrentUserName\AppData\Local\VueSoft\CsvToIcsConverter" folder. This folder is tied to the account profile of the currently logged in Windows user. If you'd like to use a common folder for all user profiles, or if you'd like to run the application as a service, a different data folder can be specified via a "-dataDir" command-line option. Open the command prompt (cmd.exe) and cd to the folder where CSV-to-ICS Converter was installed (usually "C:\Program Files (x86)\VueSoft\CsvToIcs").
CsvToIcs.exe -dataDir C:\CsvToIcs\Data
Note: When CSV-to-ICS Converter Ultimate is configured to run as a Windows service, the settings file used by the service will always be located in the "C:\ProgramData\CsvToIcsService" folder. There's no command-line option to override where the service looks for its settings file. If a user logs in and modifies the CSV-to-ICS Converter settings under their profile, those updated settings will be copied to the "C:\ProgramData\CsvToIcsService" folder and the service will automatically load the updated settings.
A log file is located in "C:\ProgramData\CsvToIcsService" folder. Any service errors or activity will be recorded to that log file.
CSV-to-ICS Converter already provides a lot of flexibility. It doesn't expect the fields in the input files to be in any specific order, it provides a mechanism to customize how input fields map to output fields, it supports a large variety of field types, and can also handle custom fields it doesn't recognize. However, we realize there may be cases where the format of your CSV file isn't quite compatible and can't be easily modified. There could be other cases where CSV-to-ICS Converter comes really close to what you need, but some minor tweaks would make it a perfect fit.
For those reasons, we offer a service where we can customize CSV-to-ICS Converter for your specific needs. Please contact us with details about your requirements. We'll analyze your requirements and provide you with an estimate on what it would cost to customize CSV-to-ICS Converter for your exact needs.
Since we're the team that CSV-to-ICS Converter, we're very familiar with how it works and what it would take to be customized. We can perform the customization at a fraction of the cost that paying your own in-house development team would require to implement something else from scratch. We'll also stand behind our work and correct any bugs - free of charge.
If you like what you see in CSV-to-ICS Converter, we can custom develop other software as well. It doesn't need to be a modification to CSV-to-ICS Converter. We're experts at modern Windows app development and can code up just about anything you can imagine. If you have an idea and a budget, but nobody to do the work, please contact us with the details. We'd be happy to help!
Still need help? Please contact us. One of the team members that developed CSV-to-ICS Converter will be happy to assist. If you've purchased an Ultimate license, your support request will move to the front of the queue.
If you decide you no longer want to use CSV-to-ICS Converter, open the "uninstall a program" area of the Control Panel. Look for CSV-to-ICS Converter in the list of installed programs, and double-click to uninstall.
We're here to help. Please let us know if you have any questions, suggestions, or customization requests. You can contact us directly at firstname.lastname@example.org, or by submitting the form below. We'll respond as soon as we can.
Do you have any questions or comments? Please join the discussion below or contact us directly.