This page follows the vCalendar 1.0 specification published by the Versit
Consortium in 1996, read 2026-11-12 from the
copy
once at imc.org. That copy is damaged: the descriptions of PRIORITY,
RNUM, MALARM, EXRULE and
LAST-MODIFIED are missing, so for those only the grammar is used here.
Its line syntax is that of vCard
2.1: parameters such as ENCODING (7BIT,
8BIT, QUOTED-PRINTABLE, BASE64),
CHARSET, LANGUAGE, TYPE (WAVE,
PCM, VCARD) and VALUE (INLINE,
URL, CONTENT-ID, CID). Dates are ISO 8601
basic form, such as 19960401T033000Z, in local time or UTC.
Calendar properties
| Property | Value |
|---|---|
VERSION | 1.0; required. |
PRODID | The program that made the file. |
TZ | The standard time zone of the “home” system, as hours and optional minutes from UTC: -05, +05:30. |
DAYLIGHT | FALSE, or TRUE; offset; start; end; standard name; daylight name, such as TRUE;-06;19960407T025959;19961027T010000;EST;EDT (the specification’s own example). |
GEO | Longitude then latitude of the “home” system, such as 37.24,-17.87. |
Event and to-do properties
Inside BEGIN:VEVENT … END:VEVENT and
BEGIN:VTODO … END:VTODO.
| Property | Value |
|---|---|
DTSTART, DTEND | Start and end of an event. |
DUE, COMPLETED | When a to-do is due and when it was done. |
SUMMARY, DESCRIPTION, LOCATION | Text. |
CATEGORIES | Semicolon-separated: APPOINTMENT, BUSINESS, EDUCATION, HOLIDAY, MEETING, MISCELLANEOUS, PERSONAL, PHONE CALL, SICK DAY, SPECIAL OCCASION, TRAVEL, VACATION, or others. |
CLASS | PUBLIC (default), PRIVATE, CONFIDENTIAL. |
PRIORITY | A simple property; its description is missing from the copy read. |
STATUS | ACCEPTED, NEEDS ACTION (default), SENT, TENTATIVE, CONFIRMED, DECLINED, COMPLETED, DELEGATED. |
TRANSP | A number: 0 blocks time in free-time searches, 1 does not, higher values are implementation-specific. |
ATTENDEE | An RFC 822 address by default, or a reference to a vCard, with ROLE (ATTENDEE default, ORGANIZER, OWNER, DELEGATE), STATUS (as above), RSVP (YES, NO default), EXPECT (FYI default, REQUIRE, REQUEST, IMMEDIATE). |
ATTACH | An attached object, such as a document to review. |
RESOURCES | Semicolon-separated equipment, such as CATERING, CHAIRS, EASEL, PROJECTOR, VCR, VEHICLE. |
RRULE, EXRULE | Repeat and exception rules. |
RDATE, EXDATE | Extra and excluded dates. |
RNUM | Number of recurrences (the RDATE description calls it “Number Recurrences”). |
UID, RELATED-TO, URL | Identifier, related entry, web page. |
DCREATED, LAST-MODIFIED, SEQUENCE | Created, changed, revision. |
Alarms
Alarms are properties, not nested components. Their values are separated by semicolons: run time; snooze time; repeat count; then the alarm’s own data.
| Property | Last values |
|---|---|
DALARM | Display: the text to show. |
AALARM | Audio: the sound, inline or by URL, with TYPE such as WAVE. |
MALARM | Mail: address; note (from the grammar). |
PALARM | Procedure: the program to run. |
Example: DALARM:19960415T235000;PT5M;2;Your Taxes Are Due !!!.
Recurrence rules
A short grammar based on XAPIA’s CSA rules, with six types: a frequency code and
interval, optional modifiers, then the end: #n occurrences
(#0 for ever, counting the first) or an end date. With neither, the
event occurs twice (D4 is D4 #2); with both, it stops at
whichever comes first.
| Code | Frequency | Example |
|---|---|---|
D | Daily | D2 #0: every other day, forever |
W | Weekly, with day codes | W1 MO TH #10 |
MP | Monthly by position | MP1 1+ SU #0: first Sunday of each month |
MD | Monthly by day | MD1 1 15 #4: the 1st and 15th |
YM | Yearly by month | YM1 6 7 #0: June and July |
YD | Yearly by day of the year | YD1 1 100 #5 |
Day codes are SU to SA; positions are 1+
(first) to 5+ and 1- (last) to 5-; LD
is the last day of the month.