# iCalendar

Build or read iCalendar (.ics) events.

## Do things in iCalendar

Add a **iCalendar** step and choose an **Operation**. Choose the row to see the fields of each.

- [iCalendar](https://docs.gorunner.io/apps/icalendar#fields-f-convert): Create event (.ics) · Parse .ics

Later steps read a step’s output by its name: see [Use data from earlier steps](https://docs.gorunner.io/build/use-data-from-earlier-steps).

Not in your list? See [When an app isn’t here](https://docs.gorunner.io/apps/when-an-app-isnt-here#q-not-in-list).

## For developers

In the API, which calls apps pieces, iCalendar is `pieceId: "icalendar"` with `actionId: "convert"`, set by `operation`. [Get an app](https://docs.gorunner.io/api/apps/get-app) returns every field.

It computes from its inputs only (`pure`). See [How versions and side effects work](https://docs.gorunner.io/apps#q-versions).

### iCalendar › iCalendar

Create an .ics event from fields, or parse .ics text into events.

### Create event (.ics)

- **Title · Required**: Event summary/title.
- **Start · Required**: ISO-8601 / RFC3339, 'YYYY-MM-DD HH:MM:SS', or a date.
- **End · Optional**: End time (optional; defaults to start + 1h). For an all-day event, the last day it covers (defaults to the start day).
- **All-day event · Optional**: Turn on if the event lasts the whole day and has no specific clock time.
- **Location · Optional**: Where the event takes place, such as "Room 204" or "123 Main St" (optional).
- **Description · Optional**: Extra notes or details about the event shown in the calendar (optional).
- **URL · Optional**: A web link to attach to the event, such as a meeting or event page (optional).
- **Organizer Email · Optional**: Email of the person hosting the event, such as host@example.com (optional).
- **Attendees · Optional**: Email addresses, comma-separated (such as ada@example.com, bo@example.com). An expression may also supply a list.
- **Status · Optional**: Whether the event is confirmed, still tentative, or cancelled. Options: Confirmed, Tentative, Cancelled. Default: Confirmed.
- **UID · Optional**: Unique event ID (auto-generated if blank).
- **Recurrence Rule (RRULE) · Optional**: Repeat pattern as an RRULE, such as FREQ=WEEKLY;BYDAY=MO,WE;COUNT=10. See icalendar.org/rrule-tool.html.
- **Busy Status · Optional**: How the time should show on the invitee's calendar (X-MICROSOFT-CDO-BUSYSTATUS). Options: (none), Busy, Tentative, Out of Office, Free.
- **Latitude · Optional**: Event location latitude (paired with longitude).
- **Longitude · Optional**: Event location longitude (paired with latitude).
- **Sequence · Optional**: Revision number. Increment it when sending an update for the same UID.
- **Calendar Name · Optional**: Name for the calendar itself (X-WR-CALNAME).

### Parse .ics

- **iCalendar (.ics) Text · Optional**: The raw .ics content to parse.

Source: https://docs.gorunner.io/apps/icalendar
