# Data Transfer & Migration in The Events Calendar

The Events Calendar makes it easy to create and manage an event website. As your website grows, you collect hundreds or even thousands of events, along with related data such as **venues, organizers, tickets, and attendees**.

Eventually, you may need to move this data to another website, share selected events with external calendars, or regularly import events from other platforms.

For example, you may want to:

- Move hundreds of events from **one WordPress website to another**.

- Export only events from a **specific year, date range, or category**.

- Import events from **Google Calendar, Eventbrite, Meetup, or another calendar feed**.

- Control how imported events are handled and maintained on your website.

Manually recreating this data is time-consuming and increases the chances of missing important information.

Fortunately, The Events Calendar ecosystem provides extensions and integrations that can help you handle these different data-transfer requirements.

In this guide, we'll look at three solutions and explain **when to use each one**:

- **Advanced iCal Export V2**: Create customized iCal feeds to export selected events.

- **WP All Import Addon for The Events Calendar**: Migrate event data between WordPress websites.

- **Event Aggregator: Additional Options**: Get more control over events imported through Event Aggregator.

## Advanced iCal Export V2

If you simply want to **share or export your events to another calendar application**, you don't necessarily need to migrate your entire WordPress event database.

The Events Calendar already provides a built-in event export system that allows events to be exported in **ICS format**. Visitors can download these files and add the events to their personal calendar applications.

However, the default export provides limited control over which events are included. For example, you may want to export only events from a particular year, category, date range, or a specific number of events.

This is where **[Advanced iCal Export V2](https://github.com/mt-support/tec-labs-advanced-ical-export-v2)** becomes useful.

It allows you to add **custom parameters** to your **iCal URLs** so you can create more targeted event feeds based on your requirements.

You can customize your export using parameters such as:

- **Custom date range**

- **Specific year**

- **Number of events**

- **Categories**

You can then create custom iCal URLs and add them to a button or text link on your website.

### How to Create a Custom iCal Feed

Advanced iCal Export V2 allows you to add custom parameters directly to your **The Events Calendar List View URL**. The extension is designed to work with the List View.

[![list view url](https://eventscalendaraddons.com/wp-content/uploads/2026/08/advanced-ical-list-url-1024x477.png)](https://eventscalendaraddons.com/wp-content/uploads/2026/08/advanced-ical-list-url.png)

The available parameters include:

- **ical=1** – generates an iCal feed.

- **custom=1** – enables the custom iCal export.

- **start_date=[date]** – sets the start date. Use the yyyy-mm-dd format.

- **end_date=[date]** – sets the end date.

- **year=[year]** – exports events from a specific year.

- **limit=[number]** – sets the maximum number of events.

- **category=[category-slugs]** – exports events from specific categories.

The ical=1 and custom=1 parameters are required. You can then add the other parameters based on what you want to export.

For example, to export up to 20 events from 2026, you can use:

/events/list/?ical=1&custom=1&year=2026&limit=20

[![custom ical url](https://eventscalendaraddons.com/wp-content/uploads/2026/08/advanced-ical-extension-1024x294.png)](https://eventscalendaraddons.com/wp-content/uploads/2026/08/advanced-ical-extension.png)

You can combine the parameters to create feeds for different requirements, such as a specific category, year, date range, or event limit.

**But what if you want to move your actual event data from one WordPress website to another?**

An iCal feed is useful for sharing events with calendar applications, but a full website migration requires a different approach.

That's where **WP All Import** and the **WP All Import Addon for The Events Calendar** come in.

## WP All Import Addon For The Events Calendar

Managing event data across multiple WordPress websites becomes difficult when you need to move hundreds or thousands of events from one site to another. 

For example, you have an old event website containing **500 events**, along with their venues and organizers. You are launching a new WordPress website and want to move this information without recreating every event manually.  

For this type of migration, you can use **WP All Export** to extract the data from your existing website and **WP All Import** to import it into the new website. 

The basic migration process involves three components: 

- **WP All Export** – extracts data from the **source website**.

- **XML/CSV file** – carries the exported data from one website to another.

- **WP All Import** – imports the data into the **destination website**.

### Why Do You Need the WP All Import Addon? 

**WP All Import** can import data into WordPress, but it does not natively understand the data structure used by **The Events Calendar (TEC)**.  This means it cannot automatically handle or map all TEC-specific data, such as venues, organizers, tickets, attendees, and recurring events.

For example, an event may contain relationships between the event itself, its venue, organizer, tickets, and attendees. These relationships need to be mapped to the correct TEC fields during the import process; otherwise, your data could end up in the wrong places. 

To avoid this, you need an addon that ensures that your event data is handled and mapped correctly during the import: **WP All Import Addon for The Events Calendar**.

The addon extends **WP All Import** with support for The Events Calendar and provides the mapping and data handling required for TEC-specific content. This allows WP All Import to properly process event data and associate it with the appropriate TEC fields during migration. You can migrate the following data using this addon:

- Venues

- Organizers

- Single events, including all-day and multi-day events

- Recurring Events 

- Event Series 

- RSVPs and Attendees

- Tickets Commerce: Tickets, Orders, and Attendees 

Without the addon, WP All Import can still be used for basic WordPress data. However, when your migration includes **The Events Calendar-specific data and relationships**, the addon provides the additional support required to map and import that data correctly. 

### How the WP ALL Import Addon Migration Works 

The workflow is different when you migrate basic WordPress data with WP All Import alone compared with migrating **The Events Calendar-specific data** using the addon.

The following workflow shows how the event data moves from the source website to the destination website **with and without the WP All Import Addon**.

[![wp all addon workflow](https://eventscalendaraddons.com/wp-content/uploads/2026/08/wp-all-import-addon-1024x682.jpg)](https://eventscalendaraddons.com/wp-content/uploads/2026/08/wp-all-import-addon.jpg)

For a complete migration, the plugins you need depend on the type of event data you want to transfer. 

- **[The Events Calendar](https://wordpress.org/plugins/the-events-calendar/)**: for event-related data 

- **[The Events Calendar Pro](https://www.liquidweb.com/software/the-events-calendar/)**: for recurring events and event series 

- **[Events Tickets](https://wordpress.org/plugins/event-tickets/)**: for ticket and attendee-related data 

- **[WP All Export](https://wordpress.org/plugins/wp-all-export/)**: on the **source site** where you are migrating events from 

- **[WP All Import Pro](https://www.wpallimport.com/import-wordpress-csv-xml-excel/)**: on the **destination site** to which you are migrating events

- **[WP All Import Addon](https://github.com/mt-support/tec-labs-wpai-add-on#wp-all-import-add-on-for-the-events-calendar)**: on the **destination site** to which you are migrating events

If you need a detailed walkthrough of the migration process, you can follow the step-by-step migration guide referenced in the addon[ documentation](https://github.com/mt-support/tec-labs-wpai-add-on#wp-all-import-add-on-for-the-events-calendar).

**Now, what if your events aren't coming from another WordPress website at all?**

If your events are managed on external calendars or event platforms, you need a different type of import workflow.

That's where **Event Aggregator** comes in.

## Event Aggregator: Additional Options

When you are managing your events through multiple sources and want to bring them under your WordPress event calendar, you can use the **Event Aggregator extension** for the integration. 

Event Aggregator supports different types of event sources such as** iCalendar (.ics) files**, **Google** **Calendar**, **Eventbrite**, **Meetup**, and** Other URLs** containing supported calendar feeds. 

With Event Aggregator, you can control import source, import type, import frequency, and more.

However, once you start running regular imports, you may need more control over what happens to imported events. For example, how duplicate or removed events are handled, how event descriptions are formatted, or how imported events are displayed. 

This is where **[Event Aggregator: Additional Options](https://github.com/mt-support/tribe-ext-ea-additional-options)** extends the default import functionality.  

The addon provides additional settings for: 

- Global Import settings

- Individual Import settings

- Maintenance settings

Now, let’s understand these additional settings one by one:

### Global Import Settings

Global import settings apply to all Event Aggregator imports. With these settings, you can control the general or default behaviour of your imported events. The addon checks the source during scheduled imports and handles events according to the option you select.

You can access these additional options by navigating to **WordPress Dashboard> Events > Settings > Imports.**

Here you will find the following additional options:

[![global settings](https://eventscalendaraddons.com/wp-content/uploads/2026/08/ea-additional-options-1024x762.png)](https://eventscalendaraddons.com/wp-content/uploads/2026/08/ea-additional-options.png)

- **Delete Duplicate and Removed Events:  **When an event is removed from the source or its unique identifier changes, your website may need to update the corresponding imported event:

Do not delete duplicate/removed events

- Send duplicate/removed events to the trash

- Permanently delete duplicate/removed events

- **Link Directly to the Source Website: **With this setting, you can send visitors directly to the source website instead of sending them to the imported event's page on your website using the following options:

Link to the default single event page

- Link directly to the event website URL

- **Retain Line Breaks in Event Description: **With this option, you can preserve the original formatting and make the imported description easier to read. Here you will find these options:

Remove all line breaks from event descriptions

- Retain all line breaks within event descriptions

- **Block Editor Template: **With this setting, you can choose a layout for your imported events. Here, you have the following options:

**None**: In this option, imported event content will be placed in the Event Details Classic block and displayed using the default layout. 

- **Simple**: In this option, imported event content will be placed in the Block Editor Template, and you can customize the layout by using the tribe_ext_ea_additional_options_simple_template filter. 

- **Custom: **In this option, you can create your own template with the block editor. To do this, create a draft event and use the `[tec_ea_content]` placeholder in a **paragraph block**. Once you save the draft, your custom option will be added to the dropdown.

[**Note**: This option works only for Google Calendar, iCalendar, Meetup, and ICS file import sources.]

[![block template](https://eventscalendaraddons.com/wp-content/uploads/2026/08/Block-editor-template-1024x225.png)](https://eventscalendaraddons.com/wp-content/uploads/2026/08/Block-editor-template.png)

- Once you are satisfied with all the changes, click Save changes. 

Global settings apply to all imports, but sometimes you need different settings for a specific import. 

### Individual Import Settings

Individual import settings provide you with additional options that you can use to customize individual Event Aggregator imports. 

**Note**: You can access these settings after you preview an import for the first time. You can also access them later when you edit a scheduled import. 

[![individual import settings](https://eventscalendaraddons.com/wp-content/uploads/2026/08/individual-import-settings-1024x316.jpg)](https://eventscalendaraddons.com/wp-content/uploads/2026/08/individual-import-settings.jpg)

- **Force Timezone:** By default, imported events keep the timezone of their source. With Force Timezone, you can convert the date/time according to your requirements. 

- **Event Title Prefix: **With this option, you can add text before the title of an imported event to differentiate it from other events. 

- **Event URL:** With this option, you can add the same website URL to all imported events that belong to the same source. 

- **Purge Events:** Delete upcoming events before running the next import. This option helps to prevent duplicate events. 

### Maintenance Settings

Over time, your website may accumulate ignored imported events that are no longer needed.

The **Maintenance Settings** help you automatically clean up these events. You can access them from: **Events > Settings > General > Maintenance**.

[![maintenance settings](https://eventscalendaraddons.com/wp-content/uploads/2026/08/maintenance-settings-ea-1024x654.png)](https://eventscalendaraddons.com/wp-content/uploads/2026/08/maintenance-settings-ea.png)

The following options are available under Maintenance settings:

- **Delete ignored events older than**: With this option, you can choose when ignored events should be permanently deleted. 

- **Ignored events deleted in one ru**n: With this option, you can set a number of ignored events that will be permanently deleted in one cron run. 

- **Cron schedule:** With this option, you can choose how often the automatic cleanup of old events should run. Available options include **hourly, twice a day, daily, and weekly**.

Once you are satisfied with all the changes, click Save changes. 

## Which Data Transfer Solution Should You Use?

The right solution depends on where your event data is coming from and what you want to do with it:

| **Your requirement** | **Recommended solution** |
| -------------------- | ------------------------ |
| Export selected events to a calendar application | **Advanced iCal Export V2** |
| Move events from one WordPress website to another | **WP All Import Addon for The Events Calendar** |
| Import events from external calendars or event platforms | **Event Aggregator** |
| Get more control over Event Aggregator imports | **Event Aggregator: Additional Options** |

## Conclusion

Moving and managing event data doesn't always involve the same type of migration. By choosing the right tool for your specific data-transfer requirement, you can avoid manually recreating events and gain better control over how your event data is exported, migrated, and maintained.