Scenario
As an administrator, you want to make bulk changes to your scheduled events. This could include:
scheduling new events in bulk
mass editing currently scheduled events
mass deleting currently scheduled events
Solution
Use the Bulk Import tool on the Events dashboard.
Accessing the Bulk Import tool
Open the profile menu in the upper right and select Dashboard > Events. On the Events dashboard, the Bulk Import button appears in the top right alongside Schedule an Event and Export CSV.
Click Bulk Import to open the Bulk Import Events form.
The Bulk Import Events form
The form accepts two CSV formats, and both are accepted:
A blank template — a CSV with just the required column headers and no data rows. Click the blank template link in the form's description text to download it.
A CSV previously exported from the Events dashboard via the Export CSV button. This option pre-fills rows with values from existing events, which is ideal when you want to duplicate or edit existing events rather than create new ones from scratch.
Step-by-step
Get a CSV to start from.
To bulk create new events from scratch, download the blank template from the link inside the form.
To bulk edit or delete existing events, go back to the Events dashboard, filter the list to show only the events you want to act on, and click Export CSV. This downloads a CSV with one row per event, pre-filled with the current values, including the id column.
Edit the CSV in your spreadsheet tool (Excel, Google Sheets, Numbers, etc.) and save as CSV. See the column guide below for what each column means and how to fill it in.
To create a new event, add a new row and leave the id column blank.
To edit an existing event, keep the id in place and change the values you want to update.
To delete an existing event, set the DELETE column to 1 on that row.
Upload the CSV. Back in the Bulk Import Events form, click the Click to upload dropzone and select your file. The dropzone label changes to show the filename.
Click Validate. PlusPlus reads the file and pre-imports it for inspection — no changes are committed yet. One of three outcomes follows:
Success (no issues) — the form shows: "Validation complete. Ready to create [X] events, update [Y] events, delete [Z] events." The button changes from Validate to Import. A green toast appears: "The CSV file was pre-imported successfully!"
Issues found — the form shows the same summary plus a section titled "Identified the following issues:" listing each problem in the format: "Error at line [N], will IGNORE it. Message: [reason]". Below that, an Import anyway? heading appears. The Import button is still available — clicking it imports only the rows without errors; the flagged rows are skipped.
Generic error — if the file itself is malformed (wrong format, missing required columns, encoding issue, etc.), the form shows: "Something went wrong." Check the file in your spreadsheet tool and try again.
Click Import. Once you're happy with the validation outcome, click Import. The events are created, updated, or deleted in PlusPlus, and you're navigated back to the Events dashboard. Changes appear immediately.
(Optional) Click Cancel at any time to discard the upload and exit without making changes.
Go deeper
Guide to spreadsheet columns
The CSV — both the blank template and the export — uses the following columns in this exact order. Column names are case-sensitive.
Column | Description | Required for new |
id | Unique identifier for the scheduled event.
| No (must be blank for new events) |
Event Series | The Event Series this event belongs to. The name must exactly match the name of an Event Series in your tenant.
| No |
Name | Event name. | Yes |
Presenters | Comma-separated list of presenters' emails. | Yes |
Organizer | Email of the organizer. | Yes |
Co-Organizer | Email of the co-organizer. | No |
Description | Event description, in text or HTML format. | No |
Cover | URL to the cover image. Ideal size is 640×360. | No |
Categories & Tags | Comma-separated list of categories and tags to apply to the event.
| No |
Timeslot | Comma-separated list of timeslots in the format m/d/yyyy h:mma (e.g., 3/16/2023 9:00am). | Yes |
Duration | Event duration in hours. If omitted, inherits from the Event Series. | No |
Room | Name of the room where the event takes place.
| No |
Location | Name of the event location. Must exactly match a location in your tenant. | Yes |
Enrollment Link | URL to an external site where attendees complete enrollment, if applicable. | No |
Enrollment Instructions | Instructions for attendees on how to complete external enrollment. | No |
Enrollment Cap | Maximum in-person attendees allowed. 0 means no limit. | No (defaults to 0) |
Waitlist Cap | Maximum size of the in-person waitlist. 0 means no limit. | No (defaults to 0) |
Online Enrollment Cap | Maximum online attendees allowed. 0 means no limit. | No (defaults to 0) |
Online Waitlist Cap | Maximum size of the online waitlist. 0 means no limit. | No (defaults to 0) |
Extra Info | Free-text field for any additional event info. Included in notifications triggered by the event. | No |
Hidden | Set to 1 to hide from the Catalog. Set to 0 (default) to be discoverable. | No (defaults to 0) |
Is Online | Set to 1 to allow online enrollment. Set to 0 if the event is in-person only. | No (defaults to 0) |
Is In Person | Set to 1 to make the event in-person. Set to 0 if online only. | No (defaults to 0) |
Watch Link | Link to watch the event online, if available. | No |
DELETE | Set to 1 to delete the scheduled event. Set to 0 (default) to leave it in place. | No (defaults to 0) |
Note: Events cannot be canceled via bulk actions, nor can access control groups be updated. Please reach out to customer support if you need assistance with either.
Columns impacted by Timeslot
If you're entering values for Duration, Room, and Extra Info, they must have either:
A single entry — replicated to every timeslot
The same number of entries as the Timeslot column — mapped one-to-one to the respective timeslot
Inheriting values from the Event Series
You can leverage the values defined at the Event Series level to avoid repeatedly entering the same info in the CSV. Enter [inherit] in any of the inheritable fields to populate that field from the Event Series. This treats the Event Series as the source of truth and prevents accidental overwrites on the scheduled events.
The inheritable fields are: Name, Presenters, Organizer, Co-Organizer, Description, Cover, Categories & Tags, Location, Enrollment Link, Enrollment Instructions, Enrollment Cap, Waitlist Cap, Online Enrollment Cap, Online Waitlist Cap, Is Online, and Is In Person.
What if I have more than 150 events to import?
The Bulk Import tool supports up to 150 events per CSV file. To import more than 150, split your data across multiple CSV files of up to 150 rows each and import them one at a time.
Bulk importing Event Series
Event Series are templates for individual, scheduled events. You can also bulk-create Event Series themselves using a similar Bulk Import tool on the Event Series dashboard. For more, see How to bulk import Event Series.




