CSV to ICS
Documentation

How to use CSV-to-ICS Converter

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.

How to install and start CSV-to-ICS Converter

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.

  1. If you haven't already, download CSV-to-ICS Converter. We won't ask your email address, there's no sign up required, and the download is completely free.
  2. After downloading, open the Downloads folder and look for the file file named CsvToIcs_Setup.exe. Double-click the file or right-click the file and select Open.
  3. The CSV-to-ICS Converter installer will open. After reviewing the license terms, check the I agree box and then click the Next button to continue with the installation.
  4. After the installation has completed, CSV-to-ICS Converter will automatically start. Application shortcuts will be also added to the Start menu and Windows desktop for later use.
  5. The main CSV-to-ICS Converter window will appear after a few seconds. If this is the first time the app has been started, a web page will also appear with some information to help you get started. From this point, you can start converting CSV files to ICS files. The following sections explain how to do that.

How to format a text file to be capable of being converted into an ICS file

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:

An example CSV file that can be converted into an ICS file.

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.

Field Name Variations Description
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 number formats".

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 number formats".

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 Standard Time". Each event can have a time zone specified. A mix of multiple time zones is supported.

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 <johndoe@gmail.com>") or just an email address.

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.

How to customize the mapping of input columns to ICS data fields

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.

How to convert a CSV file to an ICS file

You can follow these simple steps to convert a single CSV file to an ICS file:

  1. Activate the Convert a single file tab, if it's not already displayed.
  2. Select an input CSV file by entering the full path and file name in the Input file field, or by clicking the "..." button to browse for a file to open. The file needs to have a .csv, .tsv, or .txt extension. Recently selected files can be accessed by clicking the drop-down arrow.
  3. Specify an output ICS file by entering the full path and file name in the Output file field, or by clicking the "..." button to enter a file to save. If the output file or folder doesn't already exist, it will be created. Otherwise, the previous file will be overwritten.
  4. After specifying the input and output file names, the Convert button will become enabled, as shown in the example below:
    The 'Convert a single file' tab is where an input CSV file and output ICS file can be specified. Click the Convert button to perform the file conversion.
  5. Click the Convert button to perform the conversion. Depending on the size of the input file, this might take a few seconds. When the conversion completes, the window will update to show the result.
    After clicking the Convert button, the window will refresh to show whether the file conversion was successful.

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.

How to automatically convert multiple CSV files into ICS files

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:

  1. Purchase and activate the Ultimate Edition, if you haven't already.
  2. Select the Automatically convert files tab if it's not already displayed.
  3. The first time the tab is displayed, the input and output folder fields will be empty and will need to be specified. CSV-to-ICS Converter will remember the specified folder names.
    The 'Automatically convert files' tab is where an input folder containing CSV files can be specified. The files will be automatically converted into ICS files and stored in the specified folder or uploaded to your website.
  4. To specify a folder, enter the folder name or click the "..." button to browse for the folder. Previously specified folders can be selected by clicking the drop-down button. The output folder doesn't need to be on your local hard drive. It could also be a network folder, cloud drive folder, or other external folder. If the output folder doesn't exist it will be created.
  5. Click the Convert Now button to perform the conversion. The Log will refresh to show the conversion results.
    A log will show when CSV files have been automatically converted into ICS files.
  6. If you leave CSV-to-ICS Converter running, the specified input folder will be monitored for changes. Any new or updated CSV files will be automatically converted into corresponding ICS files in the specified output folder.

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 be configured to run as a Windows service, where it will quietly monitor your CSV files for changes and automatically generate corresponding ICS files.

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.

CSV-to-ICS Converter can be configured to run in the background, where it will quietly monitor your CSV files for changes and automatically generate corresponding ICS files.

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.

The CSV-to-ICS Converter tool can be minimized to the Notification Area. Double-click the icon to re-open the CSV-to-ICS Converter window.

How to automatically upload converted ICS files to a website

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:

  1. Purchase and activate the Ultimate Edition, if you haven't already.
  2. Select the Automatically convert files tab if it's not already displayed.
  3. The first time the tab is displayed, the input folder will be empty and will need to be specified. CSV-to-ICS Converter will remember the specified input folder. To specify an input folder, enter the folder name or click the "..." button to browse for the folder. Previously specified folders can be selected by clicking the drop-down button
  4. Click the Output to FTP server option.
  5. Enter your FTP server name (or IP address). Also include the path on the FTP server where the generated ICS files should be uploaded. Example: "ftps://csv-to-ics.com/calendars".
  6. Enter your FTP server port number, username, and password. The port number is usually 20 or 21, but might be different. Contact your network administrator if you're not sure.
  7. Click the Convert Now button to perform the conversion and upload the files. The Log will refresh to show the results. If you minimize CSV-to-ICS Converter or leave it running, the input folder will continue to be monitored for new or updated CSV files. Corresponding ICS files will be automatically uploaded to your FTP server as needed.
    An FTP server can be specified. Whenever a CSV file is automatically converted into an ICS file, the generated ICS file will be uploaded to the specified FTP server.

How to activate or upgrade a license

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:

Feature Free
Edition
Pro
Edition
Ultimate
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) $19.95
Buy Now
$29.95
Buy Now
Perpetual license (never expires) $59.95
Buy Now
$119.95
Buy Now

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.

How to update to a newer version.

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.

CSV-to-ICS Converter can be configured to automatically check for updates, so you'll always have access to the latest and best CSV-to-ICS Converter.

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.

How to specify a different directory for the application data and settings.

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").

Example:

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.

How to get CSV-to-ICS Converter customized for your specific needs

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!

How to get additional 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.

How to uninstall CSV-to-ICS Converter

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.

Contact Us


We're here to help. Please let us know if you have any questions, suggestions, or customization requests. You can contact us directly at support@csv-to-ics.com, or by submitting the form below. We'll respond as soon as we can.


Discussion


Do you have any questions or comments? Please join the discussion below or contact us directly.