From 0f14cfe03d37c2671358b1e2cabe91fa7f7e2fe9 Mon Sep 17 00:00:00 2001 From: Ronald Tse Date: Wed, 4 Dec 2024 17:10:54 +0800 Subject: [PATCH] chore: delete vpoll document since it has been moved to separate repository: cc-vpoll, fixes #30 --- vpoll/draft-york-vpoll.html.pdf | Bin 340638 -> 0 bytes vpoll/draft-york-vpoll.txt | 3416 ------------------ vpoll/draft-york-vpoll.xml | 5728 ------------------------------- 3 files changed, 9144 deletions(-) delete mode 100644 vpoll/draft-york-vpoll.html.pdf delete mode 100644 vpoll/draft-york-vpoll.txt delete mode 100644 vpoll/draft-york-vpoll.xml diff --git a/vpoll/draft-york-vpoll.html.pdf b/vpoll/draft-york-vpoll.html.pdf deleted file mode 100644 index 532f1c91c64fff602db787e852f1acf243d2a895..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 340638 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�})NWOcE4`uQ}VTvJY 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 diff --git a/vpoll/draft-york-vpoll.txt b/vpoll/draft-york-vpoll.txt deleted file mode 100644 index 3905549..0000000 --- a/vpoll/draft-york-vpoll.txt +++ /dev/null @@ -1,3416 +0,0 @@ - - - - -Network Working Group E. York, Ed. -Internet-Draft C. Daboo, Ed. -Updates: 5545 (if approved) Apple Inc. -Intended status: Standards Track M. Douglass, Ed. -Expires: August 5, 2017 Spherical Cow Group - February 2017 - - - VPOLL: Consensus Scheduling Component for iCalendar - draft-york-vpoll-04 - -Abstract - - This specification introduces a new iCalendar component which allows - for consensus scheduling, that is, voting on a number of alternative - meeting or task alternatives. - -Status of This Memo - - This Internet-Draft is submitted in full conformance with the - provisions of BCP 78 and BCP 79. - - Internet-Drafts are working documents of the Internet Engineering - Task Force (IETF). Note that other groups may also distribute - working documents as Internet-Drafts. The list of current Internet- - Drafts is at http://datatracker.ietf.org/drafts/current/. - - Internet-Drafts are draft documents valid for a maximum of six months - and may be updated, replaced, or obsoleted by other documents at any - time. It is inappropriate to use Internet-Drafts as reference - material or to cite them other than as "work in progress." - - This Internet-Draft will expire on August 5, 2017. - -Copyright Notice - - Copyright (c) 2017 IETF Trust and the persons identified as the - document authors. All rights reserved. - - This document is subject to BCP 78 and the IETF Trust's Legal - Provisions Relating to IETF Documents - (http://trustee.ietf.org/license-info) in effect on the date of - publication of this document. Please review these documents - carefully, as they describe your rights and restrictions with respect - to this document. Code Components extracted from this document must - include Simplified BSD License text as described in Section 4.e of - the Trust Legal Provisions and are provided without warranty as - described in the Simplified BSD License. - - - -York, et al. Expires August 5, 2017 [Page 1] - -Internet-Draft VPOLL February 2017 - - -Table of Contents - - 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 - 2. Conventions and Terms Used in This Document . . . . . . . . . 4 - 3. Simple Consensus Scheduling . . . . . . . . . . . . . . . . . 5 - 3.1. The VPOLL Component: An Overview . . . . . . . . . . . . 5 - 3.2. The VPOLL Subcomponents: An Overview . . . . . . . . . . 7 - 3.3. VPOLL responses . . . . . . . . . . . . . . . . . . . . . 8 - 3.4. VPOLL updates . . . . . . . . . . . . . . . . . . . . . . 9 - 3.5. VPOLL Completion . . . . . . . . . . . . . . . . . . . . 11 - 3.6. Other Responses . . . . . . . . . . . . . . . . . . . . . 11 - 4. iCalendar Extensions . . . . . . . . . . . . . . . . . . . . 12 - 4.1. Updated Relation Type Value . . . . . . . . . . . . . . . 12 - 4.2. Updated Status Value . . . . . . . . . . . . . . . . . . 12 - 4.3. New Property Parameters . . . . . . . . . . . . . . . . . 13 - 4.3.1. Required . . . . . . . . . . . . . . . . . . . . . . 13 - 4.3.2. Stay-Informed . . . . . . . . . . . . . . . . . . . . 13 - 4.4. New Properties . . . . . . . . . . . . . . . . . . . . . 14 - 4.4.1. Accept-Response . . . . . . . . . . . . . . . . . . . 14 - 4.4.2. Poll-Completion . . . . . . . . . . . . . . . . . . . 14 - 4.4.3. Poll-Item-Id . . . . . . . . . . . . . . . . . . . . 16 - 4.4.4. Poll-Mode . . . . . . . . . . . . . . . . . . . . . . 16 - 4.4.5. Poll-properties . . . . . . . . . . . . . . . . . . . 17 - 4.4.6. Poll-Winner . . . . . . . . . . . . . . . . . . . . . 18 - 4.4.7. Reply-URL . . . . . . . . . . . . . . . . . . . . . . 18 - 4.4.8. Response . . . . . . . . . . . . . . . . . . . . . . 19 - 4.4.9. Voter . . . . . . . . . . . . . . . . . . . . . . . . 20 - 4.5. New Components . . . . . . . . . . . . . . . . . . . . . 21 - 4.5.1. VPOLL Component . . . . . . . . . . . . . . . . . . . 22 - 4.5.2. VVOTER Component . . . . . . . . . . . . . . . . . . 24 - 4.5.3. VOTE Component . . . . . . . . . . . . . . . . . . . 25 - 5. Poll Modes . . . . . . . . . . . . . . . . . . . . . . . . . 26 - 5.1. POLL-MODE:BASIC . . . . . . . . . . . . . . . . . . . . . 27 - 5.1.1. Property restrictions . . . . . . . . . . . . . . . . 27 - 5.1.2. Outcome reporting . . . . . . . . . . . . . . . . . . 27 - 6. iTip Extensions . . . . . . . . . . . . . . . . . . . . . . . 27 - 6.1. Methods . . . . . . . . . . . . . . . . . . . . . . . . . 27 - 6.2. Interoperability Models . . . . . . . . . . . . . . . . . 29 - 6.2.1. Delegation . . . . . . . . . . . . . . . . . . . . . 29 - 6.2.2. Acting on Behalf of Other Calendar Users . . . . . . 29 - 6.2.3. Component Revisions . . . . . . . . . . . . . . . . . 29 - 6.2.4. Message Sequencing . . . . . . . . . . . . . . . . . 29 - 6.3. Application Protocol Elements . . . . . . . . . . . . . . 29 - 6.3.1. Methods for VPOLL Calendar Components . . . . . . . . 29 - 6.3.1.1. PUBLISH . . . . . . . . . . . . . . . . . . . . . 30 - 6.3.1.2. REQUEST . . . . . . . . . . . . . . . . . . . . . 32 - 6.3.1.2.1. Rescheduling a poll . . . . . . . . . . . . . 35 - 6.3.1.2.2. Updating or Reconfirmation of a Poll . . . . 35 - - - -York, et al. Expires August 5, 2017 [Page 2] - -Internet-Draft VPOLL February 2017 - - - 6.3.1.2.3. Confirmation of a Poll . . . . . . . . . . . 36 - 6.3.1.2.4. Closing a Poll . . . . . . . . . . . . . . . 36 - 6.3.1.2.5. Delegating a POll to Another CU . . . . . . . 36 - 6.3.1.2.6. Changing the Organizer . . . . . . . . . . . 37 - 6.3.1.2.7. Sending on Behalf of the Organizer . . . . . 37 - 6.3.1.2.8. Forwarding to an Uninvited CU . . . . . . . . 37 - 6.3.1.2.9. Updating Voter Status . . . . . . . . . . . . 38 - 6.3.1.3. REPLY . . . . . . . . . . . . . . . . . . . . . . 38 - 6.3.1.4. CANCEL . . . . . . . . . . . . . . . . . . . . . 40 - 6.3.1.5. REFRESH . . . . . . . . . . . . . . . . . . . . . 42 - 6.3.1.6. POLLSTATUS . . . . . . . . . . . . . . . . . . . 44 - 7. CalDAV Extensions . . . . . . . . . . . . . . . . . . . . . . 46 - 7.1. Calendar Collection Properties . . . . . . . . . . . . . 46 - 7.1.1. CALDAV:supported-vpoll-component-sets . . . . . . . . 46 - 7.1.2. CALDAV:vpoll-max-items . . . . . . . . . . . . . . . 47 - 7.1.3. CALDAV:vpoll-max-active . . . . . . . . . . . . . . . 48 - 7.1.4. CALDAV:vpoll-max-voters . . . . . . . . . . . . . . . 49 - 7.1.5. CalDAV:even-more-properties . . . . . . . . . . . . . 50 - 7.1.6. Extensions to CalDAV scheduling . . . . . . . . . . . 50 - 7.2. Additional Preconditions for PUT, COPY, and MOVE . . . . 50 - 7.3. CalDAV:calendar-query Report . . . . . . . . . . . . . . 51 - 7.3.1. Example: Partial Retrieval of VPOLL . . . . . . . . . 51 - 7.4. CalDAV time ranges . . . . . . . . . . . . . . . . . . . 53 - 8. Security Considerations . . . . . . . . . . . . . . . . . . . 54 - 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 54 - 9.1. Parameter Registrations . . . . . . . . . . . . . . . . . 55 - 9.2. Property Registrations . . . . . . . . . . . . . . . . . 55 - 9.3. POLL-MODE Registration Template . . . . . . . . . . . . . 55 - 9.4. POLL-MODE Registrations . . . . . . . . . . . . . . . . . 55 - 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 56 - 11. Normative References . . . . . . . . . . . . . . . . . . . . 56 - Appendix A. Open issues . . . . . . . . . . . . . . . . . . . . 57 - Appendix B. Change log . . . . . . . . . . . . . . . . . . . . . 59 - Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 60 - -1. Introduction - - The currently existing approach to agreeing on meeting times using - iTip [RFC5546] and/or iMip [RFC6047] has some significant failings. - There is no useful bargaining or suggestion mechanism in iTip, only - the ability for a potential attendee to accept or refuse or to - counter with a time of their own choosing. - - Part of the problem is that for many potential attendees, their - freebusy is not an accurate representation of their availability. In - fact, when trying to schedule conference calls across different - organizations, attendees may not be allowed to provide freebusy - - - - -York, et al. Expires August 5, 2017 [Page 3] - -Internet-Draft VPOLL February 2017 - - - information or availability as this may reveal something of the - organizations internal activities. - - A number of studies have shown that large amounts of time are spent - trying to come to an agreement - up to and beyond 20 working hours - per meeting. Many organizers fall back on other approaches such as - phone calls and email to determine a suitable time. - - Online services have appeared as a result and these allow - participants to vote on a number of alternatives without revealing or - using freebusy or availability. When agreement is reached a - conventional scheduling message may be sent to the attendees. This - approach appears to reach consensus fairly rapidly. Peer pressure - may have some bearing on this as all voters are usually able to see - the current state of the voting and may adjust their own meeting - schedules to make themselves available for a popular choice. - - The component and properties defined in this specification provide a - standardized structure for this process and allow calendar clients - and servers and web based services to interact. - - These structures also have uses beyond the relatively simple needs of - most meeting organizers. The process of coming to consensus can also - be viewed as a bidding process. - -2. Conventions and Terms Used in This Document - - The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", - "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and - "OPTIONAL" in this document are to be interpreted as described in - [RFC2119]. - - Additionally we will use the following terms: - - Consensus Scheduling: The process whereby we come to some agreement - on meeting or task alternatives and then book that meeting or - task. - - Active Vpoll: A vpoll may have a DTSTART, DTEND and DURATION which - may define the start and end of the active voting period. - - Voter: A participant who votes on the alternatives. A voter need - not be an attendee of any of the alternatives presented. - - - - - - - - -York, et al. Expires August 5, 2017 [Page 4] - -Internet-Draft VPOLL February 2017 - - -3. Simple Consensus Scheduling - - This specification defines components and properties which can be - used for simple consensus scheduling but also have the generality to - handle more complex cases. To provide an easy (and for many - - sufficient) introduction to consensus scheduling and VPOLL we will - outline the flow of information for the simple case of voting on a - number of meeting alternatives which differ only in time. In - addition the voters will all be potential attendees. - - This specification not only defines data structures but adds a new - iTip method used when consensus has been reached. This document will - show how a VPOLL object is used to inform voters of the state of a - simple vote on some alternatives. - -3.1. The VPOLL Component: An Overview - - The VPOLL component acts as a wrapper for a number of alternatives to - be voted on, together with some properties and a new component used - to maintain the state of the voting. For our simple example the - following VPOLL properties and sub-components are either required or - appropriate: - - DTSTAMP: The usual [RFC5545] property. - - SEQUENCE: The usual [RFC5545] property. See below for SEQUENCE - behavior. - - UID: The usual [RFC5545] property. - - ORGANIZER: The usual [RFC5545] property. In general this need not - be an organizer of any of the alternatives. In this simple - outline we assume it is the same. - - SUMMARY: The usual [RFC5545] property. This optional but - recommended property provides the a short title to the poll. - - DESCRIPTION: The usual [RFC5545] property. This optional property - provides more details. - - DTEND: The usual [RFC5545] property. This optional property - provides a poll closing time and date after which the VPOLL is no - longer active. - - POLL-MODE: A new property which defines how the votes are used to - obtain a result. For our use case it will take the value "BASIC" - meaning one event will be chosen from the alternatives. - - - - -York, et al. Expires August 5, 2017 [Page 5] - -Internet-Draft VPOLL February 2017 - - - POLL-COMPLETION: A new property which defines who (server or client) - chooses and/or submits the winning choice. In our example the - value is "SERVER-SUBMIT" which means the client chooses the winner - but the server will submit the winning choice. - - POLL-PROPERTIES: A new property which defines which icalendar - properties are being voted on. For our use case it will take the - value "DTSTART, LOCATION" meaning only those properties are - significant for voting. Other properties in the events may differ - but are not considered significant for the voting process. - - VVOTER: A new component. There is one of these for each voter and - it contains a VOTER property to identify the voter and one VOTE - component for each item being voted on. - - VOTE: A new component. There is one of these for each voter and - choice. It usually contains at least a POLL-ITEM-ID property to - identify the choice and a RESPONSE property to provide a vote. - For more complex poll modes it may contain other information such - as cost or estimated duration. - - VOTER: A new property. There is one of these for each voter and it - is similar to the [RFC5545] ATTENDEE property. It identifies the - VVOTER component to show who is taking part in the voting and - their results. - - VEVENT: In our simple use case there will be multiple VEVENT sub- - components defining the alternatives. Each will have a different - date and or time for the meeting. - - Putting that together we can construct an example VPOLL with 3 voters - and 3 alternative meetings: - - - - - - - - - - - - - - - - - - - -York, et al. Expires August 5, 2017 [Page 6] - -Internet-Draft VPOLL February 2017 - - - BEGIN:VCALENDAR - VERSION:2.0 - PRODID:-//Example//Example - METHOD:REQUEST - BEGIN:VPOLL - POLL-MODE:BASIC - POLL-COMPLETION:SERVER-SUBMIT - POLL-PROPERTIES:DTSTART,LOCATION - ORGANIZER:mailto:mike@example.com - UID:sched01-1234567890 - DTSTAMP:20120101T000000Z - SUMMARY:What to do this week - DTEND:20120101T000000Z - BEGIN: VVOTER - VOTER:mailto:cyrus@example.com - END VVOTER - BEGIN: VVOTER - VOTER:mailto:eric@example.com - END VVOTER - BEGIN: VVOTER - VOTER:mailto:mike@example.com - END VVOTER - BEGIN:VEVENT.......(with a poll-item-id=1) - END:VEVENT - BEGIN:VEVENT.......(with a poll-item-id=2) - END:VEVENT - BEGIN:VEVENT.......(with a poll-item-id=3) - END:VEVENT - END:VPOLL - END:VCALENDAR - - As can be seen in the example above, there is an iTip METHOD property - with the value REQUEST. The VPOLL object will be distributed to all - the voters, either through iMip or through some VPOLL enabled - service. - -3.2. The VPOLL Subcomponents: An Overview - - Within the VPOLL component we have the alternatives to vote on. In - many respects these are standard [RFC5545] components. For our - simple use case they are all VEVENT components. In addition to the - usual [RFC5545] properties some extra properties are used for a - VPOLL. - - POLL-ITEM-ID: This provides a unique reference to the sub-component - within the VPOLL. It's value SHOULD be a small integer. - - - - - -York, et al. Expires August 5, 2017 [Page 7] - -Internet-Draft VPOLL February 2017 - - -3.3. VPOLL responses - - Upon receipt of a VPOLL REQUEST the voter will reply with a VPOLL - component containing their vote. In our simple case it will have the - following properties and components: - - DTSTAMP: The usual [RFC5545] property. - - SEQUENCE: The usual [RFC5545] property. See below for SEQUENCE - behavior. - - UID: Same as the request. - - ORGANIZER: Same as the request. - - SUMMARY: Same as the request. - - VVOTER: One only. - - VOTER: One only inside the VVOTER component - the voter replying. - - VOTE: One per item being voted on. There does not need to be one - for each choice. - - POLL-ITEM-ID: One inside each VOTE component to identify the choice. - - RESPONSE: One inside each VOTE component to specify the vote. - - Note that a voter can send a number of REPLYs for each REQUEST sent - by the organizer. Each REPLY completely replaces the voting record - for that voter for all components being voted on. In our example, if - Eric responds and votes for items 1 and 2 and then responds again - with a vote for only item 3, the final outcome is one vote on item 3. - - Putting this together we can construct an example REPLY VPOLL from - Cyrus: - - - - - - - - - - - - - - - -York, et al. Expires August 5, 2017 [Page 8] - -Internet-Draft VPOLL February 2017 - - - BEGIN:VCALENDAR - VERSION:2.0 - PRODID:-//Example//Example - METHOD: REPLY - BEGIN:VPOLL - ORGANIZER:mailto:mike@example.com - UID:sched01-1234567890 - DTSTAMP:20120101T010000Z - SUMMARY:What to do this week - BEGIN:VVOTER - VOTER:mailto:cyrus@example.com - BEGIN:VOTE - POLL-ITEM-ID:1 - RESPONSE:50 - COMMENT:Work on iTIP - END:VOTE - BEGIN:VOTE - POLL-ITEM-ID:2 - RESPONSE:100 - COMMENT:Work on WebDAV - END:VOTE - BEGIN:VOTE - POLL-ITEM-ID:3 - RESPONSE:0 - END:VOTE - END:VVOTER - END:VPOLL - END:VCALENDAR - -3.4. VPOLL updates - - When the organizer receives a response from one or more voters the - current state of the poll is sent to all voters. The new iTip method - POLLSTATUS is used. The VPOLL can contain a reduced set of - properties but MUST contain DTSTAMP, SEQUENCE (if not 0), UID, - ORGANIZER and one or more VVOTER components each populated with a - VOTER property and zero or more VOTE components. - - An example: - - - - - - - - - - - - -York, et al. Expires August 5, 2017 [Page 9] - -Internet-Draft VPOLL February 2017 - - - BEGIN:VCALENDAR - VERSION:2.0 - PRODID:-//Example//Example - METHOD: POLLSTATUS - BEGIN:VPOLL - ORGANIZER:mailto:mike@example.com - UID:sched01-1234567890 - DTSTAMP:20120101T020000Z - SEQUENCE:0 - SUMMARY:What to do this week - BEGIN:VVOTER - VOTER:mailto:cyrus@example.com - BEGIN: VOTE - POLL-ITEM-ID:1 - RESPONSE:50 - COMMENT:Work on iTIP - END:VOTE - BEGIN:VOTE - POLL-ITEM-ID:2 - RESPONSE:100 - COMMENT:Work on WebDAV - END:VOTE - BEGIN:VOTE - POLL-ITEM-ID:3 - RESPONSE:0 - END:VOTE - END:VVOTER - BEGIN:VVOTER - VOTER:mailto:eric@example.com - BEGIN:VOTE - POLL-ITEM-ID:1 - RESPONSE:100 - END:VOTE - BEGIN:VOTE - POLL-ITEM-ID:2 - RESPONSE:100 - END:VOTE - BEGIN:VOTE - POLL-ITEM-ID:3 - RESPONSE:0 - END:VOTE - END:VVOTER - END:VPOLL - END:VCALENDAR - - - - - - - -York, et al. Expires August 5, 2017 [Page 10] - -Internet-Draft VPOLL February 2017 - - -3.5. VPOLL Completion - - After a number of REPLY messages have been received the poll will be - considered complete. If there is a DTEND on the poll the system may - automatically close the poll, or the organizer may, at any time, - consider the poll complete. A VPOLL can be completed (and - effectively closed for voting) by sending an iTip REQUEST message - with the VPOLL STATUS property set to COMPLETED. - - The poll winner is confirmed by sending a final iTip REQUEST message - with the VPOLL STATUS property set to CONFIRMED. In this case the - VPOLL component contains all the events being voted on along with a - POLL-WINNER property to identify the winning event. As the POLL- - COMPLETION property is set to SERVER-SUBMIT the server will submit - the winning choice and when it has done so set the STATUS to - "SUBMITTED". - - The VPOLL confirmation example: - - BEGIN:VCALENDAR - VERSION:2.0 - PRODID:-//Example//Example - METHOD: REQUEST - BEGIN:VPOLL - ORGANIZER:mailto:douglm@example.com - UID:sched01-1234567890 - DTSTAMP:20120101T030000Z - COMPLETED:20120101T030000Z - POLL-COMPLETION:SERVER-SUBMIT - SEQUENCE:0 - SUMMARY:What to do this week - STATUS:CONFIRMED - POLL-WINNER:3 - BEGIN:VEVENT.......(with a poll-item-id=1) - END:VEVENT - BEGIN:VEVENT.......(with a poll-item-id=2) - END:VEVENT - BEGIN:VEVENT.......(with a poll-item-id=3) - END:VEVENT - END:VPOLL - END:VCALENDAR - -3.6. Other Responses - - A voter being asked to choose between a number of ORGANIZER supplied - alternatives may find none of them acceptable or may simply not care. - - - - - -York, et al. Expires August 5, 2017 [Page 11] - -Internet-Draft VPOLL February 2017 - - - An alternative response, which may be disallowed by the ORGANIZER, is - to send back the respondees availability or freebusy or even one or - more new, alternative choices. - - This is accomplished by responding with a VOTE component which has no - POLL-ITEM-ID property. In this case it MUST contain some alternative - information. What form this takes depends on the poll mode in - effect. - -4. iCalendar Extensions - -4.1. Updated Relation Type Value - - Relationship parameter type values are defined in section 3.2.15. of - [RFC5545]. This specification updates that type to include the new - relationship value POLL to provide a link to the VPOLL component in - which the current component appears. - - Format Definition: - - This property parameter is redefined by the following notation: - - reltypeparam /= "RELTYPE" "=" "POLL" - ; Property value is a VPOLL uid - - Description: This parameter can be specified on a property that - references another related calendar component. The new parameter - value indicates that the associated property references a VPOLL - component which contains the current component. - -4.2. Updated Status Value - - Status property values are defined in section 3.8.1.11. of [RFC5545]. - This specification updates that type to define valid VPOLL status - values. - - Format Definition: - - - - - - - - - - - - - - -York, et al. Expires August 5, 2017 [Page 12] - -Internet-Draft VPOLL February 2017 - - - This property parameter is redefined by the following notation: - - statvalue /= statvalue-poll - ; Status values for "VPOLL". - statvalue-poll = "IN-PROCESS" - / "COMPLETED" ; Poll has closed, - ; nothing has been chosen yet - / "CONFIRMED" ; Poll has closed and - ; winning items confirmed - / "SUBMITTED" ; The winning item has been - ; submitted - / "CANCELLED" - - Description: These values allow clients and servers to handle the - choosing and submission of winning choices. - - If the client is choosing and the server submitting then the - client should set the POLL-WINNER property, set the status to - CONFIRMED and save the poll. When the server submits the winning - choice it will set the status to SUBMITTED. - -4.3. New Property Parameters - -4.3.1. Required - - Parameter name: REQUIRED - - Purpose: To specify whether the associated property is required in - the current context. - - Format Definition: - - This parameter is defined by the following notation: - - requirededparam = "REQUIRED" "=" ("TRUE" / "FALSE") - ; Default is FALSE - - Description: This parameter MAY be specified on REPLY-URL and, if - the value is TRUE, indicates the organizer requires all replies to - be made via the specified service rather than iTip replies. - -4.3.2. Stay-Informed - - Parameter name: STAY-INFORMED - - Purpose: To specify the voter also wants to be added as an ATTENDEE - when the poll is confirmed. - - - - -York, et al. Expires August 5, 2017 [Page 13] - -Internet-Draft VPOLL February 2017 - - - Format Definition: - - This parameter is defined by the following notation: - - stayinformedparam = "STAY-INFORMED" "=" ("TRUE" / "FALSE") - ; Default is FALSE - - Description: This parameter MAY be specified on VOTER and, if the - value is TRUE, indicates the voter wishes to be added to the final - choice as a non participant. - -4.4. New Properties - -4.4.1. Accept-Response - - Property name: ACCEPT-RESPONSE - - Purpose: This property is used in VPOLL to indicate the types of - component that may be supplied in a response. - - Property Parameters: Non-standard or iana parameters can be - specified on this property. - - Conformance: This property MAY be specified in a VPOLL component. - - Description: When used in a VPOLL this property indicates what - allowable component types may be returned in a reply. Typically - this would allow a voter to respond with their freebusy or - availability rather than choosing one of the presented - alternatives - - If this property is not present voters are only allowed to respond - to the choices in the request. - - Format Definition: - - This property is defined by the following notation: - - acceptresponse = "ACCEPT-RESPONSE" acceptresponseparams ":" - iana-token ("," iana-token) CRLF - - acceptresponseparams = *(";" other-param) - -4.4.2. Poll-Completion - - Property name: POLL-COMPLETION - - - - - -York, et al. Expires August 5, 2017 [Page 14] - -Internet-Draft VPOLL February 2017 - - - Purpose: This property is used in VPOLL to indicate whether the - client or server is responsible for choosing and/or submitting the - winner(s). - - Description: When a VPOLL is stored on a server which is capable of - handling choosing and submission of winning choices a value of - SERVER indicates that the server should close the poll, choose the - winner and submit whenever it is appropriate to do so. - - For example, in BASIC poll-mode, reaching the DTEND of the poll - could trigger this server side action. - - Server initiated submission requires that the submitted choice - MUST be a valid calendaring component. - - POLL-COMPLETION=SERVER-SUBMIT allows the client to set the poll- - winner, set the status to CONFIRMED and then store the poll on the - server. The server will then submit the winning choice and set - the status to SUBMITTED. - - Format Definition: - - This property is defined by the following notation: - - poll-completion = "POLL-COMPLETION" pcparam ":" pcvalue CRLF - - pcparam = *(";" other-param) - - pcvalue = "SERVER" ; The server is responsible for both choosing and - ; submitting the winner(s) - / "SERVER-SUBMIT" ; The server is responsible for - ; submitting the winner(s). The client chooses. - / "SERVER-CHOICE" ; The server is responsible for - ; choosing the winner(s). The client will submit. - / "CLIENT" ; The client is responsible for both choosing and - ; submitting the winner(s) - / iana-token - / x-name - ;Default is CLIENT - - Example: - - The following is an example of this property: - - POLL-COMPLETION: SERVER-SUBMIT - - - - - - -York, et al. Expires August 5, 2017 [Page 15] - -Internet-Draft VPOLL February 2017 - - -4.4.3. Poll-Item-Id - - Property name: POLL-ITEM-ID - - Purpose: This property is used in VPOLL child components as an - identifier. - - Value type: INTEGER - - Property Parameters: Non-standard parameters can be specified on - this property. - - Conformance: This property MUST be specified in a VOTE component and - in VPOLL choice items. - - Description: In a METHOD:REQUEST each choice component MUST have a - POLL-ITEM-ID property. Each set of components with the same POLL- - ITEM-ID value represents one overall set of items to be voted on. - - POLL-ITEM-ID SHOULD be a unique small integer for each component - or set of components. If it remains the same between REQUESTs - then the previous response for that component MAY be re-used. To - force a re-vote on a component due to a significant change, the - POLL-ITEM-ID MUST change. - - Format Definition: - - This property is defined by the following notation: - - pollitemid = "POLL-ITEM-ID" pollitemdparams ":" - integer CRLF - - pollitemidparams = *( - (";" other-param) - ) - - -4.4.4. Poll-Mode - - Property name: POLL-MODE - - Purpose: This property is used in VPOLL to indicate what voting mode - is to be applied. - - Property Parameters: Non-standard or iana parameters can be - specified on this property. - - - - - -York, et al. Expires August 5, 2017 [Page 16] - -Internet-Draft VPOLL February 2017 - - - Conformance: This property MAY be specified in a VPOLL component or - its sub-components. - - Description: The poll mode defines how the votes are applied to - obtain a result. BASIC mode, the default, means that the voters - are selecting one component (or group of components) with a given - POLL=ITEM-ID. - - Other polling modes may be defined in updates to this - specification. These may allow for such modes as ranking or task - assignment. - - Format Definition: - - This property is defined by the following notation: - - pollmode = "POLL-MODE" pollmodeparams ":" - ("BASIC" / iana-token / other-token) CRLF - - pollmodeparams = *(";" other-param) - - -4.4.5. Poll-properties - - Property name: POLL-PROPERTIES - - Purpose: This property is used in VPOLL to define which icalendar - properties are being voted on. - - Property Parameters: Non-standard or iana parameters can be - specified on this property. - - Conformance: This property MAY be specified in a VPOLL component. - - Description: This property defines which icalendar properties are - significant in the voting process. It may not be clear to voters - which properties are varying in a significant manner. Clients may - use this property to highlight those listed properties. - - Format Definition: - - This property is defined by the following notation: - - pollproperties = "POLL-PROPERTIES" pollpropparams ":" - text *("," text) CRLF - - pollpropparams = *(";" other-param) - - - - -York, et al. Expires August 5, 2017 [Page 17] - -Internet-Draft VPOLL February 2017 - - -4.4.6. Poll-Winner - - Property name: POLL-WINNER - - Purpose: This property is used in a basic mode VPOLL to indicate - which of the VPOLL sub-components won. - - Value type: INTEGER - - Property Parameters: Non-standard parameters can be specified on - this property. - - Conformance: This property MAY be specified in a VPOLL component. - - Description: For poll confirmation each child component MUST have a - POLL-ITEM-ID property. For basic mode the VPOLL component SHOULD - have a POLL-WINNER property which MUST correspond to one of the - POLL-ITEM-ID properties and indicates which sub-component was the - winner. - - Format Definition: - - This property is defined by the following notation: - - pollwinner = "POLL-WINNER" pollwinnerparams ":" - integer CRLF - - pollwinnerparams = *(";" other-param) - - ; Used with a STATUS:CONFIRMED VPOLL to indicate which - ; components have been confirmed - - -4.4.7. Reply-URL - - Property name: REPLY-URL - - Purpose: This property may be used in scheduling messages to - indicate additional reply methods, for example a web-service. - - Property Parameters: Non-standard, required or iana parameters can - be specified on this property. - - Conformance: This property MAY be specified in a VPOLL component. - - Description: When used in a scheduling message this property - indicates additional or required services that can be used to - reply. Typically this would be a web service of some form. - - - -York, et al. Expires August 5, 2017 [Page 18] - -Internet-Draft VPOLL February 2017 - - - Format Definition: - - This property is defined by the following notation: - - reply-url = "REPLY-URL" reply-urlparams ":" uri CRLF - - reply-urlparams = *( - (";" requiredparam) / - (";" other-param) - ) - -4.4.8. Response - - Property name: RESPONSE - - Purpose: To specify a response vote. - - Value type: INTEGER - - Format Definition: - - This property is defined by the following notation: - - response = "RESPONSE" response-params ":" integer CRLF - ; integer value 0..100 - - responseparams = *(";" other-param) - - Description: This parameter can be specified on the POLL-ITEM-ID - property to provide the value of the voters response. This - parameter allows for fine grained responses which are appropriate - to some applications. For the case of individuals voting for a - choice of events, client applications SHOULD conform to the - following convention: - - * 0 - 39 A "NO vote". - - * 40 - 79 A "MAYBE" vote - - * 80 - 89 A "YES - but not preferred vote" - - * 90-100 A "YES" vote. - - Clients MUST preserve the response value when there is no change - from the user even if they have a UI with fixed states (e.g. - yes/no/maybe). - - - - - -York, et al. Expires August 5, 2017 [Page 19] - -Internet-Draft VPOLL February 2017 - - -4.4.9. Voter - - Property name: VOTER - - Purpose: This property is used in VVOTER components to indicate - recipients of the poll and to identify that component as - containing the voters responses. - - Value type: The value type for this property is cal-address. - - Property Parameters: Non-standard, cutype, member, role, rsvp, - delto, delfrom, sentby, cn, dir, lang or stayinformed parameters - can be specified on this property. - - Conformance: This property MAY be specified in a VPOLL component or - its sub-components. - - Description: This property appears in the VVOTER component only and - indicates a recipient of the poll and their responses. - - Format Definition: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -York, et al. Expires August 5, 2017 [Page 20] - -Internet-Draft VPOLL February 2017 - - - This property is defined by the following notation: - - voter = "VOTER" voterparams ":" cal-address CRLF - - voterparam = *( - ; - ; The following are OPTIONAL, - ; but MUST NOT occur more than once. - ; - (";" cutypeparam) / (";" memberparam) / - (";" roleparam) / - (";" rsvpparam) / (";" deltoparam) / - (";" delfromparam) / (";" sentbyparam) / - (";" cnparam) / (";" dirparam) / - (";" languageparam) / - (";" stayinformedparam) / - - ; - ; The following are OPTIONAL, but MUST NOT occur - ; more than once. They are defined in RFC6638 - ; - (";" scheduleagentparam) / - (";" scheduleforcesendparam) / - (";" schedulestatusparam) / - - ; - ; The following is OPTIONAL, - ; and MAY occur more than once. - ; - (";" other-param) - ; - ) - - - Note 1 RSVP=TRUE MAY be used by the organizer to force the voter to - reset their state and re-vote. - - Note 2 scheduleagentparam, scheduleforcesendparam and - schedulestatusparam are all related to CalDAV scheduling and are - defined in [RFC6638]. Their semantics are exactly as defined in - that specification. - -4.5. New Components - - - - - - - - -York, et al. Expires August 5, 2017 [Page 21] - -Internet-Draft VPOLL February 2017 - - -4.5.1. VPOLL Component - - Component name: VPOLL - - Purpose: This component provides a mechanism by which voters can - vote on provided choices. - - Format Definition: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -York, et al. Expires August 5, 2017 [Page 22] - -Internet-Draft VPOLL February 2017 - - - This property is defined by the following notation: - - pollc = "BEGIN" ":" "VPOLL" CRLF - pollprop - *voterc *eventc *todoc *journalc *freebusyc - *availabilityc *alarmc *iana-comp *x-comp - "END" ":" "VPOLL" CRLF - - pollprop = *( - ; - ; The following are REQUIRED, - ; but MUST NOT occur more than once. - ; - dtstamp / uid / organizer / - ; - ; The following are OPTIONAL, - ; but MUST NOT occur more than once. - ; - acceptresponse / class / created / completed / - description / dtstart / last-mod / pollmode / - pollproperties / priority / seq / status / - summary / url / - ; - ; Either 'dtend' or 'duration' MAY appear in - ; a 'pollprop', but 'dtend' and 'duration' - ; MUST NOT occur in the same 'pollprop'. - ; 'duration' MUST only occur when 'dtstart' - ; is present - ; - dtend / duration / - ; - ; The following are OPTIONAL, - ; and MAY occur more than once. - ; - attach / categories / comment / - contact / rstatus / related / - resources / x-prop / iana-prop - ; - ; The following is OPTIONAL, it SHOULD appear - ; once for the confirmation of a BASIC mode - ; VPOLL. Other modes may define differing - ; requirements. - ; - pollwinner / - ; - ) - - - - - -York, et al. Expires August 5, 2017 [Page 23] - -Internet-Draft VPOLL February 2017 - - - Description: This component provides a mechanism by which voters can - vote on provided choices. The outcome depends upon the POLL-MODE - in effect. - - The VVOTER components in VPOLL requests provide information on - each recipient who will be voting - both their identity through - the VOTER property and their votes through the VOTE components. - - If specified, the "DTSTART" property defines the start or opening - of the poll active period. If absent the poll is presumed to have - started when created. - - If "DTSTART" is present "DURATION" MAY be specified and indicates - the duration, and hence the ending, of the poll. The value of the - property MUST be a positive duration. - - "DTEND" MAY be specified with or without "DTSTART" and indicates - the ending of the poll. If DTEND is specified it MUST be later - than the DTSTART or CREATED property. - - If one or more VALARM components are included in the VPOLL they - are not components to be voted on and MUST NOT contain a POLL- - ITEM-ID property. VALARM sub-components may be used to provide - warnings to the user when polls are due to start or end. - - Need some text to describe what relative alarms are relative to. - -4.5.2. VVOTER Component - - Component name: VPOLL - - Purpose: This component contains identification of the recipient and - voter and their responses. - - Format Definition: - - - - - - - - - - - - - - - - -York, et al. Expires August 5, 2017 [Page 24] - -Internet-Draft VPOLL February 2017 - - - This property is defined by the following notation: - - voterc = "BEGIN" ":" "VVOTER" CRLF - voterprop - *votec *iana-comp *x-comp - "END" ":" "VVOTER" CRLF - - voterprop = *( - ; - ; The following are REQUIRED, - ; but MUST NOT occur more than once. - ; - dtstamp / voter / - ; - ; The following are OPTIONAL, - ; but MUST NOT occur more than once. - ; - created / description / last-mod / seq / - status / summary / url / - ; - ; The following are OPTIONAL, - ; and MAY occur more than once. - ; - attach / categories / comment / - contact / rstatus / related / - resources / x-prop / iana-prop - ; - ) - - Description: This component contains a VOTER property identifying a - recipient and voter and zero or more VOTE components containing - their responses. - - The VOTER property in VVOTER objects refers to a recipient who - will be voting - RSVP=TRUE is used by the organizer to force the - voter to reset their state and re-vote - -4.5.3. VOTE Component - - Component name: VPOLL - - Purpose: This component provides a mechanism by which voters can - vote on provided choices. - - Format Definition: - - - - - - -York, et al. Expires August 5, 2017 [Page 25] - -Internet-Draft VPOLL February 2017 - - - This property is defined by the following notation: - - votec = "BEGIN" ":" "VOTE" CRLF - voteprop - *eventc *todoc *journalc *freebusyc - *availabilityc *alarmc *iana-comp *x-comp - "END" ":" "VOTE" CRLF - - voteprop = *( - ; - ; The following are REQUIRED, - ; but MUST NOT occur more than once. - ; - pollitemid / response / - ; - ; The following are OPTIONAL, - ; and MAY occur more than once. - ; - comment / x-prop / iana-prop - ; - ) - - Description: This component identifies voters and contains their - responses. - - The required and optional properties and their meanings depend - upon the POLL-MODE in effect. - - For any POLL-MODE, POLL-ITEM-ID is used to associate the - information to a choice supplied by the organizer. - - If allowed by the POLL-MODE a VOTE component without a POLL-ITEM- - ID may be provided in a REPLY to indicate a possible new choice or - to provide information to the ORGANIZER - such as the respondees - availability. - -5. Poll Modes - - The VPOLL component is intended to allow for various forms of - polling. The particular form in efffect is indicated by the POLL- - MODE property. - - New poll modes can be registered by including a completed POLL-MODE - Registration Template (see Section 9.3) in a published RFC. - - - - - - - -York, et al. Expires August 5, 2017 [Page 26] - -Internet-Draft VPOLL February 2017 - - -5.1. POLL-MODE:BASIC - - BASIC poll mode is the form of voting in which one possible outcome - is chosen from a set of possibilities. Usually this will be - represented as a number of possible event objects one of which will - be selected. - -5.1.1. Property restrictions - - This poll mode has the following property requirements: - - POLL-ITEM-ID: Each contained sub-component that is being voted upon - MUST contain a POLL-ITEM_ID property which is unique within the - context of the POLL. The value MUST NOT be reused when events are - removed and/or added to the poll. - - POLL-WINNER: On confirmation of the poll this property MUST be - present and identifies the winning component. - -5.1.2. Outcome reporting - - To confirm the winner the POLL-WINNER property MUST be present and - the STATUS MUST be set to CONFIRMED. - - When the winning VEVENT or VTODO is not a scheduled entity, that is, - it has no ORGANIZER or ATTENDEES it MUST be assigned an ORGANIZER - property and a list of non-participating ATTENDEEs. This allows the - winning entity to be distributed to the participants through iTip or - some other protocol. - -6. iTip Extensions - - This specification introduces a number of extensions to [RFC5546]. - In group scheduling the parties involved are organizer and attendees. - In VPOLL the parties are organizer and voters. - - For many of the iTip processing rules the voters take the place of - attendees. - -6.1. Methods - - There are some extensions to the behavior of iTip methods for a VPOLL - object and two new methods are defined. - - - - - - - - -York, et al. Expires August 5, 2017 [Page 27] - -Internet-Draft VPOLL February 2017 - - - +----------------+--------------------------------------------------+ - | Method | Description | - +----------------+--------------------------------------------------+ - | PUBLISH | No changes (yet) | - | | | - | REQUEST | Each child component MUST have a POLL-ITEM-ID | - | | property. Each set of components with the same | - | | POLL-ITEM-ID value represents one overall set of | - | | items to be voted on. | - | | | - | REPLY | There MUST be a single VPOLL component which | - | | MUST have: either one or more POLL-ITEM-ID | - | | properties with a RESPONSE param matching that | - | | from a REQUEST or a VFREEBUSY or VAVAILABILITY | - | | child component showing overall busy/available | - | | time. The VPOLL MUST have one VOTER only. | - | | | - | ADD | Not supported for VPOLL. | - | | | - | CANCEL | There MUST be a single VPOLL component with UID | - | | matching that of the poll being cancelled. | - | | | - | REFRESH | The organizer returns a METHOD:REQUEST with the | - | | current full state, or a METHOD:CANCEL or an | - | | error if no matching poll is found. | - | | | - | COUNTER | Not supported for VPOLL. | - | | | - | DECLINECOUNTER | Not supported for VPOLL. | - | | | - | POLLSTATUS | Used to send the current state of the poll to | - | | all voters. The VPOLL can contain a reduced set | - | | of properties but MUST contain DTSTAMP, SEQUENCE | - | | (if not 0), UID, ORGANIZER and VOTER. | - | | | - +----------------+--------------------------------------------------+ - - The following table shows the above methods broken down by who can - send them with VPOLL components. - - +-------------+-------------------------------------------------+ - | Originator | Methods | - +-------------+-------------------------------------------------+ - | Organizer | CANCEL, PUBLISH, REQUEST, POLLSTATUS | - | | | - | Voter | REPLY, REFRESH, REQUEST (only when delegating) | - +-------------+-------------------------------------------------+ - - - - -York, et al. Expires August 5, 2017 [Page 28] - -Internet-Draft VPOLL February 2017 - - -6.2. Interoperability Models - - Most of the standard iTip specification applies with respect to - organizer and voters. - -6.2.1. Delegation - - TBD - -6.2.2. Acting on Behalf of Other Calendar Users - - TBD - -6.2.3. Component Revisions - - Need to talk about what a change in SEQUENCE means - Sequence change forces a revote. - New voter - no sequence change - Add another poll set or change poll item ids or any change to a child - component - bump sequence - -6.2.4. Message Sequencing - - TBD - -6.3. Application Protocol Elements - -6.3.1. Methods for VPOLL Calendar Components - - This section defines the property set restrictions for the method - types that are applicable to the "VPOLL" calendar component. Each - method is defined using a table that clarifies the property - constraints that define the particular method. - - The presence column uses the following values to assert whether a - property is required or optional, and the number of times it may - appear in the iCalendar object. - - +-----------------+-------------------------------------------------+ - | Presence Value | Description | - +-----------------+-------------------------------------------------+ - | 1 | One instance MUST be present. | - | 1+ | At least one instance MUST be present. | - | 0 | Instances of this property MUST NOT be present. | - | 0+ | Multiple instances MAY be present. | - | 0 or 1 | Up to 1 instance of this property MAY be | - | | present. | - +-----------------+-------------------------------------------------+ - - - -York, et al. Expires August 5, 2017 [Page 29] - -Internet-Draft VPOLL February 2017 - - - The following summarizes the methods that are defined for the "VPOLL" - calendar component. - - +------------+------------------------------------------------------+ - | Method | Description | - +------------+------------------------------------------------------+ - | PUBLISH | Post notification of an poll. Used primarily as a | - | | method of advertising the existence of a poll. | - | | | - | REQUEST | To make a request for a poll. This is an explicit | - | | invitation to one or more voters. Poll requests are | - | | also used to update, change or confirm an existing | - | | poll. Clients that cannot handle REQUEST MAY degrade | - | | the poll to view it as a PUBLISH. REQUEST SHOULD NOT | - | | be used just to set the status of the poll - | - | | POLLSTATUS provides a more compact approach. | - | | | - | REPLY | Reply to a poll request. Voters may set their | - | | RESPONSE parameter to supply the current vote in the | - | | range 0 to 100. | - | | | - | CANCEL | Cancel a poll. | - | | | - | REFRESH | A request is sent to an Organizer by a Voter asking | - | | for the latest version of a poll to be resent to the | - | | requester. | - | | | - | POLLSTATUS | Used to send the current state of the poll to all | - | | voters. The VPOLL can contain a reduced set of | - | | properties but MUST contain DTSTAMP, SEQUENCE (if | - | | not 0), UID, ORGANIZER and VOTER. | - | | | - +------------+------------------------------------------------------+ - -6.3.1.1. PUBLISH - - The "PUBLISH" method in a "VPOLL" calendar component is an - unsolicited posting of an iCalendar object. Any CU may add published - components to their calendar. The "Organizer" MUST be present in a - published iCalendar component. "Voters" MUST NOT be present. Its - expected usage is for encapsulating an arbitrary poll as an iCalendar - object. The "Organizer" may subsequently update (with another - "PUBLISH" method) or cancel (with a "CANCEL" method) a previously - published "VPOLL" calendar component. - - This method type is an iCalendar object that conforms to the - following property constraints: - - - - -York, et al. Expires August 5, 2017 [Page 30] - -Internet-Draft VPOLL February 2017 - - - +----------------------------------------------+ - | Constraints for a METHOD:PUBLISH of a VPOLL | - +----------------------------------------------+ - +----------------------------------------------+ - - +--------------------+----------+-----------------------------------+ - | Component/Property | Presence | Comment | - +--------------------+----------+-----------------------------------+ - | METHOD | 1 | MUST equal PUBLISH. | - | | | | - | VPOLL | 1+ | | - | DTSTAMP | 1 | | - | DTSTART | 0 or 1 | If present defines the start of | - | | | the poll. Otherwise the poll | - | | | starts when it is created and | - | | | distributed. | - | ORGANIZER | 1 | | - | SUMMARY | 1 | Can be null. | - | UID | 1 | | - | SEQUENCE | 0 or 1 | MUST be present if value is | - | | | greater than 0; MAY be present if | - | | | 0. | - | ACCEPT-RESPONSE | 0 or 1 | | - | ATTACH | 0+ | | - | CATEGORIES | 0+ | | - | CLASS | 0 or 1 | | - | COMMENT | 0+ | | - | COMPLETED | 0 or 1 | | - | CONTACT | 0 or 1 | | - | CREATED | 0 or 1 | | - | DESCRIPTION | 0 or 1 | Can be null. | - | DTEND | 0 or 1 | If present, DURATION MUST NOT be | - | | | present. | - | DURATION | 0 or 1 | If present, DTEND MUST NOT be | - | | | present. | - | LAST-MODIFIED | 0 or 1 | | - | POLL-ITEM-ID | 0 | | - | POLL-MODE | 0 or 1 | | - | POLL-PROPERTIES | 0 or 1 | | - | PRIORITY | 0 or 1 | | - | RELATED-TO | 0+ | | - | RESOURCES | 0+ | | - | STATUS | 0 or 1 | MAY be one of | - | | | COMPLETED/CONFIRMED/CANCELLED. | - | URL | 0 or 1 | | - | IANA-PROPERTY | 0+ | | - | X-PROPERTY | 0+ | | - | VOTER | 0 | | - - - -York, et al. Expires August 5, 2017 [Page 31] - -Internet-Draft VPOLL February 2017 - - - | REQUEST-STATUS | 0 | | - | | | | - | VALARM | 0+ | | - | | | | - | VEVENT | 0+ | Depending upon the poll mode in | - | | | effect there MAY be candidate | - | | | components included in the poll | - | | | component. If voting has already | - | | | taken place, these components | - | | | MUST include the VOTER property | - | | | to indicate each voters current | - | | | response. | - | | | | - | VFREEBUSY | 0 | | - | | | | - | VJOURNAL | 0+ | Depending upon the poll mode in | - | | | effect there MAY be candidate | - | | | components included in the poll | - | | | component. If voting has already | - | | | taken place, these components | - | | | MUST include the VOTER property | - | | | to indicate each voters current | - | | | response. | - | | | | - | VTODO | 0+ | Depending upon the poll mode in | - | | | effect there MAY be candidate | - | | | components included in the poll | - | | | component. If voting has already | - | | | taken place, these components | - | | | MUST include the VOTER property | - | | | to indicate each voters current | - | | | response. | - | | | | - | VTIMEZONE | 0+ | MUST be present if any date/time | - | | | refers to a timezone. | - | | | | - | IANA-COMPONENT | 0+ | | - | X-COMPONENT | 0+ | | - +--------------------+----------+-----------------------------------+ - -6.3.1.2. REQUEST - - The "REQUEST" method in a "VPOLL" component provides the following - scheduling functions: - - o Invite "Voters" to respond to the poll. - - o Change the items being voted upon. - - - -York, et al. Expires August 5, 2017 [Page 32] - -Internet-Draft VPOLL February 2017 - - - o Complete or confirm the poll. - - o Response to a "REFRESH" request. - - o Update the details of an existing vpoll. - - o Update the status of "Voters". - - o Forward a "VPOLL" to another uninvited CU. - - o For an existing "VPOLL" calendar component, delegate the role of - "Voter" to another CU. - - o For an existing "VPOLL" calendar component, change the role of - "Organizer" to another CU. - - The "Organizer" originates the "REQUEST". The recipients of the - "REQUEST" method are the CUs voting in the poll, the "Voters". - "Voters" use the "REPLY" method to convey votes to the "Organizer". - - The "UID" and "SEQUENCE" properties are used to distinguish the - various uses of the "REQUEST" method. If the "UID" property value in - the "REQUEST" is not found on the recipient's calendar, then the - "REQUEST" is for a new "VPOLL" calendar component. If the "UID" - property value is found on the recipient's calendar, then the - "REQUEST" is for an update, or a reconfirmation of the "VPOLL" - calendar component. - - For the "REQUEST" method only a single iCalendar object is permitted. - - This method type is an iCalendar object that conforms to the - following property constraints: - - +----------------------------------------------+ - | Constraints for a METHOD:REQUEST of a VPOLL | - +----------------------------------------------+ - +----------------------------------------------+ - - +--------------------+----------+-----------------------------------+ - | Component/Property | Presence | Comment | - +--------------------+----------+-----------------------------------+ - | METHOD | 1 | MUST be REQUEST. | - | | | | - | VPOLL | 1 | | - | VOTER | 1+ | | - | DTSTAMP | 1 | | - | DTSTART | 0 or 1 | If present defines the start of | - | | | the poll. Otherwise the poll | - - - -York, et al. Expires August 5, 2017 [Page 33] - -Internet-Draft VPOLL February 2017 - - - | | | starts when it is created and | - | | | distributed. | - | ORGANIZER | 1 | | - | SEQUENCE | 0 or 1 | MUST be present if value is | - | | | greater than 0; MAY be present if | - | | | 0. | - | SUMMARY | 1 | Can be null. | - | UID | 1 | | - | ACCEPT-RESPONSE | 0 or 1 | | - | ATTACH | 0+ | | - | CATEGORIES | 0+ | | - | CLASS | 0 or 1 | | - | COMMENT | 0+ | | - | COMPLETED | 0 or 1 | | - | CONTACT | 0+ | | - | CREATED | 0 or 1 | | - | DESCRIPTION | 0 or 1 | Can be null. | - | DTEND | 0 or 1 | If present, DURATION MUST NOT be | - | | | present. | - | DURATION | 0 or 1 | If present, DTEND MUST NOT be | - | | | present. | - | GEO | 0 or 1 | | - | LAST-MODIFIED | 0 or 1 | | - | LOCATION | 0 or 1 | | - | POLL-ITEM-ID | 0 | | - | POLL-MODE | 0 or 1 | | - | POLL-PROPERTIES | 0 or 1 | | - | PRIORITY | 0 or 1 | | - | RELATED-TO | 0+ | | - | REQUEST-STATUS | 0 | | - | RESOURCES | 0+ | | - | STATUS | 0 or 1 | MAY be one of | - | | | COMPLETED/CONFIRMED/CANCELLED. | - | TRANSP | 0 or 1 | | - | URL | 0 or 1 | | - | IANA-PROPERTY | 0+ | | - | X-PROPERTY | 0+ | | - | | | | - | VALARM | 0+ | | - | | | | - | VTIMEZONE | 0+ | MUST be present if any date/time | - | | | refers to a timezone. | - | | | | - | IANA-COMPONENT | 0+ | | - | X-COMPONENT | 0+ | | - | | | | - | VEVENT | 0+ | Depending upon the poll mode in | - | | | effect there MAY be candidate | - - - -York, et al. Expires August 5, 2017 [Page 34] - -Internet-Draft VPOLL February 2017 - - - | | | components included in the poll | - | | | component. If voting has already | - | | | taken place, these components | - | | | MUST include the VOTER property | - | | | to indicate each voters current | - | | | response. | - | | | | - | VFREEBUSY | 0 | | - | | | | - | VJOURNAL | 0+ | Depending upon the poll mode in | - | | | effect there MAY be candidate | - | | | components included in the poll | - | | | component. If voting has already | - | | | taken place, these components | - | | | MUST include the VOTER property | - | | | to indicate each voters current | - | | | response. | - | | | | - | VTODO | 0+ | Depending upon the poll mode in | - | | | effect there MAY be candidate | - | | | components included in the poll | - | | | component. If voting has already | - | | | taken place, these components | - | | | MUST include the VOTER property | - | | | to indicate each voters current | - | | | response. | - +--------------------+----------+-----------------------------------+ - -6.3.1.2.1. Rescheduling a poll - - The "REQUEST" method may be used to reschedule a poll, that is force - a revote. A rescheduled poll involves a change to the existing poll - in terms of its time the components being voted on may have changed. - If the recipient CUA of a "REQUEST" method finds that the "UID" - property value already exists on the calendar but that the "SEQUENCE" - (or "DTSTAMP") property value in the "REQUEST" method is greater than - the value for the existing poll, then the "REQUEST" method describes - a rescheduling of the poll. - -6.3.1.2.2. Updating or Reconfirmation of a Poll - - The "REQUEST" method may be used to update or reconfirm a poll. An - update to an existing poll does not involve changes to the time or - candidates, and might not involve a change to the location or - description for the poll. If the recipient CUA of a "REQUEST" method - finds that the "UID" property value already exists on the calendar - and that the "SEQUENCE" property value in the "REQUEST" is the same - as the value for the existing poll, then the "REQUEST" method - - - -York, et al. Expires August 5, 2017 [Page 35] - -Internet-Draft VPOLL February 2017 - - - describes an update of the poll details, but not a rescheduling of - the POLL. - - The update "REQUEST" method is the appropriate response to a - "REFRESH" method sent from a "Voter" to the "Organizer" of a poll. - - The "Organizer" of a poll may also send unsolicited "REQUEST" - methods. The unsolicited "REQUEST" methods may be used to update the - details of the poll without rescheduling it, to update the "RESPONSE" - parameter of "Voters", or to reconfirm the poll. - -6.3.1.2.3. Confirmation of a Poll - - The "REQUEST" method may be used to confirm a poll, that is announce - the winner in BASIC mode. The STATUS MUST be set to CONFIRMED and - for BASIC mode a VPOLL POLL-WINNER property must be provided with the - poll-id of the winning component. - -6.3.1.2.4. Closing a Poll - - The "REQUEST" method may be used to close a poll, that is indicate - voting is completed. The STATUS MUST be set to COMPLETED. - -6.3.1.2.5. Delegating a POll to Another CU - - Some calendar and scheduling systems allow "Voters" to delegate the - vote to another "Calendar User". iTIP supports this concept using the - following workflow. Any "Voter" may delegate their right to vote in - a poll to another CU. The implication is that the delegate - participates in lieu of the original "Voter", NOT in addition to the - "Voter". The delegator MUST notify the "Organizer" of this action - using the steps outlined below. Implementations may support or - restrict delegation as they see fit. For instance, some - implementations may restrict a delegate from delegating a "REQUEST" - to another CU. - - The "Delegator" of a poll forwards the existing "REQUEST" to the - "Delegate". The "REQUEST" method MUST include a "Voter" property - with the calendar address of the "Delegate". The "Delegator" MUST - also send a "REPLY" method to the "Organizer" with the "Delegator's" - "Voter" property "DELEGATED-TO" parameter set to the calendar address - of the "Delegate". Also, a new "Voter" property for the "Delegate" - MUST be included and must specify the calendar user address set in - the "DELEGATED-TO" parameter, as above. - - In response to the request, the "Delegate" MUST send a "REPLY" method - to the "Organizer", and optionally to the "Delegator". The "REPLY" - - - - -York, et al. Expires August 5, 2017 [Page 36] - -Internet-Draft VPOLL February 2017 - - - method SHOULD include the "Voter" property with the "DELEGATED-FROM" - parameter value of the "Delegator's" calendar address. - - The "Delegator" may continue to receive updates to the poll even - though they will not be attending. This is accomplished by the - "Delegator" setting their "role" attribute to "NON-PARTICIPANT" in - the "REPLY" to the "Organizer". - -6.3.1.2.6. Changing the Organizer - - The situation may arise where the "Organizer" of a "VPOLL" is no - longer able to perform the "Organizer" role and abdicates without - passing on the "Organizer" role to someone else. When this occurs, - the "Voters" of the "VPOLL" may use out-of-band mechanisms to - communicate the situation and agree upon a new "Organizer". The new - "Organizer" should then send out a new "REQUEST" with a modified - version of the "VPOLL" in which the "SEQUENCE" number has been - incremented and the "ORGANIZER" property has been changed to the new - "Organizer". - -6.3.1.2.7. Sending on Behalf of the Organizer - - There are a number of scenarios that support the need for a "Calendar - User" to act on behalf of the "Organizer" without explicit role - changing. This might be the case if the CU designated as "Organizer" - is sick or unable to perform duties associated with that function. - In these cases, iTIP supports the notion of one CU acting on behalf - of another. Using the "SENT-BY" parameter, a "Calendar User" could - send an updated "VPOLL" "REQUEST". In the case where one CU sends on - behalf of another CU, the "Voter" responses are still directed back - towards the CU designated as "Organizer". - -6.3.1.2.8. Forwarding to an Uninvited CU - - A "Voter" invited to a "VPOLL" calendar component may send the - "VPOLL" calendar component to another new CU not previously - associated with the "VPOLL" calendar component. The current "Voter" - participating in the "VPOLL" calendar component does this by - forwarding the original "REQUEST" method to the new CU. The new CU - can send a "REPLY" to the "Organizer" of the "VPOLL" calendar - component. The reply contains a "Voter" property for the new CU. - - The "Organizer" ultimately decides whether or not the new CU becomes - part of the poll and is not obligated to do anything with a "REPLY" - from a new (uninvited) CU. If the "Organizer" does not want the new - CU to be part of the poll, the new "Voter" property is not added to - the "VPOLL" calendar component. The "Organizer" MAY send the CU a - "CANCEL" message to indicate that they will not be added to the poll. - - - -York, et al. Expires August 5, 2017 [Page 37] - -Internet-Draft VPOLL February 2017 - - - If the "Organizer" decides to add the new CU, the new "Voter" - property is added to the "VPOLL" calendar component. Furthermore, - the "Organizer" is free to change any "Voter" property parameter from - the values supplied by the new CU to something the "Organizer" - considers appropriate. The "Organizer" SHOULD send the new CU a - "REQUEST" message to inform them that they have been added. - - When forwarding a "REQUEST" to another CU, the forwarding "Voter" - MUST NOT make changes to the original message. - -6.3.1.2.9. Updating Voter Status - - The "Organizer" of an poll may also request updated status from one - or more "Voters". The "Organizer" sends a "REQUEST" method to the - "Voter" and sets the "VOTER;RSVP=TRUE" property parameter. The - "SEQUENCE" property for the poll is not changed from its previous - value. A recipient will determine that the only change in the - "REQUEST" is that their "RSVP" property parameter indicates a request - for updated status. The recipient SHOULD respond with a "REPLY" - method indicating their current vote with respect to the "REQUEST". - -6.3.1.3. REPLY - - The "REPLY" method in a "VPOLL" calendar component is used to respond - (e.g., accept or decline) to a "REQUEST" or to reply to a delegation - "REQUEST". When used to provide a delegation response, the - "Delegator" SHOULD include the calendar address of the "Delegate" on - the "DELEGATED-TO" property parameter of the "Delegator's" "Voter" - property. The "Delegate" SHOULD include the calendar address of the - "Delegator" on the "DELEGATED-FROM" property parameter of the - "Delegate's" "Voter" property. - - The "REPLY" method is also used when processing of a "REQUEST" fails. - Depending on the value of the "REQUEST-STATUS" property, no action - may have been performed. - - The "Organizer" of a poll may receive the "REPLY" method from a CU - not in the original "REQUEST". For example, a "REPLY" may be - received from a "Delegate" to a poll. In addition, the "REPLY" - method may be received from an unknown CU (a "Party Crasher"). This - uninvited "Voter" may be accepted, or the "Organizer" may cancel the - poll for the uninvited "Voter" by sending a "CANCEL" method to the - uninvited "Voter". - - A "Voter" MAY include a message to the "Organizer" using the - "COMMENT" property. For example, if the user indicates a low - interest and wants to let the "Organizer" know why, the reason can be - expressed in the "COMMENT" property value. - - - -York, et al. Expires August 5, 2017 [Page 38] - -Internet-Draft VPOLL February 2017 - - - The "Organizer" may also receive a "REPLY" from one CU on behalf of - another. Like the scenario enumerated above for the "Organizer", - "Voters" may have another CU respond on their behalf. This is done - using the "SENT-BY" parameter. - - The optional properties listed in the table below (those listed as - "0+" or "0 or 1") MUST NOT be changed from those of the original - request. (But see comments on VFREEBUSY and VAVAILABILITY) - - This method type is an iCalendar object that conforms to the - following property constraints: - - +--------------------------------------------+ - | Constraints for a METHOD:REPLY of a VPOLL | - +--------------------------------------------+ - +--------------------------------------------+ - - +--------------------+----------+-----------------------------------+ - | Component/Property | Presence | Comment | - +--------------------+----------+-----------------------------------+ - | METHOD | 1 | MUST be REPLY. | - | | | | - | VPOLL | 1+ | All components MUST have the same | - | | | UID. | - | VOTER | 1 | MUST be the address of the Voter | - | | | replying. | - | DTSTAMP | 1 | | - | ORGANIZER | 1 | | - | UID | 1 | MUST be the UID of the original | - | | | REQUEST. | - | SEQUENCE | 0 or 1 | If non-zero, MUST be the sequence | - | | | number of the original REQUEST. | - | | | MAY be present if 0. | - | ACCEPT-RESPONSE | 0 or 1 | | - | ATTACH | 0+ | | - | CATEGORIES | 0+ | | - | CLASS | 0 or 1 | | - | COMMENT | 0+ | | - | COMPLETED | 0 or 1 | | - | CONTACT | 0+ | | - | CREATED | 0 or 1 | | - | DESCRIPTION | 0 or 1 | | - | DTEND | 0 or 1 | If present, DURATION MUST NOT be | - | | | present. | - | DTSTART | 0 or 1 | | - | DURATION | 0 or 1 | If present, DTEND MUST NOT be | - | | | present. | - | GEO | 0 or 1 | | - - - -York, et al. Expires August 5, 2017 [Page 39] - -Internet-Draft VPOLL February 2017 - - - | LAST-MODIFIED | 0 or 1 | | - | LOCATION | 0 or 1 | | - | POLL-ITEM-ID | 1+ | One per item being voted on. | - | POLL-MODE | 0 | | - | POLL-PROPERTIES | 0 | | - | PRIORITY | 0 or 1 | | - | RELATED-TO | 0+ | | - | RESOURCES | 0+ | | - | REQUEST-STATUS | 0+ | | - | STATUS | 0 or 1 | | - | SUMMARY | 0 or 1 | | - | TRANSP | 0 or 1 | | - | URL | 0 or 1 | | - | IANA-PROPERTY | 0+ | | - | X-PROPERTY | 0+ | | - | | | | - | VALARM | 0 | | - | | | | - | VTIMEZONE | 0 or 1 | MUST be present if any date/time | - | | | refers to a timezone. | - | | | | - | IANA-COMPONENT | 0+ | | - | X-COMPONENT | 0+ | | - | | | | - | VEVENT | 0 | | - | | | | - | VFREEBUSY | 0 or 1 | A voter may respond with a | - | | | VFREEBUSY component indicating | - | | | that the ORGANIZER may select | - | | | some other time which is not | - | | | marked as busy. | - | | | | - | VAVAILABILITY | 0 | A voter may respond with a | - | | | VAVAILABILITY component | - | | | indicating that the ORGANIZER may | - | | | select some other time which is | - | | | shown as available. | - | | | | - | VJOURNAL | 0 | | - | | | | - | VTODO | 0 | | - +--------------------+----------+-----------------------------------+ - -6.3.1.4. CANCEL - - The "CANCEL" method in a "VPOLL" calendar component is used to send a - cancellation notice of an existing poll request to the affected - "Voters". The message is sent by the "Organizer" of the poll. - - - -York, et al. Expires August 5, 2017 [Page 40] - -Internet-Draft VPOLL February 2017 - - - The "Organizer" MUST send a "CANCEL" message to each "Voter" affected - by the cancellation. This can be done using a single "CANCEL" - message for all "Voters" or by using multiple messages with different - subsets of the affected "Voters" in each. - - When a "VPOLL" is cancelled, the "SEQUENCE" property value MUST be - incremented as described in Section 6.2.3. - - Once a CANCEL message has been sent to all voters no further voting - may take place. The poll is considered closed. - - This method type is an iCalendar object that conforms to the - following property constraints: - - +---------------------------------------------+ - | Constraints for a METHOD:CANCEL of a VPOLL | - +---------------------------------------------+ - +---------------------------------------------+ - - +--------------------+----------+-----------------------------------+ - | Component/Property | Presence | Comment | - +--------------------+----------+-----------------------------------+ - | METHOD | 1 | MUST be CANCEL. | - | | | | - | VPOLL | 1+ | All must have the same UID. | - | VOTER | 0+ | MUST include some or all Voters | - | | | being removed from the poll. | - | | | MUST include some or all Voters | - | | | if the entire poll is cancelled. | - | UID | 1 | MUST be the UID of the original | - | | | REQUEST. | - | DTSTAMP | 1 | | - | ORGANIZER | 1 | | - | SEQUENCE | 1 | | - | ATTACH | 0+ | | - | ACCEPT-RESPONSE | 0 | | - | COMMENT | 0+ | | - | COMPLETED | 0 or 1 | | - | CATEGORIES | 0+ | | - | CLASS | 0 or 1 | | - | CONTACT | 0+ | | - | CREATED | 0 or 1 | | - | DESCRIPTION | 0 or 1 | | - | DTEND | 0 or 1 | If present, DURATION MUST NOT be | - | | | present. | - | DTSTART | 0 or 1 | | - | DURATION | 0 or 1 | If present, DTEND MUST NOT be | - | | | present. | - - - -York, et al. Expires August 5, 2017 [Page 41] - -Internet-Draft VPOLL February 2017 - - - | GEO | 0 or 1 | | - | LAST-MODIFIED | 0 or 1 | | - | LOCATION | 0 or 1 | | - | POLL-ITEM-ID | 0 | | - | POLL-MODE | 0 | | - | POLL-PROPERTIES | 0 | | - | PRIORITY | 0 or 1 | | - | RELATED-TO | 0+ | | - | RESOURCES | 0+ | | - | STATUS | 0 or 1 | MUST be set to CANCELLED to | - | | | cancel the entire event. If | - | | | uninviting specific Attendees, | - | | | then MUST NOT be included. | - | SUMMARY | 0 or 1 | | - | TRANSP | 0 or 1 | | - | URL | 0 or 1 | | - | IANA-PROPERTY | 0+ | | - | X-PROPERTY | 0+ | | - | REQUEST-STATUS | 0 | | - | | | | - | VALARM | 0 | | - | | | | - | VTIMEZONE | 0+ | MUST be present if any date/time | - | | | refers to a timezone. | - | | | | - | IANA-COMPONENT | 0+ | | - | X-COMPONENT | 0+ | | - | | | | - | VTODO | 0 | | - | | | | - | VJOURNAL | 0 | | - | | | | - | VEVENT | 0 | | - | | | | - | VFREEBUSY | 0 | | - +--------------------+----------+-----------------------------------+ - -6.3.1.5. REFRESH - - The "REFRESH" method in a "VPOLL" calendar component is used by - "Voters" of an existing event to request an updated description from - the poll "Organizer". The "REFRESH" method must specify the "UID" - property of the poll to update. The "Organizer" responds with the - latest description and version of the poll. - - This method type is an iCalendar object that conforms to the - following property constraints: - - - - -York, et al. Expires August 5, 2017 [Page 42] - -Internet-Draft VPOLL February 2017 - - - +----------------------------------------------+ - | Constraints for a METHOD:REFRESH of a VPOLL | - +----------------------------------------------+ - +----------------------------------------------+ - - +--------------------+----------+-----------------------------------+ - | Component/Property | Presence | Comment | - +--------------------+----------+-----------------------------------+ - | METHOD | 1 | MUST be REFRESH. | - | | | | - | VPOLL | 1 | | - | VOTER | 1 | MUST be the address of requester. | - | DTSTAMP | 1 | | - | ORGANIZER | 1 | | - | UID | 1 | MUST be the UID associated with | - | | | original REQUEST. | - | COMMENT | 0+ | | - | COMPLETED | 0 | | - | IANA-PROPERTY | 0+ | | - | X-PROPERTY | 0+ | | - | ACCEPT-RESPONSE | 0 | | - | ATTACH | 0 | | - | CATEGORIES | 0 | | - | CLASS | 0 | | - | CONTACT | 0 | | - | CREATED | 0 | | - | DESCRIPTION | 0 | | - | DTEND | 0 | | - | DTSTART | 0 | | - | DURATION | 0 | | - | GEO | 0 | | - | LAST-MODIFIED | 0 | | - | LOCATION | 0 | | - | POLL-ITEM-ID | 0 | | - | POLL-MODE | 0 | | - | POLL-PROPERTIES | 0 | | - | PRIORITY | 0 | | - | RELATED-TO | 0 | | - | REQUEST-STATUS | 0 | | - | RESOURCES | 0 | | - | SEQUENCE | 0 | | - | STATUS | 0 | | - | SUMMARY | 0 | | - | URL | 0 | | - | | | | - | VALARM | 0 | | - | | | | - | VTIMEZONE | 0+ | | - - - -York, et al. Expires August 5, 2017 [Page 43] - -Internet-Draft VPOLL February 2017 - - - | | | | - | IANA-COMPONENT | 0+ | | - | X-COMPONENT | 0+ | | - | | | | - | VTODO | 0 | | - | | | | - | VJOURNAL | 0 | | - | | | | - | VEVENT | 0 | | - | | | | - | VFREEBUSY | 0 | | - +--------------------+----------+-----------------------------------+ - -6.3.1.6. POLLSTATUS - - The "POLLSTATUS" method in a "VPOLL" calendar component is used to - inform recipients of the current status of the poll in a compact - manner. The "Organizer" MUST be present in the confirmed poll - component. "Voters" MUST NOT be present. The selected component(s) - according to the poll mode MUST also be present in the poll - component. Clients receiving this message may store the confirmed - items in their calendars. - - This method type is an iCalendar object that conforms to the - following property constraints: - - +-------------------------------------------------+ - | Constraints for a METHOD:POLLSTATUS of a VPOLL | - +-------------------------------------------------+ - +-------------------------------------------------+ - - +--------------------+----------+-----------------------------------+ - | Component/Property | Presence | Comment | - +--------------------+----------+-----------------------------------+ - | METHOD | 1 | MUST equal POLLSTATUS. | - | | | | - | VPOLL | 1+ | | - | COMPLETED | 0 or 1 | Only present for a completed poll | - | DTSTAMP | 1 | | - | DTSTART | 0 or 1 | | - | ORGANIZER | 1 | | - | SUMMARY | 1 | Can be null. | - | VOTER | 1+ | | - | UID | 1 | | - | SEQUENCE | 0 or 1 | MUST be present if value is | - | | | greater than 0; MAY be present if | - | | | 0. | - | ACCEPT-RESPONSE | 0 | | - - - -York, et al. Expires August 5, 2017 [Page 44] - -Internet-Draft VPOLL February 2017 - - - | ATTACH | 0 | | - | CATEGORIES | 0 | | - | CLASS | 0 | | - | COMMENT | 0+ | | - | CONTACT | 0 | | - | CREATED | 0 or 1 | | - | DESCRIPTION | 0 or 1 | Can be null. | - | DTEND | 0 or 1 | If present, DURATION MUST NOT be | - | | | present. | - | DURATION | 0 or 1 | If present, DTEND MUST NOT be | - | | | present. | - | LAST-MODIFIED | 0 or 1 | | - | POLL-ITEM-ID | 0 | | - | POLL-MODE | 0 or 1 | | - | POLL-PROPERTIES | 0 | | - | PRIORITY | 0 or 1 | | - | RELATED-TO | 0+ | | - | RESOURCES | 0+ | | - | STATUS | 0 or 1 | MAY be one of | - | | | TENTATIVE/CONFIRMED/CANCELLED. | - | URL | 0 or 1 | | - | IANA-PROPERTY | 0+ | | - | X-PROPERTY | 0+ | | - | REQUEST-STATUS | 0 | | - | | | | - | VALARM | 0+ | | - | | | | - | VEVENT | 0+ | All candidate components MUST be | - | | | present but in a reduced form | - | | | sufficient to provide the voting | - | | | status. | - | | | | - | VFREEBUSY | 0 | | - | | | | - | VJOURNAL | 0+ | All candidate components MUST be | - | | | present but in a reduced form | - | | | sufficient to provide the voting | - | | | status. | - | | | | - | VTODO | 0+ | All candidate components MUST be | - | | | present but in a reduced form | - | | | sufficient to provide the voting | - | | | status. | - | | | | - | VTIMEZONE | 0+ | MUST be present if any date/time | - | | | refers to a timezone. | - | | | | - | IANA-COMPONENT | 0+ | | - - - -York, et al. Expires August 5, 2017 [Page 45] - -Internet-Draft VPOLL February 2017 - - - | X-COMPONENT | 0+ | | - +--------------------+----------+-----------------------------------+ - -7. CalDAV Extensions - - This specification extends [RFC4791] in that it defines a new - component and new iCalendar properties to be supported and requires - extra definitions related to time-ranges and reports. - - Additionally, it extends [RFC6638] as it a VPOLL component is a - schedulable entity. - -7.1. Calendar Collection Properties - - This section defines new CalDAV properties for calendar collections. - -7.1.1. CALDAV:supported-vpoll-component-sets - - Name: supported-vpoll-component-sets - - Namespace: urn:ietf:params:xml:ns:caldav - - Purpose: Specifies the calendar component types (e.g., VEVENT, - VTODO, etc.) and combination of types that may be included in a - VPOLL component. - - Conformance: This property MAY be defined on any calendar - collection. If defined, it MUST be protected and SHOULD NOT be - returned by a PROPFIND DAV:allprop request (as defined in - Section 12.14.1 of [RFC2518]). - - Description: The CALDAV:supported-vpoll-component-sets property is - used to specify restrictions on the calendar component types that - VPOLL components may contain in a calendar collection. - - It also specifies the combination of allowed component types. - - Any attempt by the client to store VPOLL components with component - types or combinations of types not listed in this property, if it - exists, MUST result in an error, with the CALDAV:supported-vpoll- - component-sets precondition Section 7.2 being violated. Since - this property is protected, it cannot be changed by clients using - a PROPPATCH request. However, clients can initialize the value of - this property when creating a new calendar collection with - MKCALENDAR. In the absence of this property, the server MUST - accept all component types, and the client can assume that all - component types are accepted. - - - - -York, et al. Expires August 5, 2017 [Page 46] - -Internet-Draft VPOLL February 2017 - - - Definition: - - - - - - - Example: - - - - - - - - - - - - - - - - - - - - - - - - - - - - -7.1.2. CALDAV:vpoll-max-items - - Name: vpoll-max-items - - Namespace: urn:ietf:params:xml:ns:caldav - - Purpose: Provides a numeric value indicating the maximum number of - items that may be contained in any instance of a VPOLL calendar - object resource stored in the calendar collection. - - - - -York, et al. Expires August 5, 2017 [Page 47] - -Internet-Draft VPOLL February 2017 - - - Conformance: This property MAY be defined on any calendar - collection. If defined, it MUST be protected and SHOULD NOT be - returned by a PROPFIND DAV:allprop request (as defined in - Section 12.14.1 of [RFC2518]). - - Description: The CALDAV:vpoll-max-items is used to specify a numeric - value that indicates the maximum number of iCalendar components in - any one instance of a VPOLL calendar object resource stored in a - calendar collection. Any attempt to store a calendar object - resource with more components per instance than this value MUST - result in an error, with the CALDAV: vpoll-max-items precondition - Section 7.2 being violated. In the absence of this property, the - client can assume that the server can handle any number of items - in a VPOLL calendar component. - - Definition: - - - PCDATA value: a numeric value (integer greater than zero) - - - Example: - - 25 - - -7.1.3. CALDAV:vpoll-max-active - - Name: vpoll-max-active - - Namespace: urn:ietf:params:xml:ns:caldav - - Purpose: Provides a numeric value indicating the maximum number of - active vpolls at any one time. - - Conformance: This property MAY be defined on any calendar - collection. If defined, it MUST be protected and SHOULD NOT be - returned by a PROPFIND DAV:allprop request (as defined in - Section 12.14.1 of [RFC2518]). - - Description: The CALDAV:vpoll-max-active is used to specify a - numeric value that indicates the maximum number of active VPOLLs - at any one time. Any attempt to store a new active VPOLL calendar - object resource which results in exceeding this limit MUST result - in an error, with the CALDAV: vpoll-max-active precondition - Section 7.2 being violated. In the absence of this property, the - - - -York, et al. Expires August 5, 2017 [Page 48] - -Internet-Draft VPOLL February 2017 - - - client can assume that the server can handle any number of active - VPOLLs. - - Definition: - - - PCDATA value: a numeric value (integer greater than zero) - - - Example: - - 25 - - -7.1.4. CALDAV:vpoll-max-voters - - Name: vpoll-max-voters - - Namespace: urn:ietf:params:xml:ns:caldav - - Purpose: Provides a numeric value indicating the maximum number of - voters for any instance of a VPOLL calendar object resource stored - in the calendar collection. - - Conformance: This property MAY be defined on any calendar - collection. If defined, it MUST be protected and SHOULD NOT be - returned by a PROPFIND DAV:allprop request (as defined in - Section 12.14.1 of [RFC2518]). - - Description: The CALDAV:vpoll-max-voters is used to specify a - numeric value that indicates the maximum number of VOTER - properties for any one instance of a VPOLL calendar object - resource stored in a calendar collection. Any attempt to store a - calendar object resource with more VOTER properties per instance - than this value MUST result in an error, with the CALDAV: vpoll- - max-voters precondition Section 7.2 being violated. In the - absence of this property, the client can assume that the server - can handle any number of voters in a VPOLL calendar component. - - Definition: - - - PCDATA value: a numeric value (integer greater than zero) - - - Example: - - - -York, et al. Expires August 5, 2017 [Page 49] - -Internet-Draft VPOLL February 2017 - - - 25 - - -7.1.5. CalDAV:even-more-properties - - 1. vpoll-supported-mode poll options - e.g "vpoll-basic" - -7.1.6. Extensions to CalDAV scheduling - - This specification extends [RFC6638]. - - Each section of Appendix A "Scheduling Privileges Summary" is - extended to include VPOLL. - - Any reference to the ATTENDEE property should be read to include the - VOTER property. That is, for scheduling purposes the VOTER property - is handled in exactly the same manner as the ATTENDEE property. - -7.2. Additional Preconditions for PUT, COPY, and MOVE - - This specification creates additional Preconditions for PUT, COPY, - and MOVE methods. These preconditions apply when a PUT operation of - a VPOLL calendar object resource into a calendar collection occurs, - or when a COPY or MOVE operation of a calendar object resource into a - calendar collection occurs, or when a COPY or MOVE operation occurs - on a calendar collection. - - The new preconditions are: - - (CALDAV:supported-vpoll-component-sets): The VPOLL resource - submitted in the PUT request, or targeted by a COPY or MOVE - request, MUST contain a type or combination of calendar component - that is supported in the targeted calendar collection; - - (CALDAV:vpoll-max-items): The VPOLL resource submitted in the PUT - request, or targeted by a COPY or MOVE request, MUST have a number - of sub-components (excluding VTIMEZONE) less than or equal to the - value of the CALDAV:vpoll-max-items property value Section 7.1.2 - on the calendar collection where the resource will be stored; - - (CALDAV:vpoll-max-active): The PUT request, or COPY or MOVE request, - MUST not result in the number of active VPOLLs being greater than - the value of the CALDAV:vpoll-max-active property value - Section 7.1.3 on the calendar collection where the resource will - be stored; - - - - -York, et al. Expires August 5, 2017 [Page 50] - -Internet-Draft VPOLL February 2017 - - - (CALDAV:vpoll-max-voters): The VPOLL resource submitted in the PUT - request, or targeted by a COPY or MOVE request, MUST have a number - of VOTER properties less than or equal to the value of the - CALDAV:vpoll-max-voters property value Section 7.1.4 on the - calendar collection where the resource will be stored; - -7.3. CalDAV:calendar-query Report - - This allows the retrieval of VPOLLs and their included components. - The query specification allows queries to be directed at the - contained sub-components. For VPOLL queries this feature is - disallowed. Time-range queries can only target the vpoll component - itself. - -7.3.1. Example: Partial Retrieval of VPOLL - - In this example, the client requests the server to return specific - components and properties of the VPOLL components that overlap the - time range from December 4, 2012, at 00:00:00 A.M. UTC to December - 5, 2012, at 00:00:00 A.M. UTC. In addition, the DAV:getetag - property is also requested and returned as part of the response. - Note that due to the CALDAV: calendar-data element restrictions, the - DTSTAMP property in VPOLL components has not been returned, and the - only property returned in the VCALENDAR object is VERSION. - - >> Request << - - REPORT /cyrus/work/ HTTP/1.1 - Host: cal.example.com - Depth: 1 - Content-Type: application/xml; charset="utf-8" - Content-Length: xxxx - - - - - - - - - - - - - - - - - - -York, et al. Expires August 5, 2017 [Page 51] - -Internet-Draft VPOLL February 2017 - - - - - - - - - - - - - - - >> Response << - - HTTP/1.1 207 Multi-Status - Date: Sat, 11 Nov 2012 09:32:12 GMT - Content-Type: application/xml; charset="utf-8" - Content-Length: xxxx - - - - - http://cal.example.com/cyrus/work/poll2.ics - - - "fffff-abcd2" - BEGIN:VCALENDAR - VERSION:2.0 - BEGIN:VPOLL - DTSTART;TZID=US/Eastern:20121202T120000 - DURATION:PT4D - SUMMARY:Poll #2 - UID:00959BC664CA650E933C892C@example.com - END:VPOLL - END:VCALENDAR - - - HTTP/1.1 200 OK - - - - http://cal.example.com/cyrus/work/poll3.ics - - - "fffff-abcd3" - BEGIN:VCALENDAR - - - -York, et al. Expires August 5, 2017 [Page 52] - -Internet-Draft VPOLL February 2017 - - - VERSION:2.0 - PRODID:-//Example Corp.//CalDAV Client//EN - BEGIN:VPOLL - DTSTART;TZID=US/Eastern:20121204T100000 - DURATION:PT4D - SUMMARY:Poll #3 - UID:DC6C50A017428C5216A2F1CD@example.com - END:VPOLL - END:VCALENDAR - - - HTTP/1.1 200 OK - - - - - -7.4. CalDAV time ranges - - Section 9.9 "CALDAV:time-range XML Element" in [RFC4791] describes - how to specify time ranges to limit the set of calendar components - returned by the server. This specification extends [RFC4791] to - describe the meaning of time ranges for VPOLL - - A VPOLL component is said to overlap a given time range if the - condition for the corresponding component state specified in the - table below is satisfied. The conditions depend on the presence of - the DTSTART, DURATION, DTEND, COMPLETED and CREATED properties in the - VPOLL component. Note that, as specified above, the DTEND value MUST - be a DATE-TIME value equal to or after the DTSTART value if - specified. - - - - - - - - - - - - - - - - - - - - -York, et al. Expires August 5, 2017 [Page 53] - -Internet-Draft VPOLL February 2017 - - - +-------------------------------------------------------------------+ - | VPOLL has the DTSTART property? | - | +---------------------------------------------------------------+ - | | VPOLL has the DURATION property? | - | | +-----------------------------------------------------------+ - | | | VPOLL has the DTEND property? | - | | | +-------------------------------------------------------+ - | | | | VPOLL has the COMPLETED property? | - | | | | +---------------------------------------------------+ - | | | | | VPOLL has the CREATED property? | - | | | | | +-----------------------------------------------+ - | | | | | | Condition to evaluate | - +---+---+---+---+---+-----------------------------------------------+ - | Y | Y | N | * | * | (start <= DTSTART+DURATION) AND | - | | | | | | ((end > DTSTART) OR | - | | | | | | (end >= DTSTART+DURATION)) | - +---+---+---+---+---+-----------------------------------------------+ - | Y | N | Y | * | * | ((start < DTEND) OR (start <= DTSTART)) | - | | | | | | AND | - | | | | | | ((end > DTSTART) OR (end >= DTEND)) | - +---+---+---+---+---+-----------------------------------------------+ - | Y | N | N | * | * | (start <= DTSTART) AND (end > DTSTART) | - +---+---+---+---+---+-----------------------------------------------+ - | N | N | Y | * | * | (start < DTEND) AND (end >= DTEND) | - +---+---+---+---+---+-----------------------------------------------+ - | N | N | N | Y | Y | ((start <= CREATED) OR (start <= COMPLETED))| - | | | | | | AND | - | | | | | | ((end >= CREATED) OR (end >= COMPLETED))| - +---+---+---+---+---+-----------------------------------------------+ - | N | N | N | Y | N | (start <= COMPLETED) AND (end >= COMPLETED) | - +---+---+---+---+---+-----------------------------------------------+ - | N | N | N | N | Y | (end > CREATED) | - +---+---+---+---+---+-----------------------------------------------+ - | N | N | N | N | N | TRUE | - +---+---+---+---+---+-----------------------------------------------+ - -8. Security Considerations - - Applications using these property need to be aware of the risks - entailed in using the URIs provided as values. See [RFC3986] for a - discussion of the security considerations relating to URIs. - -9. IANA Considerations - - - - - - - - -York, et al. Expires August 5, 2017 [Page 54] - -Internet-Draft VPOLL February 2017 - - -9.1. Parameter Registrations - - This document defines the following new iCalendar property parameters - to be added to the registry defined in Section 8.2.4 of [RFC5545]: - - +--------------------+---------+------------------------+ - | Property Parameter | Status | Reference | - +--------------------+---------+------------------------+ - | REQUIRED | Current | RFCXXXX, Section 4.3.1 | - | STAY-INFORMED | Current | RFCXXXX, Section 4.3.2 | - +--------------------+---------+------------------------+ - -9.2. Property Registrations - - This document defines the following new iCalendar properties to be - added to the registry defined in Section 8.2.3 of [RFC5545]: - - +-----------------+---------+------------------------+ - | Property | Status | Reference | - +-----------------+---------+------------------------+ - | ACCEPT-RESPONSE | Current | RFCXXXX, Section 4.4.1 | - | POLL-ITEM-ID | Current | RFCXXXX, Section 4.4.3 | - | POLL-MODE | Current | RFCXXXX, Section 4.4.4 | - | POLL-PROPERTIES | Current | RFCXXXX, Section 4.4.5 | - | POLL-WINNER | Current | RFCXXXX, Section 4.4.6 | - | RESPONSE | Current | RFCXXXX, Section 4.4.8 | - | VOTER | Current | RFCXXXX, Section 4.4.9 | - +-----------------+---------+------------------------+ - -9.3. POLL-MODE Registration Template - - A poll mode is defined by completing the following template. - - Poll mode name: The name of the poll mode. - - Purpose: The purpose of the poll mode. Give a short but clear - description. - - Reference: A reference to the RFC in which the poll mode is defined - -9.4. POLL-MODE Registrations - - This document defines the following registered poll modes. - - - - - - - - -York, et al. Expires August 5, 2017 [Page 55] - -Internet-Draft VPOLL February 2017 - - - +----------+--------------------------------------------+-----------+ - | Poll | Purpose | Reference | - | mode | | | - | name | | | - +----------+--------------------------------------------+-----------+ - | BASIC | To provide simple voting for a single | Current | - | | outcome from a number of candidates. | | - +----------+--------------------------------------------+-----------+ - -10. Acknowledgements - - The authors would like to thank the members of the Calendaring and - Scheduling Consortium Freebusy technical committee and the following - individuals for contributing their ideas and support: - - ... - - The authors would also like to thank the Calendaring and Scheduling - Consortium for advice with this specification. - -11. Normative References - - [I-D.daboo-icalendar-extensions] - Daboo, C., "New Properties for iCalendar", draft-daboo- - icalendar-extensions-09 (work in progress), July 2014. - - [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate - Requirement Levels", BCP 14, RFC 2119, - DOI 10.17487/RFC2119, March 1997, . - - [RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing an - IANA Considerations Section in RFCs", RFC 2434, - DOI 10.17487/RFC2434, October 1998, . - - [RFC2518] Goland, Y., Whitehead, E., Faizi, A., Carter, S., and D. - Jensen, "HTTP Extensions for Distributed Authoring -- - WEBDAV", RFC 2518, DOI 10.17487/RFC2518, February 1999, - . - - [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, - DOI 10.17487/RFC3688, January 2004, . - - - - - - - -York, et al. Expires August 5, 2017 [Page 56] - -Internet-Draft VPOLL February 2017 - - - [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform - Resource Identifier (URI): Generic Syntax", STD 66, - RFC 3986, DOI 10.17487/RFC3986, January 2005, - . - - [RFC4589] Schulzrinne, H. and H. Tschofenig, "Location Types - Registry", RFC 4589, DOI 10.17487/RFC4589, July 2006, - . - - [RFC4791] Daboo, C., Desruisseaux, B., and L. Dusseault, - "Calendaring Extensions to WebDAV (CalDAV)", RFC 4791, - DOI 10.17487/RFC4791, March 2007, . - - [RFC5545] Desruisseaux, B., Ed., "Internet Calendaring and - Scheduling Core Object Specification (iCalendar)", - RFC 5545, DOI 10.17487/RFC5545, September 2009, - . - - [RFC5546] Daboo, C., Ed., "iCalendar Transport-Independent - Interoperability Protocol (iTIP)", RFC 5546, - DOI 10.17487/RFC5546, December 2009, . - - [RFC6047] Melnikov, A., Ed., "iCalendar Message-Based - Interoperability Protocol (iMIP)", RFC 6047, - DOI 10.17487/RFC6047, December 2010, . - - [RFC6638] Daboo, C. and B. Desruisseaux, "Scheduling Extensions to - CalDAV", RFC 6638, DOI 10.17487/RFC6638, June 2012, - . - - [W3C.REC-xml-20060816] - Bray, T., Paoli, J., Sperberg-McQueen, M., Maler, E., and - F. Yergeau, "Extensible Markup Language (XML) 1.0 (Fourth - Edition)", World Wide Web Consortium Recommendation REC- - xml-20060816, August 2006, - . - -Appendix A. Open issues - - Notifications: Need to do a section on what Notifications to - support. - A. VPOLL is about to end and you haven't voted on it yet. - Instead reuse VALARMS to notify the user? - - - - - -York, et al. Expires August 5, 2017 [Page 57] - -Internet-Draft VPOLL February 2017 - - - Future: Restarting a confirmed/completed VPOLL What to do with - changes to STATUS:CONFIRMED? Allow them or not? What do to that - poll had a winning event or todo. - Stress VPOLL UID MUST be unique - Changing status back from CONFIRMED MUST adjust status of any - events booked as a result of confirmation. - MUST winning event be cancelled for POLL-MODE basic? No - VOTER - has indicated now unable to attend - want to revote - - Future: Voting on a confirmed/completed VPOLL Can a VOTER vote after - completion? May be unable to attend and wants to indicate. - Requires retention of VPOLL - retention period - Removed status - - ORGANIZER/ATTENDEE validity Can a user create a poll with scheduled - events where that user's isn't the organizer of the poll? So is - there a requirement that the account that poll is on is able to - create each one of the resources in the poll? i.e. I can't create - a poll with a set of events where I am just the attendee of the - events. Are there any other restrictions for components in a - VPOLL? - Add to security consideration - - Update to existing event after poll confirm When voting on existing - event - winning properties ONLY are merged in to the real event. - - Need to write down what isn't valid in a VPOLL - a. Can't change POLL-MODE - - Guide for ATTENDEE roles - chair, NON-PARTICIPANT etc - - ? - some iTip notes On confirm - send itip if appropriate (PUBLISH) - - all non-participating - shared - feeds - Organizer can specify where result is? - Confirm can specify that itip is sent - ITIP / NONE - parameter ? - on POLL-WINNER - - Need to add example of freebusy in response - - - - - - - - - - - -York, et al. Expires August 5, 2017 [Page 58] - -Internet-Draft VPOLL February 2017 - - - BEGIN:VCALENDAR - VERSION:2.0 - PRODID:-//BedeworkCaldavTest//BedeworkCaldavTest - METHOD: REPLY - BEGIN:VPOLL - ORGANIZER:mailto:douglm@mysite.edu - VOTER:mailto:eric@example.com - UID:sched01-1234567890 - DTSTAMP:20120101T010000Z - SEQUENCE:0 - SUMMARY:What to do this week - BEGIN:VFREEBUSY - ....... - END:VFREEBUSY - END:VPOLL - END:VCALENDAR - -Appendix B. Change log - - V03: 2014-10-28 MD - - o Add VVOTER and VOTE components. - - o Add RESPONSE property. - - o Remove RESPONSE parameter from VOTER. - - V03: 2014-05-12 MD - - o Add reply-url property and required parameter. - - o Fix ACCEPT-RESPONSE definition. - - V02: 2014-05-12 MD - - o Typos fixed, clarifications made. - - o Removed spurious COMMENT param. Switched some to PUBLIC-COMMENT - - o Changed STAY-INFORMED to remove boolean value type and state - explicit TRUE/FALSE values. - - o iTip: Allow VPOLL DTSTART to be optional and allow VAVAILABILITY - as subcomponent - - o iTip: fix broken table cells - - o Add POLL-PROPERTIES, POLL-WINNER to 5545 extensions table - - - -York, et al. Expires August 5, 2017 [Page 59] - -Internet-Draft VPOLL February 2017 - - - o Added Caldav scheduling section - - V01: 2013-08-07 MD - - o Removed method CONFIRM - - o Removed pollitemid from VPOLL abnf. Added text for pollwinner - - o Added POLL-WINNER and verbiage - - o Added STATUS values - - o Added RELTYPE=POLL - - o Added supported-vpoll-component-sets - - o Added CalDAV related parameters to VOTER - - o Removed bad CalDAV query example. State that queries cannot - target the sub-components. - - 2012-11-02 MD Initial version - -Authors' Addresses - - Eric York (editor) - Apple Inc. - 1 Infinite Loop - Cupertino, CA 95014 - USA - - Email: eyork@apple.com - URI: http://www.apple.com/ - - - Cyrus Daboo (editor) - Apple Inc. - 1 Infinite Loop - Cupertino, CA 95014 - USA - - Email: cyrus@daboo.name - URI: http://www.apple.com/ - - - - - - - - -York, et al. Expires August 5, 2017 [Page 60] - -Internet-Draft VPOLL February 2017 - - - Michael Douglass (editor) - Spherical Cow Group - 226 3rd Street - Troy, NY 12180 - USA - - Email: mdouglass@sphericalcowgroup.com - URI: http://sphericalcowgroup.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -York, et al. Expires August 5, 2017 [Page 61] diff --git a/vpoll/draft-york-vpoll.xml b/vpoll/draft-york-vpoll.xml deleted file mode 100644 index cccb4d9..0000000 --- a/vpoll/draft-york-vpoll.xml +++ /dev/null @@ -1,5728 +0,0 @@ - - - - - - - - - - - - - - -]> - - - - - - - - - - - - VPOLL: Consensus Scheduling Component for iCalendar - - - - - - Apple Inc. - -

- - 1 Infinite Loop - Cupertino - CA - 95014 - USA - - eyork@apple.com - http://www.apple.com/ -
- - - - - Apple Inc. - -
- - 1 Infinite Loop - Cupertino - CA - 95014 - USA - - cyrus@daboo.name - http://www.apple.com/ -
-
- - - Spherical Cow Group -
- - 226 3rd Street - Troy - NY - 12180 - USA - - mdouglass@sphericalcowgroup.com - http://sphericalcowgroup.com -
-
- - - - Applications - - icalendar - - properties - - - - This specification introduces a new iCalendar component which allows - for consensus scheduling, that is, voting on a number of alternative - meeting or task alternatives. - - - - - -
- - The currently existing approach to agreeing on meeting times using iTip - and/or iMip has some - significant failings. There is no useful bargaining or suggestion - mechanism in iTip, only the ability for a potential attendee to accept - or refuse or to counter with a time of their own choosing. - - - - Part of the problem is that for many potential attendees, their freebusy - is not an accurate representation of their availability. In fact, when - trying to schedule conference calls across different organizations, - attendees may not be allowed to provide freebusy information or - availability as this may reveal something of the organizations internal - activities. - - - - A number of studies have shown that large amounts of time are spent - trying to come to an agreement - up to and beyond 20 working hours - per meeting. Many organizers fall back on other approaches such as - phone calls and email to determine a suitable time. - - - - Online services have appeared as a result and these allow participants - to vote on a number of alternatives without revealing or using freebusy - or availability. - When agreement is reached a conventional scheduling message may be sent - to the attendees. This approach appears to reach consensus fairly rapidly. - Peer pressure may have some bearing on this as all voters are usually able to - see the current state of the voting and may adjust their own meeting - schedules to make themselves available for a popular choice. - - - - The component and properties defined in this specification provide a - standardized structure for this process and allow calendar clients and - servers and web based services to interact. - - - - These structures also have uses beyond the relatively simple needs of most - meeting organizers. The process of coming to consensus can also be viewed - as a bidding process. - -
- -
- - The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL - NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", - "MAY", and "OPTIONAL" in this document are to be interpreted as - described in . - - - - Additionally we will use the following terms: - - - - The process whereby we come to some agreement on meeting or task - alternatives and then book that meeting or task. - - - - A vpoll may have a DTSTART, DTEND and DURATION which may define the - start and end of the active voting period. - - - - A participant who votes on the alternatives. A voter need not be - an attendee of any of the alternatives presented. - - - -
- -
- - This specification defines components and properties which can be used - for simple consensus scheduling but also have the generality to handle - more complex cases. To provide an easy (and for many - sufficient) - introduction to consensus scheduling and VPOLL we will outline the - flow of information for the simple case of voting on a number of - meeting alternatives which differ only in time. In addition the voters - will all be potential attendees. - - - - This specification not only defines data structures but adds a new iTip - method used when consensus has been reached. This document will - show how a VPOLL object is used to inform voters of the state - of a simple vote on some alternatives. - - -
- - The VPOLL component acts as a wrapper for a number of alternatives to - be voted on, together with some properties and a new component used - to maintain the state - of the voting. For our simple example the following VPOLL properties - and sub-components are either required or appropriate: - - - - The usual property. - - - - The usual property. See below for SEQUENCE - behavior. - - - - The usual property. - - - - The usual property. In general this need not - be an organizer of any of the alternatives. In this simple outline - we assume it is the same. - - - - The usual property. This optional but - recommended property provides the a short title to the poll. - - - - The usual property. This optional property - provides more details. - - - - The usual property. This optional property - provides a poll closing time and date after which the VPOLL is no - longer active. - - - - A new property which defines how the votes are used to obtain a - result. For our use case it will take the value "BASIC" meaning - one event will be chosen from the alternatives. - - - - A new property which defines who (server or client) - chooses and/or submits the winning choice. In our example - the value is "SERVER-SUBMIT" which means the client chooses - the winner but the server will submit the winning choice. - - - - A new property which defines which icalendar properties are being - voted on. For our use case it will take the value "DTSTART, LOCATION" - meaning only those properties are significant for voting. - Other properties in the events may differ but are not considered - significant for the voting process. - - - - A new component. There is one of these for each voter and it - contains a VOTER property to identify the voter and one VOTE - component for each item being voted on. - - - - A new component. There is one of these for each voter and choice. - It usually contains at least a POLL-ITEM-ID property to identify the choice - and a RESPONSE property to provide a vote. For more complex poll - modes it may contain other information such as cost or - estimated duration. - - - - A new property. There is one of these for each voter and it is - similar to the ATTENDEE property. It - identifies the VVOTER component to show who is taking part in - the voting and their results. - - - - In our simple use case there will be multiple VEVENT sub-components - defining the alternatives. Each will have a different date and or time - for the meeting. - - - - - - Putting that together we can construct an example VPOLL with 3 voters - and 3 alternative meetings: - -
- -
-
- - - As can be seen in the example above, there is an iTip METHOD property - with the value REQUEST. The VPOLL object will be distributed to all - the voters, either through iMip or through some VPOLL enabled service. - -
- -
- - Within the VPOLL component we have the alternatives to vote on. In many - respects these are standard components. For - our simple use case they are all VEVENT components. In addition to the - usual properties some extra properties are - used for a VPOLL. - - - - This provides a unique reference to the sub-component within the - VPOLL. It's value SHOULD be a small integer. - - - -
- -
- - Upon receipt of a VPOLL REQUEST the voter will reply with a VPOLL - component containing their vote. In our simple case it will have the - following properties and components: - - - - The usual property. - - - - The usual property. See below for SEQUENCE - behavior. - - - - Same as the request. - - - - Same as the request. - - - - Same as the request. - - - - One only. - - - - One only inside the VVOTER component - the voter replying. - - - - One per item being voted on. There does not need to be one for - each choice. - - - - One inside each VOTE component to identify the choice. - - - - One inside each VOTE component to specify the vote. - - - - - - Note that a voter can send a number of REPLYs for each REQUEST sent - by the organizer. Each REPLY completely replaces the voting record for - that voter for all components being voted on. In our example, if Eric - responds and votes for items 1 and 2 and then responds again with a - vote for only item 3, the final outcome is one vote on item 3. - - - - Putting this together we can construct an example REPLY VPOLL from - Cyrus: - -
- -
-
-
- -
- - When the organizer receives a response from one or more voters the - current state of the poll is sent to all voters. The new iTip method - POLLSTATUS is used. The VPOLL can contain a reduced set of properties - but MUST contain DTSTAMP, SEQUENCE (if not 0), UID, ORGANIZER and - one or more VVOTER components each populated with a VOTER property and - zero or more VOTE components. - - - - An example: - -
- -
-
-
- -
- - After a number of REPLY messages have been received the poll will be - considered complete. If there is a DTEND on the poll the system may - automatically close the poll, or the organizer may, at any time, - consider the poll complete. A VPOLL can be completed (and - effectively closed for voting) by sending an iTip REQUEST message - with the VPOLL STATUS property set to COMPLETED. - - - - The poll winner is confirmed by sending a final iTip REQUEST message - with the VPOLL STATUS property set to CONFIRMED. - In this case the VPOLL component contains all the - events being voted on along with a POLL-WINNER property to - identify the winning event. As the POLL-COMPLETION property - is set to SERVER-SUBMIT the server will submit the winning choice - and when it has done so set the STATUS to "SUBMITTED". - - - - The VPOLL confirmation example: - -
- -
-
-
- -
- - A voter being asked to choose between a number of ORGANIZER - supplied alternatives may find none of them acceptable or may - simply not care. - - - - An alternative response, which may be disallowed by the ORGANIZER, - is to send back the respondees availability or freebusy or - even one or more new, alternative choices. - - - - This is accomplished by responding with a VOTE component which - has no POLL-ITEM-ID property. In this case it MUST contain - some alternative information. What form this takes depends - on the poll mode in effect. - -
-
- -
-
- - Relationship parameter type values are defined in section 3.2.15. of - . This specification updates that type to - include the new relationship value POLL to provide a link to - the VPOLL component in which the current component appears. - - - - - -
- - This property parameter is redefined by the following notation: - - - - reltypeparam /= "RELTYPE" "=" "POLL" - ; Property value is a VPOLL uid - -
-
- - - This parameter can be specified on a property that - references another related calendar component. - The new parameter value indicates that the associated - property references a VPOLL component which contains the - current component. - -
-
-
- -
- - Status property values are defined in section 3.8.1.11. of - . This specification updates that type to - define valid VPOLL status values. - - - - - -
- - This property parameter is redefined by the following notation: - - - - statvalue /= statvalue-poll - ; Status values for "VPOLL". - statvalue-poll = "IN-PROCESS" - / "COMPLETED" ; Poll has closed, - ; nothing has been chosen yet - / "CONFIRMED" ; Poll has closed and - ; winning items confirmed - / "SUBMITTED" ; The winning item has been - ; submitted - / "CANCELLED" - -
-
- - - These values allow clients and servers to handle the - choosing and submission of winning choices. - - - - If the client is choosing and the server submitting then - the client should set the POLL-WINNER property, set the - status to CONFIRMED and save the poll. When the server - submits the winning choice it will set the status to - SUBMITTED. - -
-
-
- -
-
- - - - REQUIRED - - - - To specify whether the associated property is required - in the current context. - - - -
- - This parameter is defined by the following notation: - - - - requirededparam = "REQUIRED" "=" ("TRUE" / "FALSE") - ; Default is FALSE - -
-
- - - This parameter MAY be specified on REPLY-URL and, if the value is TRUE, - indicates the organizer requires all replies to be made - via the specified service rather than iTip replies. - -
-
-
- -
- - - - STAY-INFORMED - - - - To specify the voter also wants to be added as an ATTENDEE when - the poll is confirmed. - - - -
- - This parameter is defined by the following notation: - - - - stayinformedparam = "STAY-INFORMED" "=" ("TRUE" / "FALSE") - ; Default is FALSE - -
-
- - - This parameter MAY be specified on VOTER and, if the value is TRUE, - indicates the voter wishes to be added to the final choice as a - non participant. - -
-
-
-
- -
-
- - - - ACCEPT-RESPONSE - - - - This property is used in VPOLL to indicate the types of component - that may be supplied in a response. - - - - Non-standard or iana parameters can be specified on this property. - - - - This property MAY be specified in a VPOLL component. - - - - When used in a VPOLL this property indicates what allowable - component types may be returned in a reply. Typically this would - allow a voter to respond with their freebusy or availability rather - than choosing one of the presented alternatives - - - - If this property is not present voters are only allowed to - respond to the choices in the request. - - - -
- - This property is defined by the following notation: - - - - acceptresponse = "ACCEPT-RESPONSE" acceptresponseparams ":" - iana-token ("," iana-token) CRLF - - acceptresponseparams = *(";" other-param) - -
-
-
-
-
- -
- - - - POLL-COMPLETION - - - - This property is used in VPOLL to indicate whether the - client or server is responsible for choosing and/or - submitting the winner(s). - - - - When a VPOLL is stored on a server which is capable of - handling choosing and submission of winning choices a - value of SERVER indicates that the server should close - the poll, choose the winner and submit whenever it is - appropriate to do so. - - - - For example, in BASIC poll-mode, reaching the DTEND of - the poll could trigger this server side action. - - - - Server initiated submission requires that the submitted - choice MUST be a valid calendaring component. - - - - POLL-COMPLETION=SERVER-SUBMIT allows the client to - set the poll-winner, set the status to CONFIRMED and - then store the poll on the server. The server will then - submit the winning choice and set the status to SUBMITTED. - - - -
- - This property is defined by the following notation: - - - - poll-completion = "POLL-COMPLETION" pcparam ":" pcvalue CRLF - - pcparam = *(";" other-param) - - pcvalue = "SERVER" ; The server is responsible for both choosing and - ; submitting the winner(s) - / "SERVER-SUBMIT" ; The server is responsible for - ; submitting the winner(s). The client chooses. - / "SERVER-CHOICE" ; The server is responsible for - ; choosing the winner(s). The client will submit. - / "CLIENT" ; The client is responsible for both choosing and - ; submitting the winner(s) - / iana-token - / x-name - ;Default is CLIENT - -
-
- - -
- - The following is an example of this property: - - - - POLL-COMPLETION: SERVER-SUBMIT - -
-
-
-
-
- -
- - - - POLL-ITEM-ID - - - - This property is used in VPOLL child components as an identifier. - - - - INTEGER - - - - Non-standard parameters - can be specified on this property. - - - - This property MUST be specified in a VOTE component and - in VPOLL choice items. - - - - In a METHOD:REQUEST each choice component MUST have a POLL-ITEM-ID - property. Each set of components with the same POLL-ITEM-ID value - represents one overall set of items to be voted on. - - - - POLL-ITEM-ID SHOULD be a unique small integer for each component - or set of components. If it remains the same between - REQUESTs then the previous response for that component MAY be re-used. - To force a re-vote on a component due to a significant change, the - POLL-ITEM-ID MUST change. - - - -
- - This property is defined by the following notation: - - - - pollitemid = "POLL-ITEM-ID" pollitemdparams ":" - integer CRLF - - pollitemidparams = *( - (";" other-param) - ) - - -
-
-
-
-
- -
- - - - POLL-MODE - - - - This property is used in VPOLL to indicate what voting mode is - to be applied. - - - - Non-standard or iana parameters - can be specified on this property. - - - - This property MAY be specified in a VPOLL component or its - sub-components. - - - - The poll mode defines how the votes are applied to obtain a result. - BASIC mode, the default, means that the voters are selecting one - component (or group of components) with a given POLL=ITEM-ID. - - - - Other polling modes may be defined in updates to this specification. - These may allow for such modes as ranking or task assignment. - - - -
- - This property is defined by the following notation: - - - - pollmode = "POLL-MODE" pollmodeparams ":" - ("BASIC" / iana-token / other-token) CRLF - - pollmodeparams = *(";" other-param) - - -
-
-
-
-
- -
- - - - POLL-PROPERTIES - - - - This property is used in VPOLL to define which icalendar properties - are being voted on. - - - - Non-standard or iana parameters can be specified on this property. - - - - This property MAY be specified in a VPOLL component. - - - - This property defines which icalendar properties are significant - in the voting process. It may not be clear to voters which - properties are varying in a significant manner. Clients may - use this property to highlight those listed properties. - - - -
- - This property is defined by the following notation: - - - - pollproperties = "POLL-PROPERTIES" pollpropparams ":" - text *("," text) CRLF - - pollpropparams = *(";" other-param) - - -
-
-
-
-
- -
- - - - POLL-WINNER - - - - This property is used in a basic mode VPOLL to indicate - which of the VPOLL sub-components won. - - - - INTEGER - - - - Non-standard parameters - can be specified on this property. - - - - This property MAY be specified in a VPOLL component. - - - - For poll confirmation each child component MUST have a POLL-ITEM-ID - property. For basic mode the VPOLL component SHOULD - have a POLL-WINNER property which MUST correspond to - one of the POLL-ITEM-ID - properties and indicates which sub-component was the winner. - - - -
- - This property is defined by the following notation: - - - - pollwinner = "POLL-WINNER" pollwinnerparams ":" - integer CRLF - - pollwinnerparams = *(";" other-param) - - ; Used with a STATUS:CONFIRMED VPOLL to indicate which - ; components have been confirmed - - -
-
-
-
-
- -
- - - - REPLY-URL - - - - This property may be used in scheduling messages to - indicate additional reply methods, for example a web-service. - - - - Non-standard, required or iana parameters can be specified on this property. - - - - This property MAY be specified in a VPOLL component. - - - - When used in a scheduling message this property indicates - additional or required services that can be used to reply. - Typically this would be a web service of some form. - - - -
- - This property is defined by the following notation: - - - - reply-url = "REPLY-URL" reply-urlparams ":" uri CRLF - - reply-urlparams = *( - (";" requiredparam) / - (";" other-param) - ) - -
-
-
-
-
- -
- - - - RESPONSE - - - - To specify a response vote. - - - - INTEGER - - - -
- - This property is defined by the following notation: - - - - response = "RESPONSE" response-params ":" integer CRLF - ; integer value 0..100 - - responseparams = *(";" other-param) - -
-
- - - This parameter can be specified on the POLL-ITEM-ID property to - provide the value of the voters response. This parameter allows - for fine grained responses which are appropriate to some - applications. For the case of individuals voting for a choice of - events, client applications SHOULD conform to the following - convention: - - - 0 - 39 A "NO vote". - - - 40 - 79 A "MAYBE" vote - - - 80 - 89 A "YES - but not preferred vote" - - - 90-100 A "YES" vote. - - - - - - Clients MUST preserve the response value when there is no - change from the user even if they have a UI with fixed states - (e.g. yes/no/maybe). - -
-
-
- -
- - - - VOTER - - - - This property is used in VVOTER components to indicate - recipients of the poll and to identify that component - as containing the voters responses. - - - - The value type for this property is cal-address. - - - - Non-standard, cutype, member, role, rsvp, delto, delfrom, sentby, - cn, dir, lang or stayinformed parameters - can be specified on this property. - - - - This property MAY be specified in a VPOLL component or its - sub-components. - - - - This property appears in the VVOTER component only and - indicates a recipient of the poll and their responses. - - - -
- - This property is defined by the following notation: - - - - voter = "VOTER" voterparams ":" cal-address CRLF - - voterparam = *( - ; - ; The following are OPTIONAL, - ; but MUST NOT occur more than once. - ; - (";" cutypeparam) / (";" memberparam) / - (";" roleparam) / - (";" rsvpparam) / (";" deltoparam) / - (";" delfromparam) / (";" sentbyparam) / - (";" cnparam) / (";" dirparam) / - (";" languageparam) / - (";" stayinformedparam) / - - ; - ; The following are OPTIONAL, but MUST NOT occur - ; more than once. They are defined in RFC6638 - ; - (";" scheduleagentparam) / - (";" scheduleforcesendparam) / - (";" schedulestatusparam) / - - ; - ; The following is OPTIONAL, - ; and MAY occur more than once. - ; - (";" other-param) - ; - ) - - -
-
- - - RSVP=TRUE MAY be used by the organizer to force the voter to reset - their state and re-vote. - - - scheduleagentparam, scheduleforcesendparam and - schedulestatusparam are all related to CalDAV scheduling - and are defined in . Their - semantics are exactly as defined in that specification. - -
-
-
-
- -
-
- - - - VPOLL - - - - This component provides a mechanism by which voters can vote on - provided choices. - - - -
- - This property is defined by the following notation: - - - - pollc = "BEGIN" ":" "VPOLL" CRLF - pollprop - *voterc *eventc *todoc *journalc *freebusyc - *availabilityc *alarmc *iana-comp *x-comp - "END" ":" "VPOLL" CRLF - - pollprop = *( - ; - ; The following are REQUIRED, - ; but MUST NOT occur more than once. - ; - dtstamp / uid / organizer / - ; - ; The following are OPTIONAL, - ; but MUST NOT occur more than once. - ; - acceptresponse / class / created / completed / - description / dtstart / last-mod / pollmode / - pollproperties / priority / seq / status / - summary / url / - ; - ; Either 'dtend' or 'duration' MAY appear in - ; a 'pollprop', but 'dtend' and 'duration' - ; MUST NOT occur in the same 'pollprop'. - ; 'duration' MUST only occur when 'dtstart' - ; is present - ; - dtend / duration / - ; - ; The following are OPTIONAL, - ; and MAY occur more than once. - ; - attach / categories / comment / - contact / rstatus / related / - resources / x-prop / iana-prop - ; - ; The following is OPTIONAL, it SHOULD appear - ; once for the confirmation of a BASIC mode - ; VPOLL. Other modes may define differing - ; requirements. - ; - pollwinner / - ; - ) - -
-
- - - This component provides a mechanism by which voters can vote on - provided choices. The outcome depends upon the POLL-MODE in effect. - - - - The VVOTER components in VPOLL requests provide information on - each recipient who will be voting - both their identity - through the VOTER property and their votes through the VOTE - components. - - - - If specified, the "DTSTART" property defines the start or - opening of the poll active period. If absent the poll is presumed - to have started when created. - - - - If "DTSTART" is present "DURATION" MAY be specified and indicates - the duration, and hence the ending, of the poll. The value of the - property MUST be a positive duration. - - - - "DTEND" MAY be specified with or without "DTSTART" and indicates - the ending of the poll. If DTEND is specified it MUST be later than - the DTSTART or CREATED property. - - - - If one or more VALARM components are included in the VPOLL they - are not components to be voted on and MUST NOT contain a POLL-ITEM-ID - property. VALARM sub-components may be used to provide warnings to - the user when polls are due to start or end. - - - - Need some text to describe what relative alarms are relative to. - -
-
-
- -
- - - - VPOLL - - - - This component contains identification of the recipient - and voter and their responses. - - - -
- - This property is defined by the following notation: - - - - voterc = "BEGIN" ":" "VVOTER" CRLF - voterprop - *votec *iana-comp *x-comp - "END" ":" "VVOTER" CRLF - - voterprop = *( - ; - ; The following are REQUIRED, - ; but MUST NOT occur more than once. - ; - dtstamp / voter / - ; - ; The following are OPTIONAL, - ; but MUST NOT occur more than once. - ; - created / description / last-mod / seq / - status / summary / url / - ; - ; The following are OPTIONAL, - ; and MAY occur more than once. - ; - attach / categories / comment / - contact / rstatus / related / - resources / x-prop / iana-prop - ; - ) - -
-
- - - This component contains a VOTER property identifying a - recipient and voter and zero or more VOTE components - containing their responses. - - - - The VOTER property in VVOTER objects refers to a recipient - who will be voting - - RSVP=TRUE is used by the organizer to force the voter to reset - their state and re-vote - -
-
-
- -
- - - - VPOLL - - - - This component provides a mechanism by which voters can vote on - provided choices. - - - -
- - This property is defined by the following notation: - - - - votec = "BEGIN" ":" "VOTE" CRLF - voteprop - *eventc *todoc *journalc *freebusyc - *availabilityc *alarmc *iana-comp *x-comp - "END" ":" "VOTE" CRLF - - voteprop = *( - ; - ; The following are REQUIRED, - ; but MUST NOT occur more than once. - ; - pollitemid / response / - ; - ; The following are OPTIONAL, - ; and MAY occur more than once. - ; - comment / x-prop / iana-prop - ; - ) - -
-
- - - This component identifies voters and contains their - responses. - - - - The required and optional properties and their meanings - depend upon the POLL-MODE in effect. - - - - For any POLL-MODE, POLL-ITEM-ID is used to associate the - information to a choice supplied by the organizer. - - - - If allowed by the POLL-MODE a VOTE component without a - POLL-ITEM-ID may be provided in a REPLY to indicate a - possible new choice or to provide information to the - ORGANIZER - such as the respondees availability. - -
-
-
-
-
- -
- - The VPOLL component is intended to allow for various forms of polling. - The particular form in efffect is indicated by the POLL-MODE property. - - - - New poll modes can be - registered by including a completed POLL-MODE Registration Template - (see ) in a published RFC. - - -
- - BASIC poll mode is the form of voting in which one possible outcome is - chosen from a set of possibilities. Usually this will be represented - as a number of possible event objects one of which will be selected. - - -
- - This poll mode has the following property requirements: - - - Each contained sub-component that is being voted upon - MUST contain a POLL-ITEM_ID property which is unique - within the context of the POLL. The value MUST NOT - be reused when events are removed and/or added to the - poll. - - - On confirmation of the poll this property MUST be - present and identifies the winning component. - - - -
- -
- - To confirm the winner the POLL-WINNER property MUST be present - and the STATUS MUST be set to CONFIRMED. - - - - When the winning VEVENT or VTODO is not a scheduled entity, - that is, it has no ORGANIZER or ATTENDEES it MUST be - assigned an ORGANIZER property and a list of - non-participating ATTENDEEs. This allows the winning - entity to be distributed to the participants through iTip - or some other protocol. - -
-
- - -
- -
- - This specification introduces a number of extensions to - . In group scheduling the parties involved are - organizer and attendees. In VPOLL the parties are organizer and voters. - - - - For many of the iTip processing rules the voters take the place of - attendees. - - -
- - There are some extensions to the behavior of iTip methods for a VPOLL - object and two new methods are defined. - - - - Method - - - Description - - - PUBLISH - - - No changes (yet) - - -   - - -   - - - REQUEST - - - Each child component MUST have a POLL-ITEM-ID property. - Each set of components with the same POLL-ITEM-ID value represents - one overall set of items to be voted on. - - -   - - -   - - - REPLY - - - There MUST be a single VPOLL component which MUST have: - either one or more POLL-ITEM-ID properties with a RESPONSE param - matching that from a REQUEST or a VFREEBUSY or VAVAILABILITY child - component showing overall busy/available time. The VPOLL MUST have - one VOTER only. - - -   - - -   - - - ADD - - - Not supported for VPOLL. - - -   - - -   - - - CANCEL - - - There MUST be a single VPOLL component with UID matching that of the - poll being cancelled. - - -   - - -   - - - REFRESH - - - The organizer returns a METHOD:REQUEST with the current full state, - or a METHOD:CANCEL or an error if no matching - poll is found. - - -   - - -   - - - COUNTER - - - Not supported for VPOLL. - - -   - - -   - - - DECLINECOUNTER - - - Not supported for VPOLL. - - -   - - -   - - - POLLSTATUS - - - Used to send the current state of the poll to all voters. The VPOLL - can contain a reduced set of properties but MUST contain DTSTAMP, - SEQUENCE (if not 0), UID, ORGANIZER and VOTER. - - -   - - -   - - - - The following table shows the above methods broken down by who can - send them with VPOLL components. - - - - Originator - - - Methods - - - Organizer - - - CANCEL, PUBLISH, REQUEST, POLLSTATUS - - -   - - -   - - - Voter - - - REPLY, REFRESH, REQUEST (only when delegating) - - -
- -
- - Most of the standard iTip specification applies with respect to - organizer and voters. - - -
- - TBD - -
- -
- - TBD - -
- -
- - Need to talk about what a change in SEQUENCE means - - Sequence change forces a revote. - - New voter - no sequence change - - Add another poll set or change poll item ids or any change to a child - component - bump sequence - -
- -
- - TBD - -
-
-
-
- - This section defines the property set restrictions for the - method types that are applicable to the "VPOLL" calendar - component. Each method is defined using a table that - clarifies the property constraints that define the - particular method. - - - The presence column uses the following values to assert - whether a property is required or optional, and the number - of times it may appear in the iCalendar object. - - - - Presence Value - - - Description - - - 1 - - - One instance MUST be present. - - - 1+ - - - At least one instance MUST be present. - - - 0 - - - Instances of this property MUST NOT be present. - - - 0+ - - - Multiple instances MAY be present. - - - 0 or 1 - - - Up to 1 instance of this property MAY be present. - - - - The following summarizes the methods that are defined for the - "VPOLL" calendar component. - - - - Method - - - Description - - - PUBLISH - - - Post notification of an poll. Used primarily as a method of - advertising the existence of a poll. - - -   - - -   - - - REQUEST - - - To make a request for a poll. This is an explicit - invitation to one or more voters. Poll requests are - also used to update, change or confirm an existing poll. Clients - that cannot handle REQUEST MAY degrade the poll to view - it as a PUBLISH. REQUEST SHOULD NOT be used just to set the status - of the poll - POLLSTATUS provides a more compact approach. - - -   - - -   - - - REPLY - - - Reply to a poll request. Voters may set their RESPONSE parameter - to supply the current vote in the range 0 to 100. - - -   - - -   - - - CANCEL - - - Cancel a poll. - - -   - - -   - - - REFRESH - - - A request is sent to an Organizer by a Voter asking for the - latest version of a poll to be resent to the requester. - - -   - - -   - - - POLLSTATUS - - - Used to send the current state of the poll to all voters. The VPOLL - can contain a reduced set of properties but MUST contain DTSTAMP, - SEQUENCE (if not 0), UID, ORGANIZER and VOTER. - - -   - - -   - - -
- - The "PUBLISH" method in a "VPOLL" calendar component is - an unsolicited posting of an iCalendar object. Any CU may - add published components to their calendar. The - "Organizer" MUST be present in a published iCalendar - component. "Voters" MUST NOT be present. Its expected - usage is for encapsulating an arbitrary poll as an - iCalendar object. The "Organizer" may subsequently update - (with another "PUBLISH" method) or cancel (with a "CANCEL" method) a - previously published "VPOLL" calendar component. - - - This method type is an iCalendar object that conforms to the - following property constraints: - - - - Constraints for a METHOD:PUBLISH of a VPOLL - - - - - Component/Property - - - Presence - - - Comment - - - METHOD - - - 1 - - - MUST equal PUBLISH. - - -   - - -   - - -   - - - VPOLL - - - 1+ - - - -   DTSTAMP - - - 1 - - - -   DTSTART - - - 0 or 1 - - - If present defines the start of the poll. Otherwise the - poll starts when it is created and distributed. - - -   ORGANIZER - - - 1 - - - -   SUMMARY - - - 1 - - - Can be null. - - -   UID - - - 1 - - - -   SEQUENCE - - - 0 or 1 - - - MUST be present if value is greater than 0; MAY be present if 0. - - -   ACCEPT-RESPONSE - - - 0 or 1 - - - -   ATTACH - - - 0+ - - - -   CATEGORIES - - - 0+ - - - -   CLASS - - - 0 or 1 - - - -   COMMENT - - - 0+ - - - -   COMPLETED - - - 0 or 1 - - - -   CONTACT - - - 0 or 1 - - - -   CREATED - - - 0 or 1 - - - -   DESCRIPTION - - - 0 or 1 - - - Can be null. - - -   DTEND - - - 0 or 1 - - - If present, DURATION MUST NOT be present. - - -   DURATION - - - 0 or 1 - - - If present, DTEND MUST NOT be present. - - -   LAST-MODIFIED - - - 0 or 1 - - - -   POLL-ITEM-ID - - - 0 - - - -   POLL-MODE - - - 0 or 1 - - - -   POLL-PROPERTIES - - - 0 or 1 - - - -   PRIORITY - - - 0 or 1 - - - -   RELATED-TO - - - 0+ - - - -   RESOURCES - - - 0+ - - - -   STATUS - - - 0 or 1 - - - MAY be one of COMPLETED/CONFIRMED/CANCELLED. - - -   URL - - - 0 or 1 - - - -   IANA-PROPERTY - - - 0+ - - - -   X-PROPERTY - - - 0+ - - - -   VOTER - - - 0 - - - -   REQUEST-STATUS - - - 0 - - - -   - - -   - - -   - - -   VALARM - - - 0+ - - - -   - - -   - - -   - - -   VEVENT - - - 0+ - - - Depending upon the poll mode in effect there MAY be candidate - components included in the poll component. If voting has already - taken place, these components MUST include the VOTER property - to indicate each voters current response. - - -   - - -   - - -   - - -   VFREEBUSY - - - 0 - - - -   - - -   - - -   - - -   VJOURNAL - - - 0+ - - - Depending upon the poll mode in effect there MAY be candidate - components included in the poll component. If voting has already - taken place, these components MUST include the VOTER property - to indicate each voters current response. - - -   - - -   - - -   - - -   VTODO - - - 0+ - - - Depending upon the poll mode in effect there MAY be candidate - components included in the poll component. If voting has already - taken place, these components MUST include the VOTER property - to indicate each voters current response. - - -   - - -   - - -   - - - VTIMEZONE - - - 0+ - - - MUST be present if any date/time refers to a timezone. - - -   - - -   - - -   - - -   IANA-COMPONENT - - - 0+ - - - -   X-COMPONENT - - - 0+ - - - -
-
- - The "REQUEST" method in a "VPOLL" component provides the - following scheduling functions: - - - - Invite "Voters" to respond to the poll. - - - Change the items being voted upon. - - - Complete or confirm the poll. - - - Response to a "REFRESH" request. - - - Update the details of an existing vpoll. - - - Update the status of "Voters". - - - Forward a "VPOLL" to another uninvited CU. - - - For an existing "VPOLL" calendar component, delegate the - role of "Voter" to another CU. - - - For an existing "VPOLL" calendar component, change the role of - "Organizer" to another CU. - - - - - The "Organizer" originates the "REQUEST". The recipients of the - "REQUEST" method are the CUs voting in the poll, the "Voters". - "Voters" use the "REPLY" method to convey votes to the - "Organizer". - - - The "UID" and "SEQUENCE" properties are used to - distinguish the various uses of the "REQUEST" method. If - the "UID" property value in the "REQUEST" is not found on - the recipient's calendar, then the "REQUEST" is for a new - "VPOLL" calendar component. If the "UID" property value - is found on the recipient's calendar, then the "REQUEST" - is for an update, or a reconfirmation of - the "VPOLL" calendar component. - - - For the "REQUEST" method only a single iCalendar object is - permitted. - - - This method type is an iCalendar object that conforms to - the following property constraints: - - - - Constraints for a METHOD:REQUEST of a VPOLL - - - - - Component/Property - - - Presence - - - Comment - - - METHOD - - - 1 - - - MUST be REQUEST. - - -   - - -   - - -   - - - VPOLL - - - 1 - - - -   VOTER - - 1+ - - - -   DTSTAMP - - - 1 - - - -   DTSTART - - - 0 or 1 - - - If present defines the start of the poll. Otherwise the - poll starts when it is created and distributed. - - -   ORGANIZER - - - 1 - - - -   SEQUENCE - - - 0 or 1 - - - MUST be present if value is greater than 0; MAY be present if 0. - - -   SUMMARY - - - 1 - - - Can be null. - - -   UID - - - 1 - - - -   ACCEPT-RESPONSE - - - 0 or 1 - - - -   ATTACH - - - 0+ - - - -   CATEGORIES - - - 0+ - - - -   CLASS - - - 0 or 1 - - - -   COMMENT - - - 0+ - - - -   COMPLETED - - - 0 or 1 - - - -   CONTACT - - - 0+ - - - -   CREATED - - - 0 or 1 - - - -   DESCRIPTION - - - 0 or 1 - - - Can be null. - - -   DTEND - - - 0 or 1 - - - If present, DURATION MUST NOT be present. - - -   DURATION - - - 0 or 1 - - - If present, DTEND MUST NOT be present. - - -   GEO - - - 0 or 1 - - - -   LAST-MODIFIED - - - 0 or 1 - - - -   LOCATION - - - 0 or 1 - - - -   POLL-ITEM-ID - - - 0 - - - -   POLL-MODE - - - 0 or 1 - - - -   POLL-PROPERTIES - - - 0 or 1 - - - -   PRIORITY - - - 0 or 1 - - - -   RELATED-TO - - - 0+ - - - -   REQUEST-STATUS - - - 0 - - - -   RESOURCES - - - 0+ - - - -   STATUS - - - 0 or 1 - - - MAY be one of COMPLETED/CONFIRMED/CANCELLED. - - -   TRANSP - - - 0 or 1 - - - -   URL - - - 0 or 1 - - - -   IANA-PROPERTY - - - 0+ - - - -   X-PROPERTY - - - 0+ - - - -   - - -   - - -   - - -   VALARM - - - 0+ - - - -   - - -   - - -   - - - VTIMEZONE - - - 0+ - - - MUST be present if any date/time refers to a timezone. - - -   - - -   - - -   - - - IANA-COMPONENT - - - 0+ - - - - X-COMPONENT - - - 0+ - - - -   - - -   - - -   - - - VEVENT - - - 0+ - - - Depending upon the poll mode in effect there MAY be candidate - components included in the poll component. If voting has already - taken place, these components MUST include the VOTER property - to indicate each voters current response. - - -   - - -   - - -   - - - VFREEBUSY - - - 0 - - - -   - - -   - - -   - - - VJOURNAL - - - 0+ - - - Depending upon the poll mode in effect there MAY be candidate - components included in the poll component. If voting has already - taken place, these components MUST include the VOTER property - to indicate each voters current response. - - -   - - -   - - -   - - - VTODO - - - 0+ - - - Depending upon the poll mode in effect there MAY be candidate - components included in the poll component. If voting has already - taken place, these components MUST include the VOTER property - to indicate each voters current response. - - -
- - The "REQUEST" method may be used to reschedule a poll, that is - force a revote. A rescheduled poll involves a change to the - existing poll in terms of its time the components being - voted on may have changed. If - the recipient CUA of a "REQUEST" method finds that the - "UID" property value already exists on the calendar but - that the "SEQUENCE" (or "DTSTAMP") property value in the - "REQUEST" method is greater than the value for the - existing poll, then the "REQUEST" method describes a - rescheduling of the poll. - -
-
- - The "REQUEST" method may be used to update or reconfirm - a poll. An update to an existing poll does not - involve changes to the time or candidates, and - might not involve a change to the location or - description for the poll. If the recipient CUA of a - "REQUEST" method finds that the "UID" property value - already exists on the calendar and that the "SEQUENCE" - property value in the "REQUEST" is the same as the value - for the existing poll, then the "REQUEST" method - describes an update of the poll details, but not a - rescheduling of the POLL. - - - The update "REQUEST" method is the appropriate response to a - "REFRESH" method sent from a "Voter" to the "Organizer" of a poll. - - - The "Organizer" of a poll may also send unsolicited "REQUEST" - methods. The unsolicited "REQUEST" methods may be used to update - the details of the poll without rescheduling it, to update the - "RESPONSE" parameter of "Voters", or to reconfirm the poll. - -
-
- - The "REQUEST" method may be used to confirm - a poll, that is announce the winner in BASIC mode. - The STATUS MUST be set to CONFIRMED and for BASIC - mode a VPOLL POLL-WINNER property must be provided with - the poll-id of the winning component. - -
-
- - The "REQUEST" method may be used to close a poll, - that is indicate voting is completed. - The STATUS MUST be set to COMPLETED. - -
-
- - Some calendar and scheduling systems allow "Voters" - to delegate the vote to another - "Calendar User". iTIP supports this concept using the - following workflow. Any "Voter" may delegate their - right to vote in a poll to another - CU. The implication is that the delegate participates in - lieu of the original "Voter", NOT in addition to the - "Voter". The delegator MUST notify the "Organizer" of - this action using the steps outlined - below. Implementations may support or restrict - delegation as they see fit. For instance, some - implementations may restrict a delegate from delegating - a "REQUEST" to another CU. - - - The "Delegator" of a poll forwards the existing "REQUEST" to - the "Delegate". The "REQUEST" method MUST include a "Voter" - property with the calendar address of the "Delegate". The - "Delegator" MUST also send a "REPLY" method to the "Organizer" - with the "Delegator's" "Voter" property "DELEGATED-TO" parameter - set to the calendar address of the "Delegate". Also, a new - "Voter" property for the "Delegate" MUST be included and must - specify the calendar user address set in the "DELEGATED-TO" - parameter, as above. - - - In response to the request, the "Delegate" MUST send a "REPLY" - method to the "Organizer", and optionally to the "Delegator". - The "REPLY" method SHOULD include the "Voter" property with the - "DELEGATED-FROM" parameter value of the "Delegator's" calendar address. - - - The "Delegator" may continue to receive updates to the - poll even though they will not be attending. This is - accomplished by the "Delegator" setting their "role" - attribute to "NON-PARTICIPANT" in the "REPLY" to the - "Organizer". - -
-
- - The situation may arise where the "Organizer" of a - "VPOLL" is no longer able to perform the "Organizer" role - and abdicates without passing on the "Organizer" role to - someone else. When this occurs, the "Voters" of the - "VPOLL" may use out-of-band mechanisms to communicate the - situation and agree upon a new "Organizer". The new - "Organizer" should then send out a new "REQUEST" with a - modified version of the "VPOLL" in which the "SEQUENCE" - number has been incremented and the "ORGANIZER" property - has been changed to the new "Organizer". - -
-
- - There are a number of scenarios that support the need - for a "Calendar User" to act on behalf of the "Organizer" - without explicit role changing. This might be the case - if the CU designated as "Organizer" is sick or unable - to perform duties associated with that function. In - these cases, iTIP supports the notion of one CU acting on - behalf of another. Using the "SENT-BY" parameter, a - "Calendar User" could send an updated "VPOLL" "REQUEST". In - the case where one CU sends on behalf of another CU, the - "Voter" responses are still directed back towards the - CU designated as "Organizer". - -
-
- - A "Voter" invited to a "VPOLL" calendar component - may send the "VPOLL" calendar component to another new - CU not previously associated with the "VPOLL" calendar - component. The current "Voter" participating in the - "VPOLL" calendar component does this by forwarding the - original "REQUEST" method to the new CU. The new CU can - send a "REPLY" to the "Organizer" of the "VPOLL" - calendar component. The reply contains a "Voter" - property for the new CU. - - - The "Organizer" ultimately decides whether or not the - new CU becomes part of the poll and is not obligated to - do anything with a "REPLY" from a new (uninvited) CU. If - the "Organizer" does not want the new CU to be part of - the poll, the new "Voter" property is not added to - the "VPOLL" calendar component. The "Organizer" MAY - send the CU a "CANCEL" message to indicate that they - will not be added to the poll. If the "Organizer" - decides to add the new CU, the new "Voter" property - is added to the "VPOLL" calendar - component. Furthermore, the "Organizer" is free to - change any "Voter" property parameter from the values - supplied by the new CU to something the "Organizer" - considers appropriate. The "Organizer" SHOULD send the - new CU a "REQUEST" message to inform them that they have - been added. - - - When forwarding a "REQUEST" to another CU, the forwarding "Voter" - MUST NOT make changes to the original message. - -
-
- - The "Organizer" of an poll may also request updated status from - one or more "Voters". The "Organizer" sends a "REQUEST" method - to the "Voter" and sets the "VOTER;RSVP=TRUE" property parameter. - The "SEQUENCE" property for the poll is not changed from its - previous value. A recipient will determine that the only change - in the "REQUEST" is that their "RSVP" property parameter indicates - a request for updated status. The recipient SHOULD respond with - a "REPLY" method indicating their current vote with respect to - the "REQUEST". - -
-
-
- - The "REPLY" method in a "VPOLL" calendar component is used to - respond (e.g., accept or decline) to a "REQUEST" or to reply to a - delegation "REQUEST". When used to provide a delegation response, - the "Delegator" SHOULD include the calendar address of the "Delegate" - on the "DELEGATED-TO" property parameter of the "Delegator's" - "Voter" property. The "Delegate" SHOULD include the calendar - address of the "Delegator" on the "DELEGATED-FROM" property - parameter of the "Delegate's" "Voter" property. - - - The "REPLY" method is also used when processing of a - "REQUEST" fails. Depending on the value of the - "REQUEST-STATUS" property, no action may have - been performed. - - - The "Organizer" of a poll may receive the "REPLY" method - from a CU not in the original "REQUEST". For example, a - "REPLY" may be received from a "Delegate" to a poll. In - addition, the "REPLY" method may be received from an - unknown CU (a "Party Crasher"). This uninvited "Voter" - may be accepted, or the "Organizer" may cancel the poll - for the uninvited "Voter" by sending a "CANCEL" method - to the uninvited "Voter". - - - A "Voter" MAY include a message to the "Organizer" using the - "COMMENT" property. For example, if the user indicates a low interest - and wants to let the "Organizer" know why, the reason - can be expressed in the "COMMENT" property value. - - - The "Organizer" may also receive a "REPLY" from one CU on behalf - of another. Like the scenario enumerated above for the "Organizer", - "Voters" may have another CU respond on their behalf. This is done - using the "SENT-BY" parameter. - - - The optional properties listed in the table below (those - listed as "0+" or "0 or 1") MUST NOT be changed from those - of the original request. (But see comments on VFREEBUSY and - VAVAILABILITY) - - - This method type is an iCalendar object that conforms to - the following property constraints: - - - - Constraints for a METHOD:REPLY of a VPOLL - - - - - Component/Property - - - Presence - - - Comment - - - METHOD - - - 1 - - - MUST be REPLY. - - -   - - -   - - -   - - - VPOLL - - - 1+ - - - All components MUST have the same UID. - - -   VOTER - - - 1 - - - MUST be the address of the Voter replying. - - -   DTSTAMP - - - 1 - - - -   ORGANIZER - - - 1 - - - -   UID - - - 1 - - - MUST be the UID of the original REQUEST. - - -   SEQUENCE - - - 0 or 1 - - - If non-zero, MUST be the sequence number of the original - REQUEST. MAY be present if 0. - - -   ACCEPT-RESPONSE - - - 0 or 1 - - - -   ATTACH - - - 0+ - - - -   CATEGORIES - - - 0+ - - - -   CLASS - - - 0 or 1 - - - -   COMMENT - - - 0+ - - - -   COMPLETED - - - 0 or 1 - - - -   CONTACT - - - 0+ - - - -   CREATED - - - 0 or 1 - - - -   DESCRIPTION - - - 0 or 1 - - - -   DTEND - - - 0 or 1 - - - If present, DURATION MUST NOT be present. - - -   DTSTART - - - 0 or 1 - - - -   DURATION - - - 0 or 1 - - - If present, DTEND MUST NOT be present. - - -   GEO - - - 0 or 1 - - - -   LAST-MODIFIED - - - 0 or 1 - - - -   LOCATION - - - 0 or 1 - - - -   POLL-ITEM-ID - - - 1+ - - - One per item being voted on. - - -   POLL-MODE - - - 0 - - - -   POLL-PROPERTIES - - - 0 - - - -   PRIORITY - - - 0 or 1 - - - -   RELATED-TO - - - 0+ - - - -   RESOURCES - - - 0+ - - - -   REQUEST-STATUS - - - 0+ - - - -   STATUS - - - 0 or 1 - - - -   SUMMARY - - - 0 or 1 - - - -   TRANSP - - - 0 or 1 - - - -   URL - - - 0 or 1 - - - -   IANA-PROPERTY - - - 0+ - - - -   X-PROPERTY - - - 0+ - - - -   - - -   - - -   - - -   VALARM - - - 0 - - - -   - - -   - - -   - - - VTIMEZONE - - - 0 or 1 - - - MUST be present if any date/time refers to a timezone. - - -   - - -   - - -   - - - IANA-COMPONENT - - - 0+ - - - - X-COMPONENT - - - 0+ - - - -   - - -   - - -   - - - VEVENT - - - 0 - - - -   - - -   - - -   - - - VFREEBUSY - - - 0 or 1 - - - A voter may respond with a VFREEBUSY component indicating - that the ORGANIZER may select some other time which is - not marked as busy. - - -   - - -   - - -   - - - VAVAILABILITY - - - 0 - - - A voter may respond with a VAVAILABILITY component indicating - that the ORGANIZER may select some other time which is - shown as available. - - -   - - -   - - -   - - - VJOURNAL - - - 0 - - - -   - - -   - - -   - - - VTODO - - - 0 - - - -
-
- - The "CANCEL" method in a "VPOLL" calendar component is - used to send a cancellation notice of an existing poll - request to the affected "Voters". The message is sent - by the "Organizer" of the poll. - - - The "Organizer" MUST send a "CANCEL" message to each - "Voter" affected by the cancellation. This can be done - using a single "CANCEL" message for all "Voters" or by using - multiple messages with different subsets of the affected - "Voters" in each. - - - When a "VPOLL" is cancelled, the "SEQUENCE" property - value MUST be incremented as described in - . - - - Once a CANCEL message has been sent to all voters no further - voting may take place. The poll is considered closed. - - - This method type is an iCalendar object that conforms to the - following property constraints: - - - - Constraints for a METHOD:CANCEL of a VPOLL - - - - - Component/Property - - - Presence - - - Comment - - - METHOD - - - 1 - - - MUST be CANCEL. - - -   - - -   - - -   - - - VPOLL - - - 1+ - - - All must have the same UID. - - -   VOTER - - - 0+ - - - MUST include some or all Voters being removed from the poll. - MUST include some or all Voters if the entire poll is cancelled. - - -   UID - - - 1 - - - MUST be the UID of the original REQUEST. - - -   DTSTAMP - - - 1 - - - -   ORGANIZER - - - 1 - - - -   SEQUENCE - - - 1 - - - -   ATTACH - - - 0+ - - - -   ACCEPT-RESPONSE - - - 0 - - - -   COMMENT - - - 0+ - - - -   COMPLETED - - - 0 or 1 - - - -   CATEGORIES - - - 0+ - - - -   CLASS - - - 0 or 1 - - - -   CONTACT - - - 0+ - - - -   CREATED - - - 0 or 1 - - - -   DESCRIPTION - - - 0 or 1 - - - -   DTEND - - - 0 or 1 - - - If present, DURATION MUST NOT be present. - - -   DTSTART - - - 0 or 1 - - - -   DURATION - - - 0 or 1 - - - If present, DTEND MUST NOT be present. - - -   GEO - - - 0 or 1 - - - -   LAST-MODIFIED - - - 0 or 1 - - - -   LOCATION - - - 0 or 1 - - - -   POLL-ITEM-ID - - - 0 - - - -   POLL-MODE - - - 0 - - - -   POLL-PROPERTIES - - - 0 - - - -   PRIORITY - - - 0 or 1 - - - -   RELATED-TO - - - 0+ - - - -   RESOURCES - - - 0+ - - - -   STATUS - - - 0 or 1 - - - MUST be set to CANCELLED to cancel the entire event. If - uninviting specific Attendees, then MUST NOT be - included. - - -   SUMMARY - - - 0 or 1 - - - -   TRANSP - - - 0 or 1 - - - -   URL - - - 0 or 1 - - - -   IANA-PROPERTY - - - 0+ - - - -   X-PROPERTY - - - 0+ - - - -   REQUEST-STATUS - - - 0 - - - -   - - -   - - -   - - -   VALARM - - - 0 - - - -   - - -   - - -   - - - VTIMEZONE - - - 0+ - - - MUST be present if any date/time refers to a timezone. - - -   - - -   - - -   - - - IANA-COMPONENT - - - 0+ - - - - X-COMPONENT - - - 0+ - - - -   - - -   - - -   - - - VTODO - - - 0 - - - -   - - -   - - -   - - - VJOURNAL - - - 0 - - - -   - - -   - - -   - - - VEVENT - - - 0 - - - -   - - -   - - -   - - - VFREEBUSY - - - 0 - - - -
-
- - The "REFRESH" method in a "VPOLL" calendar component is used by - "Voters" of an existing event to request an updated description - from the poll "Organizer". The "REFRESH" method must specify the - "UID" property of the poll to update. The "Organizer" responds - with the latest description and version of the poll. - - - This method type is an iCalendar object that conforms to the following property constraints: - - - - Constraints for a METHOD:REFRESH of a VPOLL - - - - - Component/Property - - - Presence - - - Comment - - - METHOD - - - 1 - - - MUST be REFRESH. - - -   - - -   - - -   - - - VPOLL - - - 1 - - - -   VOTER - - - 1 - - - MUST be the address of requester. - - -   DTSTAMP - - - 1 - - - -   ORGANIZER - - - 1 - - - -   UID - - - 1 - - - MUST be the UID associated with original REQUEST. - - -   COMMENT - - - 0+ - - - -   COMPLETED - - - 0 - - - -   IANA-PROPERTY - - - 0+ - - - -   X-PROPERTY - - - 0+ - - - -   ACCEPT-RESPONSE - - - 0 - - - -   ATTACH - - - 0 - - - -   CATEGORIES - - - 0 - - - -   CLASS - - - 0 - - - -   CONTACT - - - 0 - - - -   CREATED - - - 0 - - - -   DESCRIPTION - - - 0 - - - -   DTEND - - - 0 - - - -   DTSTART - - - 0 - - - -   DURATION - - - 0 - - - -   GEO - - - 0 - - - -   LAST-MODIFIED - - - 0 - - - -   LOCATION - - - 0 - - - -   POLL-ITEM-ID - - - 0 - - - -   POLL-MODE - - - 0 - - - -   POLL-PROPERTIES - - - 0 - - - -   PRIORITY - - - 0 - - - -   RELATED-TO - - - 0 - - - -   REQUEST-STATUS - - - 0 - - - -   RESOURCES - - - 0 - - - -   SEQUENCE - - - 0 - - - -   STATUS - - - 0 - - - -   SUMMARY - - - 0 - - - -   URL - - - 0 - - - -   - - -   - - -   - - -   VALARM - - - 0 - - - -   - - -   - - -   - - - VTIMEZONE - - - 0+ - - - -   - - -   - - -   - - - IANA-COMPONENT - - - 0+ - - - - X-COMPONENT - - - 0+ - - - -   - - -   - - -   - - - VTODO - - - 0 - - - -   - - -   - - -   - - - VJOURNAL - - - 0 - - - -   - - -   - - -   - - - VEVENT - - - 0 - - - -   - - -   - - -   - - - VFREEBUSY - - - 0 - - - -
-
- - The "POLLSTATUS" method in a "VPOLL" calendar component is - used to inform recipients of the current status of the poll in a - compact manner. - The "Organizer" MUST be present in the confirmed poll - component. "Voters" MUST NOT be present. The selected component(s) - according to the poll mode MUST also be present in the poll - component. Clients receiving this message may store the - confirmed items in their calendars. - - - This method type is an iCalendar object that conforms to the - following property constraints: - - - - Constraints for a METHOD:POLLSTATUS of a VPOLL - - - - - Component/Property - - - Presence - - - Comment - - - METHOD - - - 1 - - - MUST equal POLLSTATUS. - - -   - - -   - - -   - - - VPOLL - - - 1+ - - - -   COMPLETED - - - 0 or 1 - - - Only present for a completed poll - - -   DTSTAMP - - - 1 - - - -   DTSTART - - - 0 or 1 - - - -   ORGANIZER - - - 1 - - - -   SUMMARY - - - 1 - - - Can be null. - - -   VOTER - - - 1+ - - - -   UID - - - 1 - - - -   SEQUENCE - - - 0 or 1 - - - MUST be present if value is greater than 0; MAY be present if 0. - - -   ACCEPT-RESPONSE - - - 0 - - - -   ATTACH - - - 0 - - - -   CATEGORIES - - - 0 - - - -   CLASS - - - 0 - - - -   COMMENT - - - 0+ - - - -   CONTACT - - - 0 - - - -   CREATED - - - 0 or 1 - - - -   DESCRIPTION - - - 0 or 1 - - - Can be null. - - -   DTEND - - - 0 or 1 - - - If present, DURATION MUST NOT be present. - - -   DURATION - - - 0 or 1 - - - If present, DTEND MUST NOT be present. - - -   LAST-MODIFIED - - - 0 or 1 - - - -   POLL-ITEM-ID - - - 0 - - - -   POLL-MODE - - - 0 or 1 - - - -   POLL-PROPERTIES - - - 0 - - - -   PRIORITY - - - 0 or 1 - - - -   RELATED-TO - - - 0+ - - - -   RESOURCES - - - 0+ - - - -   STATUS - - - 0 or 1 - - - MAY be one of TENTATIVE/CONFIRMED/CANCELLED. - - -   URL - - - 0 or 1 - - - -   IANA-PROPERTY - - - 0+ - - - -   X-PROPERTY - - - 0+ - - - -   REQUEST-STATUS - - - 0 - - - -   - - -   - - -   - - -   VALARM - - - 0+ - - - -   - - -   - - -   - - - VEVENT - - - 0+ - - - All candidate components MUST be present but in a reduced form - sufficient to provide the voting status. - - -   - - -   - - -   - - - VFREEBUSY - - - 0 - - - -   - - -   - - -   - - - VJOURNAL - - - 0+ - - - All candidate components MUST be present but in a reduced form - sufficient to provide the voting status. - - -   - - -   - - -   - - - VTODO - - - 0+ - - - All candidate components MUST be present but in a reduced form - sufficient to provide the voting status. - - -   - - -   - - -   - - - VTIMEZONE - - - 0+ - - - MUST be present if any date/time refers to a timezone. - - -   - - -   - - -   - - - IANA-COMPONENT - - - 0+ - - - - X-COMPONENT - - - 0+ - - - -
-
-
-
- -
- - This specification extends in that it defines - a new component and new iCalendar properties to be supported and requires extra - definitions related to time-ranges and reports. - - - - Additionally, it extends as it a - VPOLL component is a schedulable entity. - - - -
- - This section defines new CalDAV properties for calendar collections. - - -
- - - - supported-vpoll-component-sets - - - urn:ietf:params:xml:ns:caldav - - - Specifies the calendar component types (e.g., VEVENT, - VTODO, etc.) and combination of types that may be - included in a VPOLL component. - - - - This property MAY be defined on any calendar - collection. If defined, it MUST be protected and SHOULD NOT be - returned by a PROPFIND DAV:allprop request (as defined in Section - 12.14.1 of ). - - - - The CALDAV:supported-vpoll-component-sets property is - used to specify restrictions on the calendar component - types that VPOLL components may contain in a calendar collection. - - - - It also specifies the combination of allowed component - types. - - - - Any attempt by the client to store VPOLL components with - component types or combinations of types not listed in - this property, if it exists, MUST - result in an error, with the CALDAV:supported-vpoll-component-sets - precondition - being violated. Since this - property is protected, it cannot be changed by clients using a - PROPPATCH request. However, clients can initialize the value of - this property when creating a new calendar collection with - MKCALENDAR. In the absence of - this property, the server MUST accept all component types, and the - client can assume that all component types are accepted. - - - -
- - - - -]]> -
-
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - -]]> -
-
-
-
-
- -
- - - - vpoll-max-items - - - urn:ietf:params:xml:ns:caldav - - - Provides a numeric value indicating the maximum number of - items that may be contained in any instance of a VPOLL calendar - object resource stored in the calendar collection. - - - - This property MAY be defined on any calendar - collection. If defined, it MUST be protected and SHOULD NOT be - returned by a PROPFIND DAV:allprop request (as defined in Section - 12.14.1 of ). - - - - The CALDAV:vpoll-max-items is used to - specify a numeric value that indicates the maximum number of - iCalendar components in any one instance of a VPOLL calendar - object resource stored in a calendar collection. Any attempt to - store a calendar object resource with more components per - instance than this value MUST result in an error, with the CALDAV: - vpoll-max-items precondition being - violated. In the absence of this property, the client can assume - that the server can handle any number of items in a VPOLL - calendar component. - - - -
- - PCDATA value: a numeric value (integer greater than zero) - -]]> -
-
- - -
- 25 - -]]> -
-
-
-
-
- -
- - - - vpoll-max-active - - - urn:ietf:params:xml:ns:caldav - - - Provides a numeric value indicating the maximum number of - active vpolls at any one time. - - - - This property MAY be defined on any calendar - collection. If defined, it MUST be protected and SHOULD NOT be - returned by a PROPFIND DAV:allprop request (as defined in Section - 12.14.1 of ). - - - - The CALDAV:vpoll-max-active is used to - specify a numeric value that indicates the maximum number of - active VPOLLs at any one time. Any attempt to store a new active - VPOLL calendar object resource which results in exceeding this limit - MUST result in an error, with the CALDAV: - vpoll-max-active precondition being - violated. In the absence of this property, the client can assume - that the server can handle any number of active VPOLLs. - - - -
- - PCDATA value: a numeric value (integer greater than zero) - -]]> -
-
- - -
- 25 - -]]> -
-
-
-
-
- -
- - - - vpoll-max-voters - - - urn:ietf:params:xml:ns:caldav - - - Provides a numeric value indicating the maximum number of - voters for any instance of a VPOLL calendar - object resource stored in the calendar collection. - - - - This property MAY be defined on any calendar - collection. If defined, it MUST be protected and SHOULD NOT be - returned by a PROPFIND DAV:allprop request (as defined in Section - 12.14.1 of ). - - - - The CALDAV:vpoll-max-voters is used to - specify a numeric value that indicates the maximum number of - VOTER properties for any one instance of a VPOLL calendar - object resource stored in a calendar collection. Any attempt to - store a calendar object resource with more VOTER properties per - instance than this value MUST result in an error, with the CALDAV: - vpoll-max-voters precondition being - violated. In the absence of this property, the client can assume - that the server can handle any number of voters in a VPOLL - calendar component. - - - -
- - PCDATA value: a numeric value (integer greater than zero) - -]]> -
-
- - -
- 25 - -]]> -
-
-
-
-
- -
- - - vpoll-supported-mode poll options - e.g "vpoll-basic" - - - -
- -
- - This specification extends . - - - Each section of Appendix A "Scheduling Privileges Summary" - is extended to include VPOLL. - - - Any reference to the ATTENDEE property should be read to - include the VOTER property. That is, for scheduling - purposes the VOTER property is handled in exactly the same - manner as the ATTENDEE property. - -
-
- -
- - This specification creates additional Preconditions for PUT, COPY, - and MOVE methods. These preconditions apply when a PUT operation of - a VPOLL calendar object resource into a calendar collection occurs, or when - a COPY or MOVE operation of a calendar object resource into a - calendar collection occurs, or when a COPY or MOVE operation occurs - on a calendar collection. - - - - The new preconditions are: - - - The VPOLL resource submitted in the PUT request, or targeted by a - COPY or MOVE request, MUST contain a type or combination - of calendar component that is supported in the targeted - calendar collection; - - - - The VPOLL resource submitted in the PUT request, or targeted by a - COPY or MOVE request, MUST have a number of sub-components - (excluding VTIMEZONE) - less than or equal to the value of the CALDAV:vpoll-max-items - property value on the - calendar collection where the resource will be stored; - - - - The PUT request, or COPY or MOVE request, MUST not result in the - number of active VPOLLs being greater than the value of the - CALDAV:vpoll-max-active - property value on the - calendar collection where the resource will be stored; - - - - The VPOLL resource submitted in the PUT request, or targeted by a - COPY or MOVE request, MUST have a number of VOTER properties - less than or equal to the value of the CALDAV:vpoll-max-voters - property value on the - calendar collection where the resource will be stored; - - - -
- -
- - This allows the retrieval of VPOLLs and their included components. - The query specification allows queries to be directed at the contained - sub-components. For VPOLL queries this feature is disallowed. - Time-range queries can only target the vpoll component itself. - - -
- - In this example, the client requests the server to return specific - components and properties of the VPOLL components that overlap the - time range from December 4, 2012, at 00:00:00 A.M. UTC to December 5, - 2012, at 00:00:00 A.M. UTC. In addition, the DAV:getetag property is - also requested and returned as part of the response. - Note that due to the CALDAV: - calendar-data element restrictions, the DTSTAMP property in VPOLL - components has not been returned, and the only property returned in - the VCALENDAR object is VERSION. - -
- > Request << - - REPORT /cyrus/work/ HTTP/1.1 - Host: cal.example.com - Depth: 1 - Content-Type: application/xml; charset="utf-8" - Content-Length: xxxx - - - - - - - - - - - - - - - - - - - - - - - - - - - - >> Response << - - HTTP/1.1 207 Multi-Status - Date: Sat, 11 Nov 2012 09:32:12 GMT - Content-Type: application/xml; charset="utf-8" - Content-Length: xxxx - - - - - http://cal.example.com/cyrus/work/poll2.ics - - - "fffff-abcd2" - BEGIN:VCALENDAR - VERSION:2.0 - BEGIN:VPOLL - DTSTART;TZID=US/Eastern:20121202T120000 - DURATION:PT4D - SUMMARY:Poll #2 - UID:00959BC664CA650E933C892C@example.com - END:VPOLL - END:VCALENDAR - - - HTTP/1.1 200 OK - - - - http://cal.example.com/cyrus/work/poll3.ics - - - "fffff-abcd3" - BEGIN:VCALENDAR - VERSION:2.0 - PRODID:-//Example Corp.//CalDAV Client//EN - BEGIN:VPOLL - DTSTART;TZID=US/Eastern:20121204T100000 - DURATION:PT4D - SUMMARY:Poll #3 - UID:DC6C50A017428C5216A2F1CD@example.com - END:VPOLL - END:VCALENDAR - - - HTTP/1.1 200 OK - - - - -]]> -
-
-
-
- -
- - Section 9.9 "CALDAV:time-range XML Element" in - describes how to specify time ranges to limit the set of calendar - components returned by the server. This specification extends - to describe the meaning of time ranges for - VPOLL - - - - A VPOLL component is said to overlap a given time range if the - condition for the corresponding component state specified in the - table below is satisfied. The conditions depend on the presence - of the DTSTART, DURATION, DTEND, COMPLETED and CREATED properties - in the VPOLL component. Note that, as specified above, the - DTEND value MUST be a DATE-TIME value equal to or after the DTSTART - value if specified. -
- DTSTART) OR | - | | | | | | (end >= DTSTART+DURATION)) | - +---+---+---+---+---+-----------------------------------------------+ - | Y | N | Y | * | * | ((start < DTEND) OR (start <= DTSTART)) | - | | | | | | AND | - | | | | | | ((end > DTSTART) OR (end >= DTEND)) | - +---+---+---+---+---+-----------------------------------------------+ - | Y | N | N | * | * | (start <= DTSTART) AND (end > DTSTART) | - +---+---+---+---+---+-----------------------------------------------+ - | N | N | Y | * | * | (start < DTEND) AND (end >= DTEND) | - +---+---+---+---+---+-----------------------------------------------+ - | N | N | N | Y | Y | ((start <= CREATED) OR (start <= COMPLETED))| - | | | | | | AND | - | | | | | | ((end >= CREATED) OR (end >= COMPLETED))| - +---+---+---+---+---+-----------------------------------------------+ - | N | N | N | Y | N | (start <= COMPLETED) AND (end >= COMPLETED) | - +---+---+---+---+---+-----------------------------------------------+ - | N | N | N | N | Y | (end > CREATED) | - +---+---+---+---+---+-----------------------------------------------+ - | N | N | N | N | N | TRUE | - +---+---+---+---+---+-----------------------------------------------+ - ]]> -
-
-
-
- -
- - Applications using these property need to be aware of the risks - entailed in using the URIs provided as values. See [RFC3986] for - a discussion of the security considerations relating to URIs. - -
- -
-
- - This document defines the following new iCalendar property parameters - to be added to the registry defined in Section 8.2.4 of : - - - Property Parameter - Status - Reference - - REQUIRED - Current - RFCXXXX, - - STAY-INFORMED - Current - RFCXXXX, - -
- -
- - This document defines the following new iCalendar properties to be - added to the registry defined in Section 8.2.3 of : - - - Property - Status - Reference - - ACCEPT-RESPONSE - Current - RFCXXXX, - - POLL-ITEM-ID - Current - RFCXXXX, - - POLL-MODE - Current - RFCXXXX, - - POLL-PROPERTIES - Current - RFCXXXX, - - POLL-WINNER - Current - RFCXXXX, - - RESPONSE - Current - RFCXXXX, - - VOTER - Current - RFCXXXX, - -
- -
- - A poll mode is defined by completing the following template. - - - The name of the poll mode. - - - - The purpose of the poll mode. Give a short but clear - description. - - - - A reference to the RFC in which the poll mode is defined - - - -
- -
- - This document defines the following registered poll modes. - - - Poll mode name - Purpose - Reference - - BASIC - - To provide simple voting for a single outcome from a number of - candidates. - - Current - - - -
-
- -
- - The authors would like to thank the members of the Calendaring and - Scheduling Consortium Freebusy technical committee and the following - individuals for contributing their ideas and support: - - - ... - - - The authors would also like to thank the Calendaring and - Scheduling Consortium for advice with this specification. - -
-
- - - - - - - - - - &RFC2119; - &RFC2434; - &RFC2518; - &RFC3688; - &RFC3986; - &RFC4589; - &RFC4791; - &RFC5545; - &RFC5546; - &RFC6047; - &RFC6638; - &W3C.REC-xml-20060816; - &I-D.daboo-icalendar-extensions; - - -
- - - - Need to do a section on what Notifications to support. - - A. VPOLL is about to end and you haven't voted on it yet. - - Instead reuse VALARMS to notify the user? - - - - What to do with changes to STATUS:CONFIRMED? Allow them or not? - What do to that poll had a winning event or todo. - - Stress VPOLL UID MUST be unique - - Changing status back from CONFIRMED MUST adjust status of - any events booked as a result of confirmation. - - MUST winning event be cancelled for POLL-MODE basic? No - - VOTER has indicated now unable to attend - want to revote - - - - Can a VOTER vote after completion? May be unable to attend - and wants to indicate. Requires retention of VPOLL - - retention period - - Removed status - - - - Can a user create a poll with scheduled events where that user's - isn't the organizer of the poll? So is there a requirement that the - account that poll is on is able to create each one of the resources - in the poll? i.e. I can't create a poll with a set of events where - I am just the attendee of the events. Are there any other - restrictions for components in a VPOLL? - - Add to security consideration - - - - When voting on existing event - winning properties ONLY - are merged in to the real event. - - - - - a. Can't change POLL-MODE - - - - - chair, NON-PARTICIPANT etc - - - - On confirm - send itip if appropriate (PUBLISH) - - all non-participating - shared - feeds - - Organizer can specify where result is? - - Confirm can specify that itip is sent - ITIP / NONE - - parameter ? on POLL-WINNER - - - -
- - - BEGIN:VCALENDAR - VERSION:2.0 - PRODID:-//BedeworkCaldavTest//BedeworkCaldavTest - METHOD: REPLY - BEGIN:VPOLL - ORGANIZER:mailto:douglm@mysite.edu - VOTER:mailto:eric@example.com - UID:sched01-1234567890 - DTSTAMP:20120101T010000Z - SEQUENCE:0 - SUMMARY:What to do this week - BEGIN:VFREEBUSY - ....... - END:VFREEBUSY - END:VPOLL - END:VCALENDAR - -
-
-
-
-
- -
- - V03: 2014-10-28 MD - - - Add VVOTER and VOTE components. - - - Add RESPONSE property. - - - Remove RESPONSE parameter from VOTER. - - - - - - V03: 2014-05-12 MD - - - Add reply-url property and required parameter. - - - Fix ACCEPT-RESPONSE definition. - - - - - - V02: 2014-05-12 MD - - - Typos fixed, clarifications made. - - - Removed spurious COMMENT param. Switched some to PUBLIC-COMMENT - - - Changed STAY-INFORMED to remove boolean value type and - state explicit TRUE/FALSE values. - - - iTip: Allow VPOLL DTSTART to be optional and allow VAVAILABILITY - as subcomponent - - - iTip: fix broken table cells - - - Add POLL-PROPERTIES, POLL-WINNER to 5545 extensions table - - - Added Caldav scheduling section - - - - - - V01: 2013-08-07 MD - - - Removed method CONFIRM - - - Removed pollitemid from VPOLL abnf. Added text for pollwinner - - - Added POLL-WINNER and verbiage - - - Added STATUS values - - - Added RELTYPE=POLL - - - Added supported-vpoll-component-sets - - - Added CalDAV related parameters to VOTER - - - Removed bad CalDAV query example. State that queries cannot - target the sub-components. - - - - - - 2012-11-02 MD Initial version - -
-
-