---
title: "Import ICS / ICal Calendar"
version: "15.0"
source: "AdministratorManual/Scheduler/ImportICal.rst"
rendered: "2026-10-02T18:05:42+00:00"
---

# Import ICS / ICal Calendar {#importics}

An external ICS calendar can be imported with a scheduler task.
For this the scheduler task creates default events on the given pid.
If an event already exists (determined by UID inside importId) on **ANY pid**, the event only gets updated.
For your own events implement the `ImportSingleIcalEventListener`.

1.  Add a new Scheduler Task
1.  Select the class **Execute console commands**
1.  Select **Frequency** for the execution
1.  Go to section **Schedulable Command. Save and reopen to define
    command arguments** at the bottom.
1.  Select **calendarize:import** (press save)
1.  Select the options you want to execute the queue with, it's important to
    check the checkboxes and not only fill in the values.

## Arguments {#arguments}

| Argument | Description | Example |
| --- | --- | --- |
| icsCalendarUri | The URI of the iCalendar ICS | [https://calendar.google.com/calendar/ical/de.german%23holiday@group.v.calendar.google.com/public/basic.ics](https://calendar.google.com/calendar/ical/de.german%23holiday@group.v.calendar.google.com/public/basic.ics) |
| pid | The page ID to create new elements | 10 |
| since (optional) | Imports all events since the given date. You can use relative and absolute PHP dates. Note: For recurring even only the start date is relevant. | 2020-07-23 -10 days |

## Supported properties {#supported-properties}

The iCalendar format specification is complex, so only a subset of properties is supported.

The generation of (event) configurations currently support following properties :

-   UID
-   start / end date and time
-   allday events
-   duration (composer only)
-   status (e.g. CANCELLED) (`STATUS`)
-   recurring configuration (`RRULE`)

    -   frequency (daily, weekly, monthly, yearly) (`FREQ`)
    -   interval (`INTERVAL`)
    -   until / last date (`UNTIL`)
    -   the number of occurrences (`COUNT`)
    -   (simple) recurrences with monthly/yearly frequencies (e.g. every first Monday into the month) (`BYDAY`, `BYSETPOS`)

In addition to them the **default event** makes use of:

-   title (`SUMMARY`)
-   description (`DESCRIPTION`)
-   location (`LOCATION`)
-   organizer (`ORGANIZER`)
