hCalendar examples

From Microformats Wiki
Jump to navigation Jump to search

NOTE: THESE EXAMPLES ARE OBSOLETE. They need to be updated to use the value-class-pattern and/or HTML5 <time> element.

WARNING: DO NOT COPY/PASTE THESE EXAMPLES. They contain incorrect / undesirable use of the abbr-design-pattern.

- Tantek 03:01, 18 December 2011 (UTC)


Example hCalendars.

Authors

RFC 2445 examples in hCalendar

These are 1:1 hCalendar examples for each example in RFC2445.

Errata applied from here.

These examples are strict copy-paste from the RFC, they should not be edited.

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
posted on September 1, 1997
UID: 19970901T130000Z-123401@host.com
Dates: Septempter 3, 1997, 16:30 - 19:00 UTC
This meeting is Private.
Filed under:
  • 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.
Posted on: September 1, 1997
19970901T130000Z-123402@host.com
Dates: April 1, 1997, 16:30 UTC-April 2, 1997 01:00 UTC
This event is public and transparent to free/busy scheduling.
Filed under:
  • 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
Posted on: September 1, 1997
19970901T130000Z-123403@host.com
Date: November 2, 1997
This event is confidential.
Filed under:
  • Anniversary
  • Personal
  • Special Occassion
Repeat yearly

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
Networld+Interop Conference and Exhibit Atlanta World Congress Center Atlanta, Georgia
Posted on: July 4, 1996
uid1@host.com
Organized by: jsmith@host.com
Dates: September 18, 1996, 14:30 UTC - September 20, 1996, 22:00 UTC
Status: confirmed
Filed under:
  • 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:

Method: xyz
Posted at: 19970324T1200Z
Sequence: 0
UID: uid3@host1.com
Organzied by: jdoe@host1.com
Attending: jsmith@host1.com, RSVPed? TRUE>
Start Time: March 24, 1997 12:30 UTC
End Time: March 24, 1997, 21:00 UTC
  • Meeting
  • Project
This event is Public
Calendaring Interoperability Planning Meeting
Discuss how we can test c&s interoperability using iCalendar and other IETF standards.
LDB Lobby


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></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:

Posted at: 19980130T134500Z
Sequence 2
UID: uid4@host1.com
Organizer: unclesam@us.gov
Attending: jqpublic@host.com, ACCEPTED
Due: one minute before midnight on April 15, 1998
Status: needs-action
Submit Income Taxes
Action: AUDIO
Trigger: 19980403T120000
Repeat: 4
Duration: PT1H

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:

Posted at: March 24, 1997, 12:00 UTC
uid5@host1.com
Organizer: jsmith@host.com
Status: Draft
This journal isPublic.
Filed under:
  • Project Report
  • xyz
  • Weekly Meeting
Project xyz Review Meeting Minutes

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 also: