iCalendar Date / Time Format

Top  Previous  Next

iCalendar is a common format for exchanging calendar and scheduling information over the Internet.

Note: If you want to learn more about iCalendar read RFC 2445.

 

 

Format

 

"FREQ"=freq *(

 

               ; either UNTIL or COUNT may appear here,

               ; but UNTIL and COUNT MUST NOT occur in a same string

 

               ( ";" "UNTIL" "=" enddate ) /

               ( ";" "COUNT" "=" 1*DIGIT ) /

 

               ; the rest of these keywords are optional,

               ; but MUST NOT occur more than once

 

               ( ";" "INTERVAL" "=" 1*DIGIT )          /

               ( ";" "BYSECOND" "=" byseclist )        /

               ( ";" "BYMINUTE" "=" byminlist )        /

               ( ";" "BYHOUR" "=" byhrlist )           /

               ( ";" "BYDAY" "=" bywdaylist )          /

               ( ";" "BYMONTHDAY" "=" bymodaylist )    /

               ( ";" "BYYEARDAY" "=" byyrdaylist )     /

               ( ";" "BYWEEKNO" "=" bywknolist )       /

               ( ";" "BYMONTH" "=" bymolist )          /

               ( ";" "BYSETPOS" "=" bysplist )         /

               ( ";" "WKST" "=" weekday )              /

               ( ";" x-name "=" text )

               )

 

freq       = "SECONDLY" / "MINUTELY" / "HOURLY" / "DAILY"

       / "WEEKLY" / "MONTHLY" / "YEARLY"

 

enddate    = date

enddate    =/ date-time

 

byseclist  = seconds / ( seconds *("," seconds) )

 

seconds    = 1DIGIT / 2DIGIT

 

byminlist  = minutes / ( minutes *("," minutes) )

 

minutes    = 1DIGIT / 2DIGIT

 

byhrlist   = hour / ( hour *("," hour) )

 

hour       = 1DIGIT / 2DIGIT

 

bywdaylist = weekdaynum / ( weekdaynum *("," weekdaynum) )

 

weekdaynum = [([plus] ordwk / minus ordwk)] weekday

 

plus       = "+"

 

minus      = "-"

 

ordwk      = 1DIGIT / 2DIGIT

 

weekday    = "SU" / "MO" / "TU" / "WE" / "TH" / "FR" / "SA"

 

bymodaylist = monthdaynum / ( monthdaynum *("," monthdaynum) )

 

monthdaynum = ([plus] ordmoday) / (minus ordmoday)

 

ordmoday   = 1DIGIT / 2DIGIT

 

byyrdaylist = yeardaynum / ( yeardaynum *("," yeardaynum) )

 

yeardaynum = ([plus] ordyrday) / (minus ordyrday)

 

ordyrday   = 1DIGIT / 2DIGIT / 3DIGIT

 

bywknolist = weeknum / ( weeknum *("," weeknum) )

 

weeknum    = ([plus] ordwk) / (minus ordwk)

 

bymolist   = monthnum / ( monthnum *("," monthnum) )

 

monthnum   = 1DIGIT / 2DIGIT

 

bysplist   = setposday / ( setposday *("," setposday) )

 

setposday  = yeardaynum

 

 

Examples

 

The last working day of the month written as iCalendar: FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1

 

10 meetings every other day: FREQ=DAILY;COUNT=10;INTERVAL=2

 

July 14, 1997, at 1:30 PM:  19970714T173000Z

 

 

 

Related topics:

Cron format

Scheduler