diff --git a/vpoll/draft-york-vpoll.html.pdf b/vpoll/draft-york-vpoll.html.pdf
deleted file mode 100644
index 532f1c9..0000000
Binary files a/vpoll/draft-york-vpoll.html.pdf and /dev/null differ
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
-
-
-
-