%% ALPHA=[A-Za-z] DIGIT=[0-9] NON_NEW_LINE_WHITE_SPACE=[\ \t\b\012] SAFECHAR=[^\"\;,:\^C] QSAFECHAR=[^\^C\"] XNAME=X-(({ALPHA}|{DIGIT}){3}({ALPHA}|{DIGIT})*)*({ALPHA}|{DIGIT}|-) PARAMVALUE=({SAFECHAR}*|\"{QSAFECHAR}*\") XPARAM={XNAME}={PARAMVALUE}(,{PARAMVALUE})* DATE={DIGIT}{8} TIME=({DIGIT}{2}:{DIGIT}{2}:{DIGIT}{2}|{DIGIT}{2}:{DIGIT}{2}:{DIGIT}{2}Z) DATETIME={DATE}T{TIME} TSAFECHAR=[^\^C\;,:\\] ESCAPECHAR=(\\\\|\\\;|\\,|\\N|\\n) ITEXT=({TSAFECHAR}|:|\"|{ESCAPECHAR}|\r\f{NON_NEW_LINE_WHITE_SPACE}) URI=\".*\" ALTREP=ALTREP\={URI} LANGUAGE=LANGUAGE\={ITEXT} TZIDPARAM=TZID\=\/*{SAFECHAR}*\r\f FLOAT=(+|-)*{DIGIT}+\.{DIGIT}+ CNPARAM=CN\={PARAMVALUE} DIRPARAM=DIR\=\"{URI}\" SENTBYPARAM=SENT\-BY\=\"{URI}\" INTVALUE=(+|-)*{DIGIT}+ STATVALUE=(TENATIVE|CONFIRMED|CANCELLED|NEEDS\-ACTION|COMPLETED|IN\-PROCESS|DRAFT|FINAL) TRANSPVALUE=(OPAGUE|TRANSPARENT) %% ^VERSION ^PRODID ^CALSCALE ^BEGIN:VEVENT\r\f ^BEGIN:VTODO\r\f ^BEGIN:VFREEBUSY\r\f ^BEGIN:VJOURNAL\r\f ^BEGIN:VTIMEZONE\r\f :2"."0\r\f CLASS CREATED DESCRIPTION DTSTART GEO LAST\-MODIFIED LOCATION ORGANIZER PRIORITY DTSTAMP SEQUENCE STATUS SUMMARY TRANSP UID URL RECURRENCE\-ID DTEND DURATION ATTACH ATTENDEE CATEGORIES COMMENT CONTACT EXDATE EXRULE REQUEST\-STATUS RELATED-TO RESOURCES RDATE RRULE COMPLETED PERCENT-COMPLETE DUE FREEBUSY TZID TZURL BEGIN:STANDARD\r\f BEGIN:DAYLIGHT\r\f \;{XPARAM} :(PUBLIC|PRIVATE|CONFIDENTIAL|{XNAME}) :{DATETIME}\r\f \;{ALTREP} \;{LANGUAGE} :{ITEXT}\r\f \;VALUE\=(DATE-TIME|DATE) \;{TZIDPARAM} :({DATE}|{DATETIME})\r\f :{FLOAT}\;{FLOAT}\r\f :{DATETIME}\r\f \;{CNPARAM} \;{DIRPARAM} \;{SENTBYPARAM} \;\"{URI}\"\r\f :{INTVALUE}\r\f :{STATVALUE}\r\f :{TRANSPVALUE}\r\f :{URI}\r\f