Export Apple Mac iCal/iCloud/Google calendars to Excel and CSV
This document refers to app version 1.14.1 (2024-10-09).
With Export Calendars Pro you can export events and reminders stored in your Mac’s Calendar app into various tabular data files like Excel, CSV or tab-delimited text. Additionaly, you can also export your data directly to the clipboard, either as plain text or as rich text. You’re able to configure the export format individually and save the settings in templates for later use.
Select which calendar items to export, select individual fields from those events, reminders and contacts and how to order them.
The Export Calendars Pro window has two views to work with: the Fetch Events view and the Export view. In the Fetch Events view, you define which events to export. In the Export view, you specify the file format and its settings, the export layout and the sorting options.
In the Fetch Events view, you specify the date range and the calendars you want to export. When changing a search option, the list of fetched events will update immediately. Depending on the calendar type and number of events, this may take a few seconds.
Note: If an event has two or more participants, the generated data file will contain a row for every participant for the same event, but only if your export file layout contains a participant-related field.
The app allows you to search and export events in the context of a time zone independently from the default time zone that you have specified in System Preferences. For quick access, chosen time zones are remembered as presets.
To set the date range, you can select one of the presets from the “Events” menu or click on the “Date Range” button to enter a custom date range. Use the “Back” and “Forward” segments of the “Date Range” button to navigate through time, in context with the selected preset.
Only calendar items from checked calendars will be exported. With a right-click in the calendar list you can bring up the contextual menu to select or unselect all calendars at once.
With search filters, search criteria can be saved for quick access. A search filter remembers all search criteria except for the selected date range. Instead, the selected default such as week, month or year is saved and applied when the search filter is applied.
Calendar events are filtered, displayed and exported in the context of the selected time zone. This is useful if you want to share calendar data different from your default time zone. See also the notes under “Dates and time zones” in the “Layout” section.
Use the search box to filter calendar items by one or more terms. Click the magnifying glass icon in the search box to change the search mode. Available search modes are “Match all (AND)”, “Match any (OR)” and “Match none (EXCL)”. The search is carried out in the event’s title, in the event’s location, in the event’s notes, and in the names of the participants.
When enabled, the search results will include all-day events. When disabled, only events with a specified time will be shown. It is also possible to set that midnight-to-midnight events that have not been explicitly marked as all-day should be treated as such. A tolerance of up to 60 minutes can be set for the start and end time, so that, for example, an event from 0:10 AM to 11:55 PM is also considered to be an all-day event.
When enabled, only events with at least one participant will be listed in the search results.
When enabled, completed reminders are omitted from the search result. This option has no effect on events.
When enabled, reminders without a start date will be listed in the search result. This option has no effect on events.
Export Calendars Pro allows you to create as many export templates as you want for all your needs. Each template can have its own export settings. You can define which fields to export, how to name and order the corresponding columns in the data file, how to sort the exported data and which file format to use. Any changes made to any option is stored immediately to disk.
Use the toolbar items below the “Templates” list box to create, remove, duplicate, rename, import or export templates. The Default Template is a special template that cannot be removed or renamed. Its settings can be edited but will be restored to factory defaults on every app launch.
This is where you define which calendar item or contact field should go into the data file and how they should be ordered. Use the toolbar items below the list to add or remove rows. Note that you can also cut, copy, paste and duplicate items in the list by selecting the appropriate commands from the “Edit” menu. To specify the column order in the resulting data file, click on a “Column Title” cell and drag the column to its new position. To override the default column title, double-click on it. Custom column titles are displayed in bold and will not change when you edit the field type, label or format. To apply the default title, delete the “Column Title” cell’s content.
You can export a field multiple times, for example, if you want to export a value in different formats or extract different data from the field content.
For fields that contain text, such as title, location and notes, you can extract and export text segments via the format menu. The app recognizes parts of postal addresses as well as phone numbers, email addresses and URLs. In addition, field contents can be split and output as follows:
Segment: Takes the entire field content, splits it into segments using the specified separator and exports the specified segment. Example: If the event title is “Project: website”, the separator is “:” and the segment to be exported is “2”, then the value “Website” is exported.
Labeled value: Checks each line of the field content to see if it starts with the specified label and exports the rest of the line. Example: If the event notes contain the line “Hourly rate: 60” and the label is “Hourly rate:”, the value “60” is exported.
If the “Calculate total duration” option is activated, a row is added to each export that outputs the cumulative total duration for each field of type “Duration” and “Travel Time”. The calculation is done for each field in the context of the format selected for each field.
Note: If the export template contains a field of type Participant URL, Participant Role, Participant Name, Participant Status or Participant Type, the export of an event that has multiple participants will be split to multiple rows accordingly. The duration will be output for the first row only. Use the export field Participant List instead of one of the mentioned fields if you do not want to split the event.
Apple’s Calendar app allows you to tie a time zone to an event. If available and if not changed explicitely in the Format menu of a date to export, this time zone will be used when exporting dates. Otherwise, the time zone as specified in the “Fetch Events” view will be used. On OS X 10.11 or later, the app supports the end time zone property. At the moment, this property can only be set on iOS, the Mac Calendar app does not allow you to set a time zone for the end date of an event. Because this property is synced through iCloud, Export Calendars Pro can access it.
Export Calendars Pro allows you to sort the exported data independently from the column order as specified in the “Layout” section. Here you can specify how the exported data will be sorted in the data file. To change the order of a field in the sort order, drag the field’s row up or down. To customize the sort direction of a field, choose “Ascending” or “Descending” from the row’s “Sort Order” menu. Use the “Reset Sort Order” command from the cogwheel button below the table to set the sort order to the current column order as specified in the “Layout” section.
Export Calendars Pro supports several formats for the export.
This setting will create a native Excel file that can be opened with every application that supports Office Open XML Excel files, such Apple Numbers, FileMaker and of course any recent version of Excel (Mac/PC).
Note: When exporting dates, only the “Excel DateTime”, “Excel Date” and “Excel Time” formats will be exported as a date-formatted cell. All other formats are exported as text.
This setting allows you to create a CSV or tab-delimited text file.
Note: The default CSV export settings are only suggestions. Please note that an “incorrect” text encoding or line endings may cause trouble if the target application cannot handle the settings. If an exported file contains invalid characters, make sure you have selected the correct settings for the target application. If you’re unsure, consult the target application’s help files.
This setting allows you to export your data straight to the clipboard. You can choose between plain text format (tab-delimited) or rich text format. For rich text, two different Apple Clipboard formats are provided that most applications do support.
As of macOS 13 Ventura, you can perform a calendar export fully automatically via Apple’s Shortcuts app. Export Calendars Pro provides the shortcut “Export Events & Reminders”, which lets you select a search filter previously created in the app and a corresponding export template. You give the date range to be exported as input to the shortcut. The shortcut returns the created export file as a file object. The export file format as well as the fields to be exported including their format are defined in advance in the export template to be used.
If the search filter or export template no longer exists, the currently active search settings or the built-in default export template will be used.
Returns TRUE if this is an all-day event, FALSE otherwise.
Indicates how the event should be treated for scheduling purposes. Can be “Busy”, “Free”, “Tentative” or “Unavailable”.
The base color of the calendar as a six-digit, three-byte hexadecimal number as used in HTML, CSS, SVG – for example, “#FF9900”.
A unique identifier for the calendar.
The title of the calendar.
The account to which this calendar belongs.
The source type representing the account to which the calendar belongs. Can be “Local”, “CalDAV”, “Exchange”, “Subscription”, “Birthday” or “MobileMe”.
The calendar’s type. Can be “Local”, “CalDAV”, “Exchange”, “Subscription” or “Birthday”.
Returns TRUE if this is a completed reminder, FALSE if this is an uncompleted reminder or an empty string, if the calendar item is an event.
The date on which the reminder was completed.
This value is TRUE if and only if the event is part of a repeating event and one or more of its attributes have been modified from the repeating event’s default attributes. Returns FALSE otherwise.
The date by which the reminder should be completed.
The duration, calculated from the difference between the end date and the start date.
The end date of the event as a date. For reminders, this value is calculated. If there is no end date, the completion date is returned. If there is no completion date, the due date is returned.
The end time zone for the calendar item. If empty, the start time zone is returned. If the start time zone is empty, the calendar item is a floating event. A floating event is not tied to a particular time zone. It occurs at a given time regardless of the time zone — for example, “lunch at noon.”. Available in OS X 10.11 or newer.
The date that this calendar item was created.
A unique identifier for the event or reminder.
The calendar item’s external identifier as provided by the calendar server. This identifier is shared across multiple devices.
The date that the calendar item was last modified.
The notes associated with the calendar item. Notes can be exported “as-is”, or certain data types can be extracted from it, such as address data, phone numbers, and email addresses. This field can also be split into segments using a customizable separator. Each segment can then be exported to a separate column. The data to extract can be specified in the “Format” menu.
The status of the event. Can be “None”, “Confirmed”, “Tentative”, “Canceled” or “Unknown”.
The title for the calendar item. This field can also be splitted into segments using a customizable separator. Each segment can then be exported to a separate column. The data to extract can be specified in the “Format” menu.
The location associated with the calendar item.
The original occurrence date of an event if it is part of a recurring series.
The participant’s name.
The participant’s role in the event. Can be “Unknown”, “Required”, “Optional”, “Chair” or “None”.
Represents a participant’s attendance status for an event. Can be “Unknown”, “Pending”, “Accepted”, “Declined”, “Tentative”, “Delegated”, “Completed” or “In Process”.
Represent’s a participant’s type. Can be “Unknown”, “Person”, “Room”, “Resource” or “Group”.
The URL representing this participant.
A comma-separated list of all participants. Can be filtered by status, role and type.
A reminder’s priority as a string. Can be “Low”, “Medium” or “High”.
A reminder’s priority as a numerical value. Can be 1 (low), 2 (medium) or 3 (high).
The recurrence rules for the calendar item in a human readable format – for example, “Every month on the 1st Sunday, ends on 03/03/2019”.
The start date of the event as a date. For reminders, this value is calculated. If there is no start date, the due date is returned. If there is no due date, the completion date is returned.
The start time zone for the calendar item. If empty, the calendar item is a floating event. A floating event is not tied to a particular time zone. It occurs at a given time regardless of the time zone — for example, “lunch at noon.”. In OS X 10.10 or earlier versions, this property is titled “Time Zone” and is also valid for the end date of an event because these versions of OS X do not support end time zones.
Returns TRUE if the event’s calendar is a subscribed calendar, FALSE otherwise.
Returns the travel time of an event. Available in OS X 10.10 or newer.
The URL associated with the calendar item.