<!ENTITY % attr.altrep "
   altrep ENTITY #IMPLIED
   ">
<!ENTITY % attr.cn "
   cn CDATA ''
   ">
<!ENTITY % attr.cutype "
   cutype NMTOKEN 'INDIVIDUAL'
   ">
<!ENTITY % attr.delegated-from "
   delegated-from CDATA #IMPLIED
   ">
<!ENTITY % attr.delegated-to "
   delegated-to CDATA #IMPLIED
   ">
<!ENTITY % attr.dir "
   dir ENTITY #IMPLIED
   ">
<!ENTITY % attr.fmttype "
   fmttype CDATA #REQUIRED
   ">
<!ENTITY % attr.fbtype "
   fbtype NMTOKEN 'BUSY'
   ">
<!ENTITY % attr.language "
   language CDATA #IMPLIED
   ">
<!ENTITY % attr.member "
   member CDATA #IMPLIED
   ">
<!ENTITY % attr.partstat "
   partstat NMTOKEN 'NEEDS-ACTION'
   ">
<!ENTITY % attr.range "
   range NMTOKEN 'THISONLY'
   ">
<!ENTITY % attr.related "
   related NMTOKEN 'START'
   ">
<!ENTITY % attr.reltype "
   reltype NMTOKEN 'PARENT'
   ">
<!ENTITY % attr.role "
   role NMTOKEN 'REQ-PARTICIPANT'
   ">
<!ENTITY % attr.rsvp "
   rsvp NMTOKEN 'FALSE'
   ">
<!ENTITY % attr.sent-by "
   sent-by CDATA #IMPLIED
   ">
<!ENTITY % attr.tzid "
   tzid CDATA #IMPLIED
   ">
<!ENTITY % cal.comp "
   vevent | vtodo | vjournal | vfreebusy | vtimezone
   ">
<!ENTITY % vevent.opt1 "
   vclass | created | description | dtstamp | dtstart | geo |
   last-modified | location | organizer | priority | recurrence-id |
   sequence | status | summary | transp | uid | url |
   (dtend | duration)
   ">
<!ENTITY % vevent.optm "
   attach | attendee | categories | comment | contact |
   exdate | exrule | rdate | related-to | resources | request-status |
   rrule
   ">
<!ENTITY % vtodo.opt1 "
   vclass | completed | created | description | dtstamp | dtstart |
   geo | last-modified | location | organizer | percent | priority |
   recurrence-id | sequence | status | summary | uid | url |
   (due | duration)
   ">
<!ENTITY % vtodo.optm "
   attach | attendee | categories | comment | contact |
   exdate | exrule | request-status | related-to | resources |
   rdate | rrule


   ">
<!ENTITY % vjournal.opt1 "
   vclass | created | description | dtstart | dtstamp | last-modified |
   organizer | recurrence-id | sequence | status | summary | uid | url
   ">
<!ENTITY % vjournal.optm "
   attach | attendee | categories | comment | contact |
   exdate | exrule | related-to | rdate | rrule | request-status
   ">
<!ENTITY % vfreebusy.opt1 "
   contact | dtstamp | dtstart | dtend | duration |
   organizer | uid | url
   ">
<!ENTITY % vfreebusy.optm "
   attendee | comment | freebusy | request-status
   ">
<!ENTITY % vtimezone.man "
   tzid
   ">
<!ENTITY % vtimezone.opt1 "
   last-modified | tzurl
   ">
<!ENTITY % vtimezone.mann "
   (standard | daylight)*
   ">
<!ENTITY % standard.man "
   dtstart | tzoffsetto | tzoffsetfrom
   ">
<!ENTITY % standard.optm "


   comment | rdate | rrule | tzname
   ">
<!ENTITY % daylight.man "
   dtstart | tzoffsetto | tzoffsetfrom
   ">
<!ENTITY % daylight.optm "
   comment | rdate | rrule | tzname
   ">
<!ENTITY % audio.man "
   action, trigger
   ">
<!ENTITY % audio.optx "
   duration | repeat
   ">
<!ENTITY % audio.opt1 "
   attach
   ">
<!ENTITY % valarm.audio "
   trigger, (duration | repeat)*, attach
   ">
<!ENTITY % display.man "
   action, description, trigger
   ">
<!ENTITY % display.optx "
   duration | repeat
   ">
<!ENTITY % valarm.display "
   trigger, (duration | repeat)*
   ">
<!ENTITY % email.man "
   action, description, summary, trigger
   ">
<!ENTITY % email.optx "
   duration | repeat
   ">
<!ENTITY % email.optm "
   attach
   ">
<!ENTITY % email.mann "
   attendee
   ">
<!ENTITY % valarm.email "
   summary, trigger, (duration | repeat)*, attach*, attendee*
   ">
<!ENTITY % procedure.man "
   action, attach, trigger
   ">
<!ENTITY % procedure.optx "
   duration | repeat
   ">
<!ENTITY % procedure.opt1 "
   description
   ">
<!ENTITY % valarm.procedure "
   attach, trigger, (duration | repeat)*, description?
   ">
<!NOTATION BINARY  PUBLIC "-//IETF//NOTATION XCAL/Value Type/Binary//EN" >
<!NOTATION BOOLEAN  PUBLIC "-//IETF//NOTATION XCAL/Value Type/Boolean//EN" >
<!NOTATION CALADR  PUBLIC "-//IETF//NOTATION XCAL/Value Type/Calendar User Address//EN" >
<!NOTATION DATE  PUBLIC "-//IETF//NOTATION XCAL/Value Type/Date//EN" >
<!NOTATION DATE-TIME  PUBLIC "-//IETF//NOTATION XCAL/Value Type/Date-Time//EN" >
<!NOTATION DURATION  PUBLIC "-//IETF//NOTATION XCAL/Value Type/Duration//EN" >
<!NOTATION FLOAT  PUBLIC "-//IETF//NOTATION XCAL/Value Type/Float//EN" >
<!NOTATION INTEGER  PUBLIC "-//IETF//NOTATION XCAL/Value Type/Integer//EN" >
<!NOTATION PERIOD  PUBLIC "-//IETF//NOTATION XCAL/Value Type/Period of Time//EN" >
<!NOTATION RECUR  PUBLIC "-//IETF//NOTATION XCAL/Value Type/Recurrence Rule//EN" >
<!NOTATION TEXT  PUBLIC "-//IETF//NOTATION XCAL/Value Type/Text//EN" >
<!NOTATION TIME  PUBLIC "-//IETF//NOTATION XCAL/Value Type/Time//EN" >
<!NOTATION URI  PUBLIC "-//IETF//NOTATION XCAL/Value Type/URI//EN" >
<!NOTATION UTC-OFFSET  PUBLIC "-//IETF//NOTATION XCAL/Value Type/UTC-Offset//EN" >
<!NOTATION X-NAME  PUBLIC "-//IETF//NOTATION XCAL/Value Type/X-Name//EN" >
<!ELEMENT br EMPTY>
<!ELEMENT attach (extref|b64bin)>
<!ELEMENT extref EMPTY>
<!ATTLIST extref uri ENTITY #REQUIRED >
<!ELEMENT b64bin (#PCDATA)>
<!ATTLIST b64bin fmttype CDATA #REQUIRED >
<!ATTLIST b64bin value NOTATION (BINARY) #IMPLIED >
<!ELEMENT categories (item)*>
<!ELEMENT item (#PCDATA)>
<!ATTLIST item language CDATA #IMPLIED >
<!ATTLIST item value NOTATION (TEXT) #IMPLIED >
<!ELEMENT vclass (#PCDATA)>
<!ATTLIST vclass language CDATA #IMPLIED >
<!ATTLIST vclass value NOTATION (TEXT) #IMPLIED >
<!ELEMENT comment (#PCDATA)*>
<!ATTLIST comment language CDATA #IMPLIED >
<!ATTLIST comment altrep ENTITY #IMPLIED >
<!ATTLIST comment value NOTATION (TEXT) #IMPLIED >
<!ELEMENT description (#PCDATA)*>
<!ATTLIST description language CDATA #IMPLIED >
<!ATTLIST description altrep ENTITY #IMPLIED >
<!ATTLIST description value NOTATION (TEXT) #IMPLIED >
<!ELEMENT geo (lat,lon)>
<!ELEMENT lat (#PCDATA)>
<!ATTLIST lat value NOTATION (FLOAT) #IMPLIED >
<!ELEMENT lon (#PCDATA)>
<!ATTLIST lon value NOTATION (FLOAT) #IMPLIED >
<!ELEMENT location (#PCDATA)>
<!ATTLIST location language CDATA #IMPLIED >
<!ATTLIST location altrep ENTITY #IMPLIED >
<!ATTLIST location value NOTATION (TEXT) #IMPLIED >
<!ELEMENT percent (#PCDATA)>
<!ATTLIST percent value NOTATION (INTEGER) #IMPLIED >
<!ELEMENT priority (#PCDATA)>
<!ATTLIST priority value NOTATION (INTEGER) #IMPLIED >
<!ELEMENT resources (#PCDATA)>
<!ATTLIST resources language CDATA #IMPLIED >
<!ATTLIST resources altrep ENTITY #IMPLIED >
<!ATTLIST resources value NOTATION (TEXT) #IMPLIED >
<!ELEMENT status (#PCDATA)>
<!ATTLIST status language CDATA #IMPLIED >
<!ATTLIST status altrep ENTITY #IMPLIED >
<!ATTLIST status value NOTATION (TEXT) #IMPLIED >
<!ELEMENT summary (#PCDATA)>
<!ATTLIST summary language CDATA #IMPLIED >
<!ATTLIST summary altrep ENTITY #IMPLIED >
<!ATTLIST summary value NOTATION (TEXT) #IMPLIED >
<!ELEMENT dtstart (#PCDATA)>
<!ATTLIST dtstart tzid CDATA #IMPLIED >
<!ATTLIST dtstart value NOTATION (DATE-TIME|DATE) "DATE-TIME">
<!ELEMENT dtend (#PCDATA)>
<!ATTLIST dtend tzid CDATA #IMPLIED >
<!ATTLIST dtend value NOTATION (DATE-TIME|DATE) "DATE-TIME">
<!ELEMENT due (#PCDATA)>
<!ATTLIST due tzid CDATA #IMPLIED >
<!ATTLIST due value NOTATION (DATE-TIME|DATE) "DATE-TIME">
<!ELEMENT completed (#PCDATA)>
<!ATTLIST completed value NOTATION (DATE-TIME) #IMPLIED >
<!ELEMENT duration (#PCDATA)>
<!ATTLIST duration value NOTATION (DURATION) #IMPLIED >
<!ELEMENT freebusy (#PCDATA)>
<!ATTLIST freebusy fbtype NMTOKEN "BUSY">
<!ATTLIST freebusy value NOTATION (PERIOD) #IMPLIED >
<!ELEMENT transp (#PCDATA)>
<!ATTLIST transp value NOTATION (TEXT) #IMPLIED >
<!ELEMENT tzid (#PCDATA)>
<!ATTLIST tzid value NOTATION (TEXT) #IMPLIED >
<!ELEMENT tzname (#PCDATA)>
<!ATTLIST tzname language CDATA #IMPLIED >
<!ATTLIST tzname value NOTATION (TEXT) #IMPLIED >
<!ELEMENT tzoffsetfrom (#PCDATA)>
<!ATTLIST tzoffsetfrom value NOTATION (UTC-OFFSET) #IMPLIED >
<!ELEMENT tzoffsetto (#PCDATA)>
<!ATTLIST tzoffsetto value NOTATION (UTC-OFFSET) #IMPLIED >
<!ELEMENT tzurl EMPTY>
<!ATTLIST tzurl uri ENTITY #REQUIRED >
<!ELEMENT attendee (#PCDATA)>
<!ATTLIST attendee language CDATA #IMPLIED >
<!ATTLIST attendee cn CDATA "">
<!ATTLIST attendee role NMTOKEN "REQ-PARTICIPANT">
<!ATTLIST attendee partstat NMTOKEN "NEEDS-ACTION">
<!ATTLIST attendee rsvp NMTOKEN "FALSE">
<!ATTLIST attendee cutype NMTOKEN "INDIVIDUAL">
<!ATTLIST attendee member CDATA #IMPLIED >
<!ATTLIST attendee delegated-to CDATA #IMPLIED >
<!ATTLIST attendee delegated-from CDATA #IMPLIED >
<!ATTLIST attendee sent-by CDATA #IMPLIED >
<!ATTLIST attendee dir ENTITY #IMPLIED >
<!ATTLIST attendee value NOTATION (CALADR) #IMPLIED >
<!ELEMENT contact (#PCDATA)*>
<!ATTLIST contact language CDATA #IMPLIED >
<!ATTLIST contact altrep ENTITY #IMPLIED >
<!ATTLIST contact value NOTATION (TEXT) #IMPLIED >
<!ELEMENT organizer (#PCDATA)>
<!ATTLIST organizer language CDATA #IMPLIED >
<!ATTLIST organizer cn CDATA "">
<!ATTLIST organizer sent-by CDATA #IMPLIED >
<!ATTLIST organizer dir ENTITY #IMPLIED >
<!ATTLIST organizer value NOTATION (CALADR) #IMPLIED >
<!ELEMENT recurrence-id (#PCDATA)>
<!ATTLIST recurrence-id tzid CDATA #IMPLIED >
<!ATTLIST recurrence-id range NMTOKEN "THISONLY">
<!ATTLIST recurrence-id value NOTATION (DATE-TIME|DATE) "DATE-TIME">
<!ELEMENT related-to (#PCDATA)>
<!ATTLIST related-to reltype NMTOKEN "PARENT">
<!ATTLIST related-to value NOTATION (TEXT) #IMPLIED >
<!ELEMENT url EMPTY>
<!ATTLIST url uri ENTITY #REQUIRED >
<!ELEMENT uid (#PCDATA)>
<!ATTLIST uid value NOTATION (TEXT) #IMPLIED >
<!ELEMENT exdate (#PCDATA)>
<!ATTLIST exdate tzid CDATA #IMPLIED >
<!ATTLIST exdate value NOTATION (DATE-TIME|DATE) "DATE-TIME">
<!ELEMENT exrule (#PCDATA)>
<!ATTLIST exrule value NOTATION (RECUR) #IMPLIED >
<!ELEMENT rdate (#PCDATA)>
<!ATTLIST rdate tzid CDATA #IMPLIED >
<!ATTLIST rdate value NOTATION (DATE-TIME|DATE) "DATE-TIME">
<!ELEMENT rrule (#PCDATA)>
<!ATTLIST rrule value NOTATION (RECUR) #IMPLIED >
<!ELEMENT action (#PCDATA)>
<!ATTLIST action value NOTATION (TEXT) #IMPLIED >
<!ELEMENT repeat (#PCDATA)>
<!ATTLIST repeat value NOTATION (INTEGER) #IMPLIED >
<!ELEMENT trigger (#PCDATA)>
<!ATTLIST trigger related NMTOKEN "START">
<!ATTLIST trigger value NOTATION (DURATION|DATE-TIME) "DURATION">
<!ELEMENT created (#PCDATA)>
<!ATTLIST created value NOTATION (DATE-TIME) #IMPLIED >
<!ELEMENT dtstamp (#PCDATA)>
<!ATTLIST dtstamp value NOTATION (DATE-TIME) #IMPLIED >
<!ELEMENT last-modified (#PCDATA)>
<!ATTLIST last-modified value NOTATION (DATE-TIME) #IMPLIED >
<!ELEMENT sequence (#PCDATA)>
<!ATTLIST sequence value NOTATION (INTEGER) #IMPLIED >
<!ELEMENT request-status (#PCDATA)>
<!ATTLIST request-status language CDATA #IMPLIED >
<!ATTLIST request-status value NOTATION (TEXT) #IMPLIED >
<!ELEMENT iCalendar (vcalendar)+>
<!ELEMENT vcalendar (vevent|vtodo|vjournal|vfreebusy|vtimezone)*>
<!ATTLIST vcalendar language CDATA #IMPLIED >
<!ATTLIST vcalendar xmlns CDATA #FIXED "http://www.ietf.org/internet-drafts/draft-ietf-calsch-many-xcal-00.txt">
<!ATTLIST vcalendar calscale CDATA "GREGORIAN">
<!ATTLIST vcalendar method CDATA "PUBLISH">
<!ATTLIST vcalendar version CDATA #REQUIRED >
<!ATTLIST vcalendar prodid CDATA #IMPLIED >
<!ELEMENT vevent ((vclass|created|description|dtstamp|dtstart|geo|last-modified|location|organizer|priority|recurrence-id|sequence|status|summary|transp|uid|url|dtend|duration)*,(attach|attendee|categories|comment|contact|exdate|exrule|rdate|related-to|resources|request-status|rrule)*,(valarm)*)>
<!ELEMENT vtodo ((vclass|completed|created|description|dtstamp|dtstart|geo|last-modified|location|organizer|percent|priority|recurrence-id|sequence|status|summary|uid|url|due|duration)*,(attach|attendee|categories|comment|contact|exdate|exrule|request-status|related-to|resources|rdate|rrule)*,(valarm)*)>
<!ELEMENT vjournal ((vclass|created|description|dtstart|dtstamp|last-modified|organizer|recurrence-id|sequence|status|summary|uid|url)*,(attach|attendee|categories|comment|contact|exdate|exrule|related-to|rdate|rrule|request-status)*)>
<!ELEMENT vfreebusy ((contact|dtstamp|dtstart|dtend|duration|organizer|uid|url)*,(attendee|comment|freebusy|request-status)*)>
<!ELEMENT vtimezone (tzid,(last-modified|tzurl)*,(standard|daylight)*)>
<!ELEMENT standard ((dtstart|tzoffsetto|tzoffsetfrom)*,(comment|rdate|rrule|tzname)*)>
<!ELEMENT daylight ((dtstart|tzoffsetto|tzoffsetfrom)*,(comment|rdate|rrule|tzname)*)>
<!ELEMENT valarm (action,((trigger,(duration|repeat)*,attach)|(description,((trigger,(duration|repeat)*)|(summary,trigger,(duration|repeat)*,(attach)*,(attendee)*)))|(attach,trigger,(duration|repeat)*,(description)?)))>
