Skip to content

Commit

Permalink
Added components feature
Browse files Browse the repository at this point in the history
  • Loading branch information
benfortuna committed Jul 9, 2024
1 parent 9e25203 commit e53ddf5
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 0 deletions.
37 changes: 37 additions & 0 deletions docs/components.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# iCalendar Components

Components in iCalendar are used to encapsulate a group of properties (and subcomponents) that
define a specific type of content. For example, events, to-dos and journals
are all defined as components of an iCalendar object.

## Calendar Components

Some components may be added directly to an iCalendar object, whereas others are used as
subcomponents to these top-level components. In iCal4j top-level components are known as
_Calendar Components_ and extend the `CalendarComponent` abstract class.

| Calendar Components |
|---------------------|
| `VEVENT` |
| `VTODO` |
| `VJOURNAL` |
| `VFREEBUSY` |
| `VTIMEZONE` |


## Subcomponents

Subcomponents are nested components, and can be multiple levels deep. For example, an
event may have a nested alarm component, which in turn has a nested location component
for a proximity trigger.

| Component | Subcomponents |
|---------------|---------------------------------------------------|
| `VEVENT` | `VALARM`, `PARTICIPANT`, `VLOCATION`, `VRESOURCE` |
| `VTODO` | `VALARM`, `PARTICIPANT`, `VLOCATION`, `VRESOURCE` |
| `VJOURNAL` | `PARTICIPANT`, `VLOCATION`, `VRESOURCE` |
| `VFREEBUSY` | `PARTICIPANT`, `VLOCATION`, `VRESOURCE` |
| `VTIMEZONE` | `STANDARD`, `DAYLIGHT` |
| `VALARM` | `VLOCATION` |
| `PARTICIPANT` | `VLOCATION`, `VRESOURCE` |

1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ nav:
- Features:
- Parameters: parameters.md
- Properties: properties.md
- Components: components.md
- Validation: validation.md
- Compatibility: compatibility.md
- Date/Time Concepts: datetime.md
Expand Down

0 comments on commit e53ddf5

Please sign in to comment.