Importing Events
Calendar currently has no built-in importing options available. However, through the Craft Feed Me plugin, you can import and/or update existing Calendar events. Importing tools are very complex to get right, and rather than reinventing the wheel we've decided to recommend this approach instead.
Currently, there are 5 different feed types available to choose from:
- ATOM
- CSV
- JSON
- RSS
- XML
You can select which calendar to check against, and decide from any of the following behaviors:
- Create new events: Adds new events if they do not already exist.
- Update existing events: Updates events that match the Unique Identifier (next step).
- Disable missing events: Disables any events that are missing from the feed.
- Delete missing events: Deletes any events that are missing from the feed. Be careful.
See the example JSON file below.
To get the Craft Feed Me plugin, search for feed me
in the Craft Plugin Store.
Example JSON file
{
"events": {
"event": [
{
"title": "Event Title",
"startDate": "2019-05-11 07:00:00",
"endDate": "2019-05-25 13:00:00",
"allDay": 0,
"calendarId": 1,
"repeatRule": "FREQ=WEEKLY;UNTIL=20190430T000000Z;INTERVAL=1;BYDAY=TU,WE,TH,FR,SA",
"repeatInterval": null,
"repeatFrequency": null,
"repeatCount": null,
"repeatUntil": null,
"repeatByMonth": null,
"repeatByYearDay": null,
"repeatByMonthDay": null,
"repeatByDay": null
},
{
"title": "Event Title 2",
"startDate": "2019-05-11 07:00:00",
"endDate": "2019-05-25 13:00:00",
"allDay": 0,
"calendarId": 1,
"repeatRule": "RRULE:FREQ=MONTHLY;UNTIL=20191016T235959Z;INTERVAL=3;BYMONTHDAY=6",
"repeatInterval": 3,
"repeatFrequency": "MONTHLY",
"repeatCount": null,
"repeatUntil": "2019-10-16 23:59:59",
"repeatByMonth": null,
"repeatByYearDay": null,
"repeatByMonthDay": 6,
"repeatByDay": null
},
{
"title": "All Day Event",
"startDate": "2019-05-17 00:00:00",
"endDate": "2019-05-17 23:59:59",
"allDay": 1,
"calendarId": 2,
"repeatRule": null,
"repeatInterval": null,
"repeatFrequency": null,
"repeatCount": null,
"repeatUntil": null,
"repeatByMonth": null,
"repeatByYearDay": null,
"repeatByMonthDay": null,
"repeatByDay": null
}
]
}
}