hcalendar-examples: Difference between revisions
m (fixed some formatting) |
Mark Mansour (talk | contribs) |
||
Line 2: | Line 2: | ||
Example [[hcalendar|hCalendars]]. | Example [[hcalendar|hCalendars]]. | ||
[http://lifelint.com/ Mark Mansour of Life Lint] has created and maintains a set of [http://lifelint.com/test/hCalendar/ publicly available hCalendar tests] for use by the hCalendar community. | |||
== Authors == | == Authors == |
Revision as of 22:27, 7 February 2006
hCalendar examples
Example hCalendars.
Mark Mansour of Life Lint has created and maintains a set of publicly available hCalendar tests for use by the hCalendar community.
Authors
RFC 2445 examples in hCalendar
These are 1:1 hCalendar examples for each example in RFC 2445.
Errata applied from here.
4.6.1 Event Component
The following is an example of the "VEVENT" calendar component used to represent a meeting that will also be opaque to searches for busy time:
BEGIN:VEVENT UID:19970901T130000Z-123401@host.com DTSTAMP:19970901T1300Z DTSTART:19970903T163000Z DTEND:19970903T190000Z SUMMARY:Annual Employee Review CLASS:PRIVATE CATEGORIES:BUSINESS,HUMAN RESOURCES END:VEVENT
This iCalendar event as an hCalendar:
<div class="vevent"> <h5 class="summary">Annual Employee Review</h5> <div>posted on <abbr class="dtstamp" title="19970901T1300Z">September 1, 1997</abbr></div> <div>UID: <span class="uid">19970901T130000Z-123401@host.com</span></div> <div>Dates: <abbr class="dtstart" title="19970903T163000Z">Septempter 3, 1997, 16:30</abbr> - <abbr class="dtend" title="19970903T190000Z">19:00 UTC</abbr></div> <div>This meeting is <strong class="class">private</strong>.</div> <div>Filed under:</div> <ul> <li class="category">Business</li> <li class="category">Human Resources</li> </ul> </div>
This hCalendar could be displayed as:
Annual Employee Review
- Business
- Human Resources
Example 2
The following is an example of the "VEVENT" calendar component used to represent a reminder that will not be opaque, but rather transparent, to searches for busy time:
BEGIN:VEVENT UID:19970901T130000Z-123402@host.com DTSTAMP:19970901T1300Z DTSTART:19970401T163000Z DTEND:19970402T010000Z SUMMARY:Laurel is in sensitivity awareness class. CLASS:PUBLIC CATEGORIES:BUSINESS,HUMAN RESOURCES TRANSP:TRANSPARENT END:VEVENT
This iCalendar event as an hCalendar fragment:
<div class="vevent"> <h5 class="summary">Laurel is in sensitivity awareness class.</h5> <div>Posted on: <abbr class="dtstamp" title="19970901T1300Z">September 1, 1997</abbr></div> <div class="uid">19970901T130000Z-123402@host.com</div> <div>Dates: <abbr class="dtstart" title="19970401T163000Z">April 1, 1997, 16:30 UTC</abbr>- <abbr class="dtend" title="19970402T010000Z">April 2, 1997 01:00 UTC</abbr></div> <div>This event is <span class="class">public</span> and <span class="transp">transparent</span> to free/busy scheduling.</div> <div>Filed under:</div> <ul> <li class="category">Business</li> <li class="category">Human Resources</li> </ul> </div>
This hCalendar could be displayed as:
Laurel is in sensitivity awareness class.
- Business
- Human Resources
Example 3
The following is an example of the "VEVENT" calendar component used to represent an anniversary that will occur annually. Since it takes up no time, it will not appear as opaque in a search for busy time; no matter what the value of the "TRANSP" property indicates:
BEGIN:VEVENT UID:19970901T130000Z-123403@host.com DTSTAMP:19970901T1300Z DTSTART:19971102 SUMMARY:Our Blissful Anniversary CLASS:CONFIDENTIAL CATEGORIES:ANNIVERSARY,PERSONAL,SPECIAL OCCASION RRULE:FREQ=YEARLY END:VEVENT
This iCalendar event as an hCalendar fragment:
<div class="vevent"> <h5 class="summary">Our Blissful Anniversary</h5> <div>Posted on: <abbr class="dtstamp" title="19970901T1300Z">September 1, 1997</abbr></div> <div class="uid">19970901T130000Z-123403@host.com</div> <div>Date: <abbr class="dtstart" title="19971102">November 2, 1997</abbr></div> <div>This event is <strong class="class">confidential</strong>.</div> <div>Filed under:</div> <ul> <li class="category">Anniversary</li> <li class="category">Personal</li> <li class="category">Special Occassion</li> </ul> <div class="rrule">Repeat <span class="freq">yearly</span>.</div> </div>
ISSUES:
- We have a larger discusion about RRULE that needs to be resolved, hopefully these examples will help that. --RyanKing
This hCalendar could be displayed as:
Our Blissful Anniversary
- Anniversary
- Personal
- Special Occassion
4.6.2 To-do Component
Example: The following is an example of a "VTODO" calendar component:
BEGIN:VTODO UID:19970901T130000Z-123404@host.com DTSTAMP:19970901T1300Z DTSTART:19970415T133000Z DUE:19970416T045959Z SUMMARY:1996 Income Tax Preparation CLASS:CONFIDENTIAL CATEGORIES:FAMILY,FINANCE PRIORITY:1 STATUS:NEEDS-ACTION END:VTODO
This iCalendar fragment as hCalendar:
@TODO
4.6.3 Journal Component
Example: The following is an example of the "VJOURNAL" calendar component:
BEGIN:VJOURNAL UID:19970901T130000Z-123405@host.com DTSTAMP:19970901T1300Z DTSTART;VALUE=DATE:19970317 SUMMARY:Staff meeting minutes DESCRIPTION:1. Staff meeting: Participants include Joe\, Lisa
and Bob. Aurora project plans were reviewed. There is currently no budget reserves for this project. Lisa will escalate to management. Next meeting on Tuesday.\n 2. Telephone Conference: ABC Corp. sales representative called to discuss new printer. Promised to get us a demo by Friday.\n 3. Henry Miller (Handsoff Insurance): Car was totaled by tree. Is looking into a loaner car. 654-2323 (tel).
END:VJOURNAL
This iCalendar fragment as hCalendar:
@TODO
4.6.4. Free/Busy Component
Example: The following is an example of a "VFREEBUSY" calendar component used to request free or busy time information:
BEGIN:VFREEBUSY ORGANIZER:MAILTO:jane_doe@host1.com ATTENDEE:MAILTO:john_public@host2.com DTSTART:19971015T050000Z DTEND:19971016T050000Z DTSTAMP:19970901T083000Z END:VFREEBUSY
This iCalendar fragment as hCalendar:
@TODO
The following is an example of a "VFREEBUSY" calendar component used to reply to the request with busy time information:
BEGIN:VFREEBUSY ORGANIZER:MAILTO:jane_doe@host1.com ATTENDEE:MAILTO:john_public@host2.com DTSTAMP:19970901T100000Z FREEBUSY;VALUE=PERIOD:19971015T050000Z/PT8H30M, 19971015T160000Z/PT5H30M,19971015T223000Z/PT6H30M URL:http://host2.com/pub/busy/jpublic-01.ifb COMMENT:This iCalendar file contains busy time information for the next three months. END:VFREEBUSY
This iCalendar fragment as hCalendar:
@TODO
The following is an example of a "VFREEBUSY" calendar component used to publish busy time information.
BEGIN:VFREEBUSY ORGANIZER:jsmith@host.com DTSTART:19980313T141711Z DTEND:19980410T141711Z FREEBUSY:19980314T233000Z/19980315T003000Z FREEBUSY:19980316T153000Z/19980316T163000Z FREEBUSY:19980318T030000Z/19980318T040000Z URL:http://www.host.com/calendar/busytime/jsmith.ifb END:VFREEBUSY
This iCalendar fragment as hCalendar:
@TODO
5. iCalendar Object Examples
The following example specifies a three-day conference that begins at 8:00 AM EDT, September 18, 1996 and end at 6:00 PM EDT, September 20, 1996.
BEGIN:VEVENT DTSTAMP:19960704T120000Z UID:uid1@host.com ORGANIZER:MAILTO:jsmith@host.com DTSTART:19960918T143000Z DTEND:19960920T220000Z STATUS:CONFIRMED CATEGORIES:CONFERENCE SUMMARY:Networld+Interop Conference DESCRIPTION:Networld+Interop Conference and Exhibit\nAtlanta World Congress Center\nAtlant\, Georgia END:VEVENT
This iCalendar event as an hCalendar fragment: the attendee markup looks incomplete
<div class="vevent"> <h5 class="summary">Networld+Interop Conference</h5> <div class="description">Networld+Interop Conference and Exhibit Atlanta World Congress Center Atlanta, Georgia</div> <div>Posted on: <abbr class="dtstamp" title="19960704T120000Z">July 4, 1996</abbr></div> <div class="uid">uid1@host.com</div> <div>Organized by: <a class="organizer" href="mailto:jsmith@host.com">jsmith@host.com</a></div> <div>Dates: <abbr class="dtstart" title="19960918T143000Z">September 18, 1996, 14:30 UTC</abbr> - <abbr class="dtend" title="19960920T220000Z">September 20, 1996, 22:00 UTC</abbr></div> <div>Status: <span class="status">CONFIRMED</span></div> <div>Filed under:</div> <ul> <li class="category">Conference</li> </ul> </div>
This hCalendar could be displayed as:
Networld+Interop Conference
- Conference
Example 2
The following example specifies a group scheduled meeting that begin at 8:30 AM EST on March 12, 1998 and end at 9:30 AM EST on March 12, 1998. The "Organizer" has scheduled the meeting with one or more calendar users in a group. A time zone specification for Eastern United States has been specified.
BEGIN:VCALENDAR PRODID:-//RDU Software//NONSGML HandCal//EN VERSION:2.0 BEGIN:VTIMEZONE TZID:US-Eastern BEGIN:STANDARD DTSTART:19981025T020000 RDATE:19981025T020000 TZOFFSETFROM:-0400 TZOFFSETTO:-0500 TZNAME:EST END:STANDARD BEGIN:DAYLIGHT DTSTART:19990404T020000 RDATE:19990404T020000 TZOFFSETFROM:-0500 TZOFFSETTO:-0400 TZNAME:EDT END:DAYLIGHT END:VTIMEZONE BEGIN:VEVENT DTSTAMP:19980309T231000Z UID:guid-1.host1.com ORGANIZER;ROLE=CHAIR:MAILTO:mrbig@host.com ATTENDEE;RSVP=TRUE;ROLE=REQ-PARTICIPANT;CUTYPE=GROUP:MAILTO:employee-A@host.com DESCRIPTION:Project XYZ Review Meeting CATEGORIES:MEETING CLASS:PUBLIC CREATED:19980309T130000Z SUMMARY:XYZ Project Review DTSTART;TZID=US-Eastern:19980312T083000 DTEND;TZID=US-Eastern:19980312T093000 LOCATION:1CP Conference Room 4350 END:VEVENT END:VCALENDAR
This iCalendar as an hCalendar:
@TODO
This hCalendar could be displayed as:
@TODO
Example 3
BEGIN:VCALENDAR METHOD:xyz VERSION:2.0 PRODID:-//ABC Corporation//NONSGML My Product//EN BEGIN:VEVENT DTSTAMP:19970324T1200Z SEQUENCE:0 UID:uid3@host1.com ORGANIZER:MAILTO:jdoe@host1.com ATTENDEE;RSVP=TRUE:MAILTO:jsmith@host1.com DTSTART:19970324T123000Z DTEND:19970324T210000Z CATEGORIES:MEETING,PROJECT CLASS:PUBLIC SUMMARY:Calendaring Interoperability Planning Meeting DESCRIPTION:Discuss how we can test c&s interoperability\nusing iCalendar and other IETF standards. LOCATION:LDB Lobby ATTACH;FMTTYPE=application/postscript:ftp://xyzCorp.com/pub/conf/bkgrnd.ps END:VEVENT END:VCALENDAR
This iCalendar as an hCalendar:
<div class="vcalendar"> <div>Method: <span class="method">xyz</span></div> <div class="vevent"> <div>Posted at: <span class="dtstamp">19970324T1200Z</span></div> <div>Sequence: <span class="sequence">0</span></div> <div>UID: <span class="uid">uid3@host1.com</span></div> <div>Organzied by: <a class="organizer" href="mailto:jdoe@host1.com">jdoe@host1.com</a></div> <div>Attending: <span class="attendee"><a class="value" href="mailto:jsmith@host1.com">jsmith@host1.com</a> RSVPed? <span class="rsvp">TRUE</span></span></div> <div>Start Time: <abbr class="dtstart" title="19970324T123000Z">March 24, 1997 12:30 UTC</abbr></div> <div>End Time: <abbr class="dtend" title="19970324T210000Z">March 24, 1997, 21:00 UTC</abbr></div> <ul> <li class="category">Meeting</li> <li class="category">Project</li> </ul> <div>This event is <strong class="class">Public</strong></div> <div class="summary">Calendaring Interoperability Planning Meeting</div> <div class="description">Discuss how we can test c&s interoperability using iCalendar and other IETF standards.</div> <div class="location">LDB Lobby</div> <div>Attachment: <a class="attach" type="application/postscript" href="ftp://xyzCorp.com/pub/conf/bkgrnd.ps">ftp://xyzCorp.com/pub/conf/bkgrnd.ps</a></div> </div> </div>
This hCalendar could be displayed as:
- Meeting
- Project
Example 4
The following is an example of a to-do due on April 15, 1998. An audio alarm has been specified to remind the calendar user at noon, the day before the to-do is expected to be completed and repeat hourly, four additional times. The to-do definition has been modified twice since it was initially created.
BEGIN:VCALENDAR VERSION:2.0 PRODID:-//ABC Corporation//NONSGML My Product//EN BEGIN:VTODO DTSTAMP:19980130T134500Z SEQUENCE:2 UID:uid4@host1.com ORGANIZER:MAILTO:unclesam@us.gov ATTENDEE;PARTSTAT=ACCEPTED:MAILTO:jqpublic@host.com DUE:19980415T235959 STATUS:NEEDS-ACTION SUMMARY:Submit Income Taxes BEGIN:VALARM ACTION:AUDIO TRIGGER:19980403T120000 ATTACH;FMTTYPE=audio/basic:http://host.com/pub/audio-files/ssbanner.aud REPEAT:4 DURATION:PT1H END:VALARM END:VTODO END:VCALENDAR
This iCalendar as an hCalendar:
<div class="vcalendar"> <div class="vtodo"> <div>Posted at: <span class="dtstamp">19980130T134500Z</span></div> <div>Sequence <span class="sequence">2</span></div> <div>UID: <span class="uid">uid4@host1.com</span></div> <div>Organizer: [mailto:unclesam@us.gov unclesam@us.gov]</div> <div>Attending: [mailto:jqpublic@host.com jqpublic@host.com], <span class="partstat">ACCEPTED</span></span></div> <div>Due: <abbr class="due" title="19980415T235959">one minute before midnight on April 15, 1998</abbr></div> <div>Status: <span class="status">needs-action</span></div> <div class="summary">Submit Income Taxes</div> <div class="valarm"> <div>Action: <span class="action">AUDIO</span></div> <div>Trigger: <span class="trigger">19980403T120000</span></div> <div>Attachment: <a class="attach" type="audio/basic" href="http://host.com/pub/audio-files/ssbanner.aud">http://host.com/pub/audio-files/ssbanner.aud</a></div> <div>Repeat: <span class="repeat">4</span></div> <div>Duration: <span class="duration">PT1H</span></div> </div> </div> </div>
This hCalendar could be displayed as:
Example 5: journal entry
The following is an example of a journal entry.
BEGIN:VCALENDAR VERSION:2.0 PRODID:-//ABC Corporation//NONSGML My Product//EN BEGIN:VJOURNAL DTSTAMP:19970324T120000Z UID:uid5@host1.com ORGANIZER:MAILTO:jsmith@host.com STATUS:DRAFT CLASS:PUBLIC CATEGORY:Project Report, XYZ, Weekly Meeting DESCRIPTION:Project xyz Review Meeting Minutes\nAgenda\n 1. Review of project version 1.0 requirements.\n 2. Definition of project processes.\n 3. Review of project schedule.\nParticipants: John Smith, Jane Doe, Jim Dandy\n -It was decided that the requirements need to be signed off by product marketing.\n -Project processes were accepted.\n -Project schedule needs to account for scheduled holidays and employee vacation time. Check with HR for specific dates.\n -New schedule will be distributed by Friday.\n -Next weeks meeting is cancelled. No meeting until 3/23. END:VJOURNAL END:VCALENDAR
(*note*: line-breaks have been added into the description, in reality it should be one line)
This iCalendar as an hCalendar:
<div class="vcalendar"> <div class="vjournal"> <div>Posted at: <abbr class="dtstamp" title="19970324T120000Z">March 24, 1997, 12:00 UTC</abbr></div> <div class="uid">uid5@host1.com</div> <div>Organizer: <a class="organizer" href="mailto:jsmith@host.com">jsmith@host.com</a></div> <div>Status: <span class="status">Draft</span></div> <div>This journal is<span class="class">Public</span>.</div> <div>Filed under:</div> <ul> <li class="category">Project Report</li> <li class="category">xyz</li> <li class="category">Weekly Meeting</li> </ul> <div class="description">Project xyz Review Meeting Minutes<br /> Agenda<br /> 1. Review of project version 1.0 requirements.<br /> 2. Definition of project processes.<br /> 3. Review of project schedule.<br /> Participants: John Smith, Jane Doe, Jim Dandy<br /> -It was decided that the requirements need to be signed off by product marketing.<br /> -Project processes were accepted.<br /> -Project schedule needs to account for scheduled holidays and employee vacation time. Check with HR for specific dates.<br /> -New schedule will be distributed by Friday.<br /> -Next weeks meeting is cancelled. No meeting until 3/23. </div> </div> </div>
This hCalendar could be displayed as:
- Project Report
- xyz
- Weekly Meeting
Agenda
1. Review of project version 1.0 requirements.
2. Definition of project processes.
3. Review of project schedule.
Participants: John Smith, Jane Doe, Jim Dandy
-It was decided that the requirements need to be signed off by product marketing.
-Project processes were accepted.
-Project schedule needs to account for scheduled holidays and employee vacation time. Check with HR for specific dates.
-New schedule will be distributed by Friday.
-Next weeks meeting is cancelled. No meeting until 3/23.
Example 6. Free/Busy time
The following is an example of published busy time information. The iCalendar object might be placed in the network resource www.host.com/calendar/busytime/jsmith.ifb.
BEGIN:VCALENDAR VERSION:2.0 PRODID:-//RDU Software//NONSGML HandCal//EN BEGIN:VFREEBUSY ORGANIZER:MAILTO:jsmith@host.com DTSTART:19980313T141711Z DTEND:19980410T141711Z FREEBUSY:19980314T233000Z/19980315T003000Z FREEBUSY:19980316T153000Z/19980316T163000Z FREEBUSY:19980318T030000Z/19980318T040000Z URL:http://www.host.com/calendar/busytime/jsmith.ifb END:VFREEBUSY END:VCALENDAR
This iCalendar as an hCalendar:
<div class="vcalendar"> <div>Version: <span class="version">2.0</span></div> <div>ProdID:<span class="prodid">-//RDU Software//NONSGML HandCal//EN</span></div> <div class="vfreebusy"> <div>Organizer: <span class="organizer">MAILTO:jsmith@host.com</span></div> <div>Start Time: <abbr class="dtstart" title="19980313T141711Z">March 13, 1998 14:17:11 UTC</abbr></div> <div>End time: <abbr class="dtend" title="19980410T141711Z">April 10, 1998 14:17:11 UTC</abbr></div> <p>Busy times:</p> <!-- note that the default is BUSY --> <ol> <li class="freebusy"><abbr class="dtstart" title="19980314T233000Z">1998-03-14 23:30:00 UTC</abbr> - <abbr class="dtend" title="19980315T003000Z">1998-03-15- 00:30:00 UTC</abbr></li> <li class="freebusy"><abbr class="dtstart" title="19980316T153000Z">1998-03-16 15:30:00 UTC</abbr> - <abbr class="dtend" title="19980316T163000Z">1998-03-16 16:30:00 UTC</abbr></li> <li class="freebusy"><abbr class="dtstart" title="19980318T030000Z">1998-03-18 03:00:00 UTC</abbr> - <abbr class="dtend" title="19980318T040000Z">1998-03-18 04:00:00 UTC</abbr></li> </ol> <div>URL <a class="url" href="http://www.host.com/calendar/busytime/jsmith.ifb">http://www.host.com/calendar/busytime/jsmith.ifb</a></div> </div> </div>
This hCalendar could be displayed as:
@TODO
Other
- See hcalendar-brainstorming for more examples (which may eventually be moved here) and analysis.