Import upstream v0.16.22, stripped
Upstream commit: 474dd0229cb20cf513036619781ed97bd8073c3f Enterprise-only files removed or emptied: 63 Enterprise-only snippets removed: 117 in 50 files Dangling module declarations removed: 5 Cargo edits turning enterprise off: 14 Verification: clean Enterprise feature gates left for rebuilt features: 19 in 18 files Produced by tools/fork/strip.py. The full report is in docs/fork/strip-reports/ on main.
This commit is contained in:
@@ -0,0 +1,276 @@
|
||||
# Send initial request
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Google Inc//Google Calendar 70.9054//EN
|
||||
VERSION:2.0
|
||||
CALSCALE:GREGORIAN
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Los_Angeles
|
||||
X-LIC-LOCATION:America/Los_Angeles
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0800
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:PDT
|
||||
DTSTART:19700308T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0800
|
||||
TZNAME:PST
|
||||
DTSTART:19701101T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
BEGIN:VEVENT
|
||||
DTSTART;TZID=America/Los_Angeles:20250619T060000
|
||||
DTEND;TZID=America/Los_Angeles:20250619T064500
|
||||
RRULE:FREQ=WEEKLY;WKST=SU;COUNT=2;BYDAY=TH
|
||||
DTSTAMP:20250616T182403Z
|
||||
ORGANIZER;CN=John Doe:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=
|
||||
TRUE;[email protected];X-NUM-GUESTS=0:mailto:[email protected]
|
||||
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;RSVP=TRUE
|
||||
;CN=John Doe;X-NUM-GUESTS=0:mailto:[email protected]
|
||||
X-MICROSOFT-CDO-OWNERAPPTID:299828133
|
||||
CREATED:20250616T182358Z
|
||||
LAST-MODIFIED:20250616T182358Z
|
||||
LOCATION:
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Meet me maybe
|
||||
DESCRIPTION:This is the event description
|
||||
TRANSP:OPAQUE
|
||||
BEGIN:VALARM
|
||||
ACTION:DISPLAY
|
||||
DESCRIPTION:This is an event reminder
|
||||
TRIGGER:-P0DT0H10M0S
|
||||
END:VALARM
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: invite
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: Some("John Doe"), is_organizer: true }, ItipParticipant { email: "[email protected]", name: Some("[email protected]"), is_organizer: false }])
|
||||
summary.description: Text("This is the event description")
|
||||
summary.dtstart: Time(ItipTime { start: 1750338000, tz_id: 148 })
|
||||
summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Weekly, until: None, count: Some(2), interval: None, bysecond: [], byminute: [], byhour: [], byday: [ICalendarDay { ordwk: None, weekday: Thursday }], bymonthday: [], byyearday: [], byweekno: [], bymonth: [], bysetpos: [], wkst: Some(Sunday), rscale: None, skip: None })
|
||||
summary.summary: Text("Meet me maybe")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REQUEST
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
X-MICROSOFT-CDO-OWNERAPPTID:299828133
|
||||
DESCRIPTION:This is the event description
|
||||
LOCATION:
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Meet me maybe
|
||||
DTEND;TZID=America/Los_Angeles:20250619T064500
|
||||
DTSTART;TZID=America/Los_Angeles:20250619T060000
|
||||
TRANSP:OPAQUE
|
||||
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=
|
||||
TRUE;[email protected];X-NUM-GUESTS=0:mailto:[email protected]
|
||||
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;RSVP=TRUE
|
||||
;CN="John Doe";X-NUM-GUESTS=0:mailto:[email protected]
|
||||
ORGANIZER;CN="John Doe":mailto:[email protected]
|
||||
UID:[email protected]
|
||||
RRULE:FREQ=WEEKLY;COUNT=2;BYDAY=TH;WKST=SU
|
||||
CREATED:20250616T182358Z
|
||||
DTSTAMP:0
|
||||
LAST-MODIFIED:20250616T182358Z
|
||||
SEQUENCE:0
|
||||
BEGIN:VALARM
|
||||
DESCRIPTION:This is an event reminder
|
||||
ACTION:DISPLAY
|
||||
TRIGGER:-PT10M
|
||||
END:VALARM
|
||||
END:VEVENT
|
||||
BEGIN:VTIMEZONE
|
||||
X-LIC-LOCATION:America/Los_Angeles
|
||||
TZID:America/Los_Angeles
|
||||
BEGIN:DAYLIGHT
|
||||
DTSTART:19700308T020000
|
||||
TZNAME:PDT
|
||||
TZOFFSETFROM:-0800
|
||||
TZOFFSETTO:-0700
|
||||
RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
DTSTART:19701101T020000
|
||||
TZNAME:PST
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0800
|
||||
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
||||
|
||||
# Send iTIP
|
||||
> send
|
||||
|
||||
# Update the event, expect no changes
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Google Inc//Google Calendar 70.9054//EN
|
||||
VERSION:2.0
|
||||
CALSCALE:GREGORIAN
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Los_Angeles
|
||||
X-LIC-LOCATION:America/Los_Angeles
|
||||
BEGIN:DAYLIGHT
|
||||
TZOFFSETFROM:-0800
|
||||
TZOFFSETTO:-0700
|
||||
TZNAME:PDT
|
||||
DTSTART:19700308T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0800
|
||||
TZNAME:PST
|
||||
DTSTART:19701101T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
BEGIN:VEVENT
|
||||
DTSTART;TZID=America/Los_Angeles:20250619T060000
|
||||
DTEND;TZID=America/Los_Angeles:20250619T064500
|
||||
RRULE:FREQ=WEEKLY;WKST=SU;COUNT=2;BYDAY=TH
|
||||
DTSTAMP:20250616T182416Z
|
||||
ORGANIZER;CN=John Doe:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=
|
||||
TRUE;[email protected];X-NUM-GUESTS=0:mailto:[email protected]
|
||||
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;RSVP=TRUE
|
||||
;CN=John Doe;X-NUM-GUESTS=0:mailto:[email protected]
|
||||
X-MICROSOFT-CDO-OWNERAPPTID:299828133
|
||||
CREATED:20250616T182358Z
|
||||
LAST-MODIFIED:20250616T182415Z
|
||||
LOCATION:
|
||||
SEQUENCE:1
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Meet me maybe
|
||||
DESCRIPTION:This is the updated event description
|
||||
TRANSP:OPAQUE
|
||||
BEGIN:VALARM
|
||||
ACTION:DISPLAY
|
||||
DESCRIPTION:This is an event reminder
|
||||
TRIGGER:-P0DT0H10M0S
|
||||
END:VALARM
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: update REQUEST
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: Some("John Doe"), is_organizer: true }, ItipParticipant { email: "[email protected]", name: Some("[email protected]"), is_organizer: false }])
|
||||
summary.description: Text("This is the updated event description")
|
||||
summary.dtstart: Time(ItipTime { start: 1750338000, tz_id: 148 })
|
||||
summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Weekly, until: None, count: Some(2), interval: None, bysecond: [], byminute: [], byhour: [], byday: [ICalendarDay { ordwk: None, weekday: Thursday }], bymonthday: [], byyearday: [], byweekno: [], bymonth: [], bysetpos: [], wkst: Some(Sunday), rscale: None, skip: None })
|
||||
summary.summary: Text("Meet me maybe")
|
||||
~summary.description: Text("This is the event description")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REQUEST
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
X-MICROSOFT-CDO-OWNERAPPTID:299828133
|
||||
DESCRIPTION:This is the updated event description
|
||||
LOCATION:
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Meet me maybe
|
||||
DTEND;TZID=America/Los_Angeles:20250619T064500
|
||||
DTSTART;TZID=America/Los_Angeles:20250619T060000
|
||||
TRANSP:OPAQUE
|
||||
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=
|
||||
TRUE;[email protected];X-NUM-GUESTS=0:mailto:[email protected]
|
||||
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;RSVP=TRUE
|
||||
;CN="John Doe";X-NUM-GUESTS=0:mailto:[email protected]
|
||||
ORGANIZER;CN="John Doe":mailto:[email protected]
|
||||
UID:[email protected]
|
||||
RRULE:FREQ=WEEKLY;COUNT=2;BYDAY=TH;WKST=SU
|
||||
CREATED:20250616T182358Z
|
||||
DTSTAMP:0
|
||||
LAST-MODIFIED:20250616T182415Z
|
||||
SEQUENCE:1
|
||||
END:VEVENT
|
||||
BEGIN:VTIMEZONE
|
||||
X-LIC-LOCATION:America/Los_Angeles
|
||||
TZID:America/Los_Angeles
|
||||
BEGIN:DAYLIGHT
|
||||
DTSTART:19700308T020000
|
||||
TZNAME:PDT
|
||||
TZOFFSETFROM:-0800
|
||||
TZOFFSETTO:-0700
|
||||
RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
DTSTART:19701101T020000
|
||||
TZNAME:PST
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0800
|
||||
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
||||
|
||||
> send
|
||||
|
||||
# Make sure the original alarms are preserved
|
||||
> get [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
X-MICROSOFT-CDO-OWNERAPPTID:299828133
|
||||
DESCRIPTION:This is the updated event description
|
||||
LOCATION:
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Meet me maybe
|
||||
DTEND;TZID=America/Los_Angeles:20250619T064500
|
||||
DTSTART;TZID=America/Los_Angeles:20250619T060000
|
||||
TRANSP:OPAQUE
|
||||
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=
|
||||
TRUE;[email protected];X-NUM-GUESTS=0:mailto:[email protected]
|
||||
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;RSVP=TRUE
|
||||
;CN="John Doe";X-NUM-GUESTS=0:mailto:[email protected]
|
||||
ORGANIZER;CN="John Doe":mailto:[email protected]
|
||||
UID:[email protected]
|
||||
RRULE:FREQ=WEEKLY;COUNT=2;BYDAY=TH;WKST=SU
|
||||
CREATED:20250616T182358Z
|
||||
DTSTAMP:0
|
||||
LAST-MODIFIED:20250616T182358Z
|
||||
SEQUENCE:1
|
||||
BEGIN:VALARM
|
||||
DESCRIPTION:This is an event reminder
|
||||
ACTION:DISPLAY
|
||||
TRIGGER:-PT10M
|
||||
END:VALARM
|
||||
END:VEVENT
|
||||
BEGIN:VTIMEZONE
|
||||
X-LIC-LOCATION:America/Los_Angeles
|
||||
TZID:America/Los_Angeles
|
||||
BEGIN:DAYLIGHT
|
||||
DTSTART:19700308T020000
|
||||
TZNAME:PDT
|
||||
TZOFFSETFROM:-0800
|
||||
TZOFFSETTO:-0700
|
||||
RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
DTSTART:19701101T020000
|
||||
TZNAME:PST
|
||||
TZOFFSETFROM:-0700
|
||||
TZOFFSETTO:-0800
|
||||
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,138 @@
|
||||
# iTIP tests
|
||||
|
||||
# Recipient is not organizer or attendee
|
||||
> itip [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
METHOD:REQUEST
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=C:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal:mailto:[email protected]
|
||||
ATTENDEE;RSVP=FALSE;CUTYPE=ROOM:[email protected]
|
||||
ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE:mailto:[email protected]
|
||||
DTSTAMP:19970611T190000Z
|
||||
DTSTART:19970701T200000Z
|
||||
DTEND:19970701T2100000Z
|
||||
SUMMARY:Conference
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> send
|
||||
NotOrganizerNorAttendee
|
||||
|
||||
> reset
|
||||
|
||||
# Refreshing an event (1)
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REQUEST
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
RDATE:19980304T180000Z
|
||||
RDATE:19980311T180000Z
|
||||
RDATE:19980318T180000Z
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE:mailto:[email protected]
|
||||
SUMMARY:Review Accounts
|
||||
DTSTART:19980304T180000Z
|
||||
DTEND:19980304T200000Z
|
||||
DTSTAMP:19980303T193000Z
|
||||
LOCATION:Conference Room A
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Refreshing an event (2)
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: invite
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 889034400, tz_id: 32768 })
|
||||
summary.location: Text("Conference Room A")
|
||||
summary.summary: Text("Review Accounts")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REQUEST
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
LOCATION:Conference Room A
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Review Accounts
|
||||
DTEND:19980304T200000Z
|
||||
DTSTART:19980304T180000Z
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
RDATE:19980304T180000Z
|
||||
RDATE:19980311T180000Z
|
||||
RDATE:19980318T180000Z
|
||||
DTSTAMP:0
|
||||
SEQUENCE:0
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Refreshing an event (3)
|
||||
> send
|
||||
|
||||
# Refreshing an event (4)
|
||||
> itip [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REFRESH
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE:mailto:[email protected]
|
||||
DTSTART:19980304T180000Z
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Refreshing an event (5)
|
||||
> send
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: invite
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 889034400, tz_id: 32768 })
|
||||
summary.location: Text("Conference Room A")
|
||||
summary.summary: Text("Review Accounts")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REQUEST
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
LOCATION:Conference Room A
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Review Accounts
|
||||
DTEND:19980304T200000Z
|
||||
DTSTART:19980304T180000Z
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
RDATE:19980304T180000Z
|
||||
RDATE:19980311T180000Z
|
||||
RDATE:19980318T180000Z
|
||||
DTSTAMP:0
|
||||
SEQUENCE:0
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,512 @@
|
||||
# Scheduling invalid actions
|
||||
|
||||
# Event has no scheduling information
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:19970611T190000Z
|
||||
DTSTART:19970701T200000Z
|
||||
DTEND:19970701T2100000Z
|
||||
SUMMARY:Conference
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
NoSchedulingInfo
|
||||
|
||||
> reset
|
||||
|
||||
# X is not the organizer
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B:mailto:[email protected]
|
||||
DTSTAMP:19970611T190000Z
|
||||
DTSTART:19970701T200000Z
|
||||
DTEND:19970701T2100000Z
|
||||
SUMMARY:Conference
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
NotOrganizerNorAttendee
|
||||
|
||||
> reset
|
||||
|
||||
# No attendees
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:[email protected]
|
||||
DTSTAMP:19970611T190000Z
|
||||
DTSTART:19970701T200000Z
|
||||
DTEND:19970701T2100000Z
|
||||
SUMMARY:Conference
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
NothingToSend
|
||||
|
||||
> reset
|
||||
|
||||
|
||||
# Organizer with client scheduling agent
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
ORGANIZER;SCHEDULE-AGENT=CLIENT:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B:mailto:[email protected]
|
||||
DTSTAMP:19970611T190000Z
|
||||
DTSTART:19970701T200000Z
|
||||
DTEND:19970701T2100000Z
|
||||
SUMMARY:Conference
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
OtherSchedulingAgent
|
||||
|
||||
> reset
|
||||
|
||||
# Single participant with client scheduling agent
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:[email protected]
|
||||
ATTENDEE;SCHEDULE-AGENT=CLIENT;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B:mailto:[email protected]
|
||||
DTSTAMP:19970611T190000Z
|
||||
DTSTART:19970701T200000Z
|
||||
DTEND:19970701T2100000Z
|
||||
SUMMARY:Conference
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
NothingToSend
|
||||
|
||||
> reset
|
||||
|
||||
# Only send updates to clients with server scheduling agent
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B:mailto:[email protected]
|
||||
ATTENDEE;SCHEDULE-AGENT=CLIENT;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B:mailto:[email protected]
|
||||
DTSTAMP:19970611T190000Z
|
||||
DTSTART:19970701T200000Z
|
||||
DTEND:19970701T2100000Z
|
||||
SUMMARY:Conference
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: invite
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: Some("B"), is_organizer: false }, ItipParticipant { email: "[email protected]", name: Some("B"), is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 867787200, tz_id: 32768 })
|
||||
summary.summary: Text("Conference")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REQUEST
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Conference
|
||||
DTEND:19970701T2100000Z
|
||||
DTSTART:19970701T200000Z
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B;PARTSTAT=NEEDS-ACTION:mailto:b@ex
|
||||
ample.com
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B;PARTSTAT=NEEDS-ACTION:mailto:d@ex
|
||||
ample.com
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:0
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Writing the same event again should not send a new request
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B:mailto:[email protected]
|
||||
ATTENDEE;SCHEDULE-AGENT=CLIENT;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B:mailto:[email protected]
|
||||
DTSTAMP:19970611T190000Z
|
||||
DTSTART:19970701T200000Z
|
||||
DTEND:19970701T2100000Z
|
||||
SUMMARY:Conference
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
NothingToSend
|
||||
|
||||
# Adding a comment and a custom property should not send a new request
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B:mailto:[email protected]
|
||||
ATTENDEE;SCHEDULE-AGENT=CLIENT;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B:mailto:[email protected]
|
||||
DTSTAMP:19970611T190000Z
|
||||
DTSTART:19970701T200000Z
|
||||
DTEND:19970701T2100000Z
|
||||
SUMMARY:Conference
|
||||
COMMENT:This is a comment
|
||||
X-EXAMPLE:This is an example
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
NothingToSend
|
||||
|
||||
> reset
|
||||
|
||||
# Multiple object types should be rejected
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B:mailto:[email protected]
|
||||
DTSTAMP:19970611T190000Z
|
||||
DTSTART:19970701T200000Z
|
||||
DTEND:19970701T2100000Z
|
||||
SUMMARY:Conference
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
BEGIN:VTODO
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B:mailto:[email protected]
|
||||
DTSTAMP:19970611T190000Z
|
||||
DTSTART:19970701T200000Z
|
||||
DTEND:19970701T2100000Z
|
||||
SUMMARY:Conference
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
END:VTODO
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
MultipleObjectTypes
|
||||
|
||||
> reset
|
||||
|
||||
# Multiple organizers should be rejected
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B:mailto:[email protected]
|
||||
DTSTAMP:19970611T190000Z
|
||||
DTSTART:19970701T200000Z
|
||||
DTEND:19970701T2100000Z
|
||||
SUMMARY:Conference
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=D:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B:mailto:[email protected]
|
||||
DTSTAMP:19970611T190000Z
|
||||
DTSTART:19970701T200000Z
|
||||
DTEND:19970701T2100000Z
|
||||
SUMMARY:Conference
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
MultipleOrganizer
|
||||
|
||||
> reset
|
||||
|
||||
# Different UIDs should be rejected
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B:mailto:[email protected]
|
||||
DTSTAMP:19970611T190000Z
|
||||
DTSTART:19970701T200000Z
|
||||
DTEND:19970701T2100000Z
|
||||
SUMMARY:Conference
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B:mailto:[email protected]
|
||||
DTSTAMP:19970611T190000Z
|
||||
DTSTART:19970701T200000Z
|
||||
DTEND:19970701T2100000Z
|
||||
SUMMARY:Conference
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
MultipleUid
|
||||
|
||||
> reset
|
||||
|
||||
# Multiple object instances should be rejected
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B:mailto:[email protected]
|
||||
DTSTAMP:19970611T190000Z
|
||||
DTSTART:19970701T200000Z
|
||||
DTEND:19970701T2100000Z
|
||||
SUMMARY:Conference
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B:mailto:[email protected]
|
||||
DTSTAMP:19970611T190000Z
|
||||
DTSTART:19970701T200000Z
|
||||
DTEND:19970701T2100000Z
|
||||
RECURRENCE-ID:19970701T200000Z
|
||||
SUMMARY:Conference
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B:mailto:[email protected]
|
||||
DTSTAMP:19970611T190000Z
|
||||
DTSTART:19970701T200000Z
|
||||
DTEND:19970701T2100000Z
|
||||
RECURRENCE-ID:19970701T200000Z
|
||||
SUMMARY:Conference
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
MultipleObjectInstances
|
||||
|
||||
|
||||
> reset
|
||||
|
||||
# Attendee whose mailto URI percent-encodes a display name is invited at the enclosed addr-spec
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN="John Doe";EMAIL="John Doe <[email protected]>":mailto:john%20doe%20%[email protected]%3E
|
||||
DTSTAMP:19970611T190000Z
|
||||
DTSTART:19970701T200000Z
|
||||
DTEND:19970701T210000Z
|
||||
SUMMARY:Conference
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: invite
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: Some("John Doe"), is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 867787200, tz_id: 32768 })
|
||||
summary.summary: Text("Conference")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REQUEST
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Conference
|
||||
DTEND:19970701T210000Z
|
||||
DTSTART:19970701T200000Z
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN="John Doe";EMAIL="John Doe <john.do
|
||||
[email protected]>";PARTSTAT=NEEDS-ACTION:mailto:john%20doe%20%3Cjohn.doe@exam
|
||||
ple.net%3E
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:0
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> reset
|
||||
|
||||
# Attendee whose mailto URI percent-encodes the addr-spec is decoded
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN="Jane Doe":mailto:jane%[email protected]?subject=Conference
|
||||
DTSTAMP:19970611T190000Z
|
||||
DTSTART:19970701T200000Z
|
||||
DTEND:19970701T210000Z
|
||||
SUMMARY:Conference
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: invite
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: Some("Jane Doe"), is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 867787200, tz_id: 32768 })
|
||||
summary.summary: Text("Conference")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REQUEST
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Conference
|
||||
DTEND:19970701T210000Z
|
||||
DTSTART:19970701T200000Z
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN="Jane Doe";PARTSTAT=NEEDS-ACTION:ma
|
||||
ilto:jane%[email protected]?subject=Conference
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:0
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> reset
|
||||
|
||||
# Attendee whose address cannot be parsed is flagged with SCHEDULE-STATUS 3.7
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN="Jane Doe":mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN="Mike Douglass":mailto:not-a-calendar-user
|
||||
DTSTAMP:19970611T190000Z
|
||||
DTSTART:19970701T200000Z
|
||||
DTEND:19970701T210000Z
|
||||
SUMMARY:Conference
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> get [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Conference
|
||||
DTEND:19970701T210000Z
|
||||
DTSTART:19970701T200000Z
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN="Jane Doe":mailto:jane.doe@example.
|
||||
net
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN="Mike Douglass";SCHEDULE-STATUS=3.7
|
||||
:mailto:not-a-calendar-user
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:0
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
@@ -0,0 +1,987 @@
|
||||
# RFC5546 - Group Event Request
|
||||
|
||||
# A sample meeting request is sent from "A" to "B", "C", and "D".
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
RRULE:FREQ=MONTHLY;BYMONTHDAY=1;UNTIL=19980901T210000Z
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
DESCRIPTION:IETF-C&S Conference Call
|
||||
CLASS:PUBLIC
|
||||
SUMMARY:IETF Calendaring Working Group Meeting
|
||||
DTSTART:19970601T210000Z
|
||||
DTEND:19970601T220000Z
|
||||
LOCATION:Conference Call
|
||||
DTSTAMP:19970526T083000Z
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected], [email protected], [email protected]
|
||||
summary: invite
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
summary.description: Text("IETF-C&S Conference Call")
|
||||
summary.dtstart: Time(ItipTime { start: 865198800, tz_id: 32768 })
|
||||
summary.location: Text("Conference Call")
|
||||
summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Monthly, until: Some(PartialDateTime { year: Some(1998), month: Some(9), day: Some(1), hour: Some(21), minute: Some(0), second: Some(0), tz_hour: Some(0), tz_minute: Some(0), tz_minus: false }), count: None, interval: None, bysecond: [], byminute: [], byhour: [], byday: [], bymonthday: [1], byyearday: [], byweekno: [], bymonth: [], bysetpos: [], wkst: None, rscale: None, skip: None })
|
||||
summary.summary: Text("IETF Calendaring Working Group Meeting")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REQUEST
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
CLASS:PUBLIC
|
||||
DESCRIPTION:IETF-C&S Conference Call
|
||||
LOCATION:Conference Call
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:IETF Calendaring Working Group Meeting
|
||||
DTEND:19970601T220000Z
|
||||
DTSTART:19970601T210000Z
|
||||
ATTENDEE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
RRULE:FREQ=MONTHLY;UNTIL=19980901T210000Z;BYMONTHDAY=1
|
||||
DTSTAMP:0
|
||||
SEQUENCE:0
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Send iTIP request to attendees
|
||||
> send
|
||||
|
||||
# Change a recurrence instance
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
UID:[email protected]
|
||||
SEQUENCE:2
|
||||
RRULE:FREQ=MONTHLY;BYMONTHDAY=1;UNTIL=19980901T210000Z
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
DESCRIPTION:IETF-C&S Conference Call
|
||||
CLASS:PUBLIC
|
||||
SUMMARY:IETF Calendaring Working Group Meeting
|
||||
DTSTART:19970601T210000Z
|
||||
DTEND:19970601T220000Z
|
||||
LOCATION:Conference Call
|
||||
DTSTAMP:19970526T083000Z
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
UID:[email protected]
|
||||
RECURRENCE-ID:19970701T210000Z
|
||||
SEQUENCE:1
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
DESCRIPTION:IETF-C&S Conference Call
|
||||
CLASS:PUBLIC
|
||||
SUMMARY:IETF Calendaring Working Group Meeting
|
||||
DTSTART:19970703T210000Z
|
||||
DTEND:19970703T220000Z
|
||||
LOCATION:Conference Call
|
||||
DTSTAMP:19970626T093000Z
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected], [email protected], [email protected]
|
||||
summary: update REQUEST
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
summary.description: Text("IETF-C&S Conference Call")
|
||||
summary.dtstart: Time(ItipTime { start: 865198800, tz_id: 32768 })
|
||||
summary.location: Text("Conference Call")
|
||||
summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Monthly, until: Some(PartialDateTime { year: Some(1998), month: Some(9), day: Some(1), hour: Some(21), minute: Some(0), second: Some(0), tz_hour: Some(0), tz_minute: Some(0), tz_minus: false }), count: None, interval: None, bysecond: [], byminute: [], byhour: [], byday: [], bymonthday: [1], byyearday: [], byweekno: [], bymonth: [], bysetpos: [], wkst: None, rscale: None, skip: None })
|
||||
summary.summary: Text("IETF Calendaring Working Group Meeting")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REQUEST
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
CLASS:PUBLIC
|
||||
DESCRIPTION:IETF-C&S Conference Call
|
||||
LOCATION:Conference Call
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:IETF Calendaring Working Group Meeting
|
||||
DTEND:19970703T220000Z
|
||||
DTSTART:19970703T210000Z
|
||||
ATTENDEE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
RECURRENCE-ID:19970701T210000Z
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:2
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Send iTIP update to attendees
|
||||
> send
|
||||
|
||||
# Cancel a recurrence instance only for B
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
UID:[email protected]
|
||||
SEQUENCE:3
|
||||
RRULE:FREQ=MONTHLY;BYMONTHDAY=1;UNTIL=19980901T210000Z
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
DESCRIPTION:IETF-C&S Conference Call
|
||||
CLASS:PUBLIC
|
||||
SUMMARY:IETF Calendaring Working Group Meeting
|
||||
DTSTART:19970601T210000Z
|
||||
DTEND:19970601T220000Z
|
||||
LOCATION:Conference Call
|
||||
DTSTAMP:19970526T083000Z
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
UID:[email protected]
|
||||
RECURRENCE-ID:19970701T210000Z
|
||||
SEQUENCE:2
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
DESCRIPTION:IETF-C&S Conference Call
|
||||
CLASS:PUBLIC
|
||||
SUMMARY:IETF Calendaring Working Group Meeting
|
||||
DTSTART:19970703T210000Z
|
||||
DTEND:19970703T220000Z
|
||||
LOCATION:Conference Call
|
||||
DTSTAMP:19970626T093000Z
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
UID:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
RECURRENCE-ID:19970801T210000Z
|
||||
SEQUENCE:2
|
||||
STATUS:CANCELLED
|
||||
DTSTAMP:19970721T093000Z
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: cancel
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
summary.description: Text("IETF-C&S Conference Call")
|
||||
summary.dtstart: Time(ItipTime { start: 865198800, tz_id: 32768 })
|
||||
summary.location: Text("Conference Call")
|
||||
summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Monthly, until: Some(PartialDateTime { year: Some(1998), month: Some(9), day: Some(1), hour: Some(21), minute: Some(0), second: Some(0), tz_hour: Some(0), tz_minute: Some(0), tz_minus: false }), count: None, interval: None, bysecond: [], byminute: [], byhour: [], byday: [], bymonthday: [1], byyearday: [], byweekno: [], bymonth: [], bysetpos: [], wkst: None, rscale: None, skip: None })
|
||||
summary.summary: Text("IETF Calendaring Working Group Meeting")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:CANCEL
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
STATUS:CANCELLED
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
RECURRENCE-ID:19970801T210000Z
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:3
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Send iTIP cancellation to B
|
||||
> send
|
||||
|
||||
# Make sure B has the cancelled event
|
||||
> get [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
CLASS:PUBLIC
|
||||
DESCRIPTION:IETF-C&S Conference Call
|
||||
LOCATION:Conference Call
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:IETF Calendaring Working Group Meeting
|
||||
DTEND:19970601T220000Z
|
||||
DTSTART:19970601T210000Z
|
||||
ATTENDEE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
RRULE:FREQ=MONTHLY;UNTIL=19980901T210000Z;BYMONTHDAY=1
|
||||
DTSTAMP:0
|
||||
SEQUENCE:0
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
CLASS:PUBLIC
|
||||
DESCRIPTION:IETF-C&S Conference Call
|
||||
LOCATION:Conference Call
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:IETF Calendaring Working Group Meeting
|
||||
DTEND:19970703T220000Z
|
||||
DTSTART:19970703T210000Z
|
||||
ATTENDEE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
RECURRENCE-ID:19970701T210000Z
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:2
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
STATUS:CANCELLED
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
RECURRENCE-ID:19970801T210000Z
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:3
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Change all future instances
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
UID:[email protected]
|
||||
SEQUENCE:4
|
||||
RRULE:FREQ=MONTHLY;BYMONTHDAY=1;UNTIL=19980901T210000Z
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
DESCRIPTION:IETF-C&S Conference Call
|
||||
CLASS:PUBLIC
|
||||
SUMMARY:IETF Calendaring Working Group Meeting
|
||||
DTSTART:19970601T210000Z
|
||||
DTEND:19970601T220000Z
|
||||
LOCATION:Conference Call
|
||||
DTSTAMP:19970526T083000Z
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
UID:[email protected]
|
||||
RECURRENCE-ID:19970701T210000Z
|
||||
SEQUENCE:3
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
DESCRIPTION:IETF-C&S Conference Call
|
||||
CLASS:PUBLIC
|
||||
SUMMARY:IETF Calendaring Working Group Meeting
|
||||
DTSTART:19970703T210000Z
|
||||
DTEND:19970703T220000Z
|
||||
LOCATION:Conference Call
|
||||
DTSTAMP:19970626T093000Z
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
UID:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
RECURRENCE-ID:19970801T210000Z
|
||||
SEQUENCE:3
|
||||
STATUS:CANCELLED
|
||||
DTSTAMP:19970721T093000Z
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
UID:[email protected]
|
||||
RECURRENCE-ID;THISANDFUTURE:19970901T210000Z
|
||||
SEQUENCE:3
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE:mailto:[email protected]
|
||||
DESCRIPTION:IETF-C&S Discussion
|
||||
CLASS:PUBLIC
|
||||
SUMMARY:IETF Calendaring Working Group Meeting
|
||||
DTSTART:19970901T210000Z
|
||||
DTEND:19970901T220000Z
|
||||
LOCATION:Building 32, Microsoft, Seattle, WA
|
||||
DTSTAMP:19970526T083000Z
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected], [email protected], [email protected]
|
||||
summary: update REQUEST
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
summary.description: Text("IETF-C&S Conference Call")
|
||||
summary.dtstart: Time(ItipTime { start: 865198800, tz_id: 32768 })
|
||||
summary.location: Text("Conference Call")
|
||||
summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Monthly, until: Some(PartialDateTime { year: Some(1998), month: Some(9), day: Some(1), hour: Some(21), minute: Some(0), second: Some(0), tz_hour: Some(0), tz_minute: Some(0), tz_minus: false }), count: None, interval: None, bysecond: [], byminute: [], byhour: [], byday: [], bymonthday: [1], byyearday: [], byweekno: [], bymonth: [], bysetpos: [], wkst: None, rscale: None, skip: None })
|
||||
summary.summary: Text("IETF Calendaring Working Group Meeting")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REQUEST
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
CLASS:PUBLIC
|
||||
DESCRIPTION:IETF-C&S Discussion
|
||||
LOCATION:Building 32\, Microsoft\, Seattle\, WA
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:IETF Calendaring Working Group Meeting
|
||||
DTEND:19970901T220000Z
|
||||
DTSTART:19970901T210000Z
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
RECURRENCE-ID;THISANDFUTURE:19970901T210000Z
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:4
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Send iTIP update to attendees
|
||||
> send
|
||||
|
||||
# Make sure B has the complete event including all updates
|
||||
> get [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
CLASS:PUBLIC
|
||||
DESCRIPTION:IETF-C&S Conference Call
|
||||
LOCATION:Conference Call
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:IETF Calendaring Working Group Meeting
|
||||
DTEND:19970601T220000Z
|
||||
DTSTART:19970601T210000Z
|
||||
ATTENDEE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
RRULE:FREQ=MONTHLY;UNTIL=19980901T210000Z;BYMONTHDAY=1
|
||||
DTSTAMP:0
|
||||
SEQUENCE:0
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
CLASS:PUBLIC
|
||||
DESCRIPTION:IETF-C&S Conference Call
|
||||
LOCATION:Conference Call
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:IETF Calendaring Working Group Meeting
|
||||
DTEND:19970703T220000Z
|
||||
DTSTART:19970703T210000Z
|
||||
ATTENDEE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
RECURRENCE-ID:19970701T210000Z
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:2
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
STATUS:CANCELLED
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
RECURRENCE-ID:19970801T210000Z
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:3
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
CLASS:PUBLIC
|
||||
DESCRIPTION:IETF-C&S Discussion
|
||||
LOCATION:Building 32\, Microsoft\, Seattle\, WA
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:IETF Calendaring Working Group Meeting
|
||||
DTEND:19970901T220000Z
|
||||
DTSTART:19970901T210000Z
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
RECURRENCE-ID;THISANDFUTURE:19970901T210000Z
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:4
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Cancel the recurring event
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
UID:[email protected]
|
||||
SEQUENCE:4
|
||||
RRULE:FREQ=MONTHLY;BYMONTHDAY=1;UNTIL=19980901T210000Z
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
DESCRIPTION:IETF-C&S Conference Call
|
||||
CLASS:PUBLIC
|
||||
SUMMARY:IETF Calendaring Working Group Meeting
|
||||
DTSTART:19970601T210000Z
|
||||
DTEND:19970601T220000Z
|
||||
LOCATION:Conference Call
|
||||
DTSTAMP:19970526T083000Z
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
UID:[email protected]
|
||||
RECURRENCE-ID:19970701T210000Z
|
||||
SEQUENCE:3
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
DESCRIPTION:IETF-C&S Conference Call
|
||||
CLASS:PUBLIC
|
||||
SUMMARY:IETF Calendaring Working Group Meeting
|
||||
DTSTART:19970703T210000Z
|
||||
DTEND:19970703T220000Z
|
||||
LOCATION:Conference Call
|
||||
DTSTAMP:19970626T093000Z
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
UID:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
RECURRENCE-ID:19970801T210000Z
|
||||
SEQUENCE:3
|
||||
STATUS:CANCELLED
|
||||
DTSTAMP:19970721T093000Z
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
UID:[email protected]
|
||||
RECURRENCE-ID;THISANDFUTURE:19970901T210000Z
|
||||
SEQUENCE:3
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE:mailto:[email protected]
|
||||
DESCRIPTION:IETF-C&S Discussion
|
||||
CLASS:PUBLIC
|
||||
SUMMARY:IETF Calendaring Working Group Meeting
|
||||
DTSTART:19970901T210000Z
|
||||
DTEND:19970901T220000Z
|
||||
LOCATION:Building 32, Microsoft, Seattle, WA
|
||||
DTSTAMP:19970526T083000Z
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Cancel a recurring event
|
||||
> delete [email protected] [email protected]
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected], [email protected], [email protected]
|
||||
summary: cancel
|
||||
summary.description: Text("IETF-C&S Conference Call")
|
||||
summary.dtstart: Time(ItipTime { start: 865198800, tz_id: 32768 })
|
||||
summary.location: Text("Conference Call")
|
||||
summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Monthly, until: Some(PartialDateTime { year: Some(1998), month: Some(9), day: Some(1), hour: Some(21), minute: Some(0), second: Some(0), tz_hour: Some(0), tz_minute: Some(0), tz_minus: false }), count: None, interval: None, bysecond: [], byminute: [], byhour: [], byday: [], bymonthday: [1], byyearday: [], byweekno: [], bymonth: [], bysetpos: [], wkst: None, rscale: None, skip: None })
|
||||
summary.summary: Text("IETF Calendaring Working Group Meeting")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:CANCEL
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
DESCRIPTION:IETF-C&S Conference Call
|
||||
LOCATION:Conference Call
|
||||
STATUS:CANCELLED
|
||||
SUMMARY:IETF Calendaring Working Group Meeting
|
||||
DTEND:19970601T220000Z
|
||||
DTSTART:19970601T210000Z
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:5
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Send iTIP cancellation to attendees
|
||||
> send
|
||||
|
||||
# Make sure all instances in B were deleted
|
||||
> get [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
CLASS:PUBLIC
|
||||
DESCRIPTION:IETF-C&S Conference Call
|
||||
LOCATION:Conference Call
|
||||
STATUS:CANCELLED
|
||||
SUMMARY:IETF Calendaring Working Group Meeting
|
||||
DTEND:19970601T220000Z
|
||||
DTSTART:19970601T210000Z
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
RRULE:FREQ=MONTHLY;UNTIL=19980901T210000Z;BYMONTHDAY=1
|
||||
DTSTAMP:0
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
CLASS:PUBLIC
|
||||
DESCRIPTION:IETF-C&S Conference Call
|
||||
LOCATION:Conference Call
|
||||
STATUS:CANCELLED
|
||||
SUMMARY:IETF Calendaring Working Group Meeting
|
||||
DTEND:19970703T220000Z
|
||||
DTSTART:19970703T210000Z
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
RECURRENCE-ID:19970701T210000Z
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:2
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
STATUS:CANCELLED
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
RECURRENCE-ID:19970801T210000Z
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:3
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
CLASS:PUBLIC
|
||||
DESCRIPTION:IETF-C&S Discussion
|
||||
LOCATION:Building 32\, Microsoft\, Seattle\, WA
|
||||
STATUS:CANCELLED
|
||||
SUMMARY:IETF Calendaring Working Group Meeting
|
||||
DTEND:19970901T220000Z
|
||||
DTSTART:19970901T210000Z
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
RECURRENCE-ID;THISANDFUTURE:19970901T210000Z
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:4
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Add a new series of instances to the recurring event
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
RRULE:WKST=SU;BYDAY=TU;FREQ=WEEKLY
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE:mailto:[email protected]
|
||||
SUMMARY:Review Accounts
|
||||
DTSTART:19980303T210000Z
|
||||
DTEND:19980303T220000Z
|
||||
LOCATION:The White Room
|
||||
DTSTAMP:19980301T093000Z
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
UID:[email protected]
|
||||
SEQUENCE:2
|
||||
RECURRENCE-ID;THISANDFUTURE:19970901T210000Z
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE:mailto:[email protected]
|
||||
SUMMARY:Review Accounts
|
||||
DTSTAMP:19980303T193000Z
|
||||
LOCATION:The Red Room
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected], [email protected]
|
||||
summary: invite
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 888958800, tz_id: 32768 })
|
||||
summary.location: Text("The White Room")
|
||||
summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Weekly, until: None, count: None, interval: None, bysecond: [], byminute: [], byhour: [], byday: [ICalendarDay { ordwk: None, weekday: Tuesday }], bymonthday: [], byyearday: [], byweekno: [], bymonth: [], bysetpos: [], wkst: Some(Sunday), rscale: None, skip: None })
|
||||
summary.summary: Text("Review Accounts")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REQUEST
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
LOCATION:The White Room
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Review Accounts
|
||||
DTEND:19980303T220000Z
|
||||
DTSTART:19980303T210000Z
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
RRULE:FREQ=WEEKLY;BYDAY=TU;WKST=SU
|
||||
DTSTAMP:0
|
||||
SEQUENCE:0
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
LOCATION:The Red Room
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Review Accounts
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
RECURRENCE-ID;THISANDFUTURE:19970901T210000Z
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:2
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Send iTIP request to B and C
|
||||
> send
|
||||
|
||||
# Add a new series of instances to the recurring event (update)
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
UID:[email protected]
|
||||
SEQUENCE:2
|
||||
RRULE:WKST=SU;BYDAY=TU,TH;FREQ=WEEKLY
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE:mailto:[email protected]
|
||||
SUMMARY:Review Accounts
|
||||
DTSTART:19980303T210000Z
|
||||
DTEND:19980303T220000Z
|
||||
DTSTAMP:19980303T193000Z
|
||||
LOCATION:The White Room
|
||||
STATUS:CONFIRMED
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: update REQUEST
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 888958800, tz_id: 32768 })
|
||||
summary.location: Text("The White Room")
|
||||
summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Weekly, until: None, count: None, interval: None, bysecond: [], byminute: [], byhour: [], byday: [ICalendarDay { ordwk: None, weekday: Tuesday }, ICalendarDay { ordwk: None, weekday: Thursday }], bymonthday: [], byyearday: [], byweekno: [], bymonth: [], bysetpos: [], wkst: Some(Sunday), rscale: None, skip: None })
|
||||
summary.summary: Text("Review Accounts")
|
||||
~summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Weekly, until: None, count: None, interval: None, bysecond: [], byminute: [], byhour: [], byday: [ICalendarDay { ordwk: None, weekday: Tuesday }], bymonthday: [], byyearday: [], byweekno: [], bymonth: [], bysetpos: [], wkst: Some(Sunday), rscale: None, skip: None })
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REQUEST
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
LOCATION:The White Room
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Review Accounts
|
||||
DTEND:19980303T220000Z
|
||||
DTSTART:19980303T210000Z
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
RRULE:FREQ=WEEKLY;BYDAY=TU,TH;WKST=SU
|
||||
DTSTAMP:0
|
||||
SEQUENCE:3
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
================================
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: cancel
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 888958800, tz_id: 32768 })
|
||||
summary.location: Text("The White Room")
|
||||
summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Weekly, until: None, count: None, interval: None, bysecond: [], byminute: [], byhour: [], byday: [ICalendarDay { ordwk: None, weekday: Tuesday }], bymonthday: [], byyearday: [], byweekno: [], bymonth: [], bysetpos: [], wkst: Some(Sunday), rscale: None, skip: None })
|
||||
summary.summary: Text("Review Accounts")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:CANCEL
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
LOCATION:The Red Room
|
||||
STATUS:CANCELLED
|
||||
SUMMARY:Review Accounts
|
||||
ATTENDEE;RSVP=TRUE:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
RECURRENCE-ID;THISANDFUTURE:19970901T210000Z
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:3
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Send iTIP request to B and cancellation to C
|
||||
> send
|
||||
|
||||
# Make sure B has the updated event
|
||||
> get [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
LOCATION:The White Room
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Review Accounts
|
||||
DTEND:19980303T220000Z
|
||||
DTSTART:19980303T210000Z
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
RRULE:FREQ=WEEKLY;BYDAY=TU,TH;WKST=SU
|
||||
DTSTAMP:0
|
||||
SEQUENCE:3
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Make sure C has the updated event
|
||||
> get [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
LOCATION:The Red Room
|
||||
STATUS:CANCELLED
|
||||
SUMMARY:Review Accounts
|
||||
ATTENDEE;RSVP=TRUE:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
RECURRENCE-ID;THISANDFUTURE:19970901T210000Z
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
LOCATION:The White Room
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Review Accounts
|
||||
DTEND:19980303T220000Z
|
||||
DTSTART:19980303T210000Z
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
RRULE:FREQ=WEEKLY;BYDAY=TU;WKST=SU
|
||||
DTSTAMP:0
|
||||
SEQUENCE:0
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Delete the event from B
|
||||
> delete [email protected] [email protected]
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: rsvp DECLINED
|
||||
summary.dtstart: Time(ItipTime { start: 888958800, tz_id: 32768 })
|
||||
summary.location: Text("The White Room")
|
||||
summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Weekly, until: None, count: None, interval: None, bysecond: [], byminute: [], byhour: [], byday: [ICalendarDay { ordwk: None, weekday: Tuesday }, ICalendarDay { ordwk: None, weekday: Thursday }], bymonthday: [], byyearday: [], byweekno: [], bymonth: [], bysetpos: [], wkst: Some(Sunday), rscale: None, skip: None })
|
||||
summary.summary: Text("Review Accounts")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REPLY
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Review Accounts
|
||||
DTEND:19980303T220000Z
|
||||
DTSTART:19980303T210000Z
|
||||
ATTENDEE;PARTSTAT=DECLINED:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:3
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> send
|
||||
|
||||
# Make sure A has the cancellation from B
|
||||
> get [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
LOCATION:The White Room
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Review Accounts
|
||||
DTEND:19980303T220000Z
|
||||
DTSTART:19980303T210000Z
|
||||
ATTENDEE;PARTSTAT=DECLINED;SCHEDULE-STATUS=2.0:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
RRULE:FREQ=WEEKLY;BYDAY=TU,TH;WKST=SU
|
||||
DTSTAMP:1
|
||||
SEQUENCE:3
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Attendee decline of a recurring event tolerates client-side RRULE drift
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
DTSTAMP:19970526T083000Z
|
||||
DTSTART:19970603T210000Z
|
||||
DTEND:19970603T220000Z
|
||||
SUMMARY:Weekly Sync
|
||||
RRULE:FREQ=WEEKLY;BYDAY=TU
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE:mailto:[email protected]
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: invite
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 865371600, tz_id: 32768 })
|
||||
summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Weekly, until: None, count: None, interval: None, bysecond: [], byminute: [], byhour: [], byday: [ICalendarDay { ordwk: None, weekday: Tuesday }], bymonthday: [], byyearday: [], byweekno: [], bymonth: [], bysetpos: [], wkst: None, rscale: None, skip: None })
|
||||
summary.summary: Text("Weekly Sync")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REQUEST
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Weekly Sync
|
||||
DTEND:19970603T220000Z
|
||||
DTSTART:19970603T210000Z
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
RRULE:FREQ=WEEKLY;BYDAY=TU
|
||||
DTSTAMP:0
|
||||
SEQUENCE:0
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Deliver the REQUEST to B
|
||||
> send
|
||||
|
||||
# B declines the master. Their client re-encoded the RRULE to include an explicit INTERVAL=1
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
DTSTAMP:19970526T090000Z
|
||||
DTSTART:19970603T210000Z
|
||||
DTEND:19970603T220000Z
|
||||
SUMMARY:Weekly Sync
|
||||
RRULE:FREQ=WEEKLY;BYDAY=TU;INTERVAL=1
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;PARTSTAT=DECLINED:mailto:[email protected]
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: rsvp DECLINED
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 865371600, tz_id: 32768 })
|
||||
summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Weekly, until: None, count: None, interval: Some(1), bysecond: [], byminute: [], byhour: [], byday: [ICalendarDay { ordwk: None, weekday: Tuesday }], bymonthday: [], byyearday: [], byweekno: [], bymonth: [], bysetpos: [], wkst: None, rscale: None, skip: None })
|
||||
summary.summary: Text("Weekly Sync")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REPLY
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Weekly Sync
|
||||
DTEND:19970603T220000Z
|
||||
DTSTART:19970603T210000Z
|
||||
ATTENDEE;RSVP=TRUE;PARTSTAT=DECLINED:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:0
|
||||
REQUEST-STATUS:2.0;Success
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Deliver the REPLY to A
|
||||
> send
|
||||
|
||||
@@ -0,0 +1,752 @@
|
||||
# RFC5546 - Group Event Request
|
||||
|
||||
# A sample meeting request is sent from "A" to "B", "C", and "D".
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=C:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal:mailto:[email protected]
|
||||
ATTENDEE;RSVP=FALSE;CUTYPE=ROOM:[email protected]
|
||||
ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE:mailto:[email protected]
|
||||
DTSTAMP:19970611T190000Z
|
||||
DTSTART:19970701T200000Z
|
||||
DTEND:19970701T2100000Z
|
||||
SUMMARY:Conference
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected], [email protected], [email protected]
|
||||
summary: invite
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: Some("B"), is_organizer: false }, ItipParticipant { email: "[email protected]", name: Some("C"), is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: Some("Hal"), is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 867787200, tz_id: 32768 })
|
||||
summary.summary: Text("Conference")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REQUEST
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Conference
|
||||
DTEND:19970701T2100000Z
|
||||
DTSTART:19970701T200000Z
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:[email protected]
|
||||
ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE:mailto:[email protected]
|
||||
ATTENDEE;RSVP=FALSE;CUTYPE=ROOM:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B;PARTSTAT=NEEDS-ACTION:mailto:b@ex
|
||||
ample.com
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=C;PARTSTAT=NEEDS-ACTION:mailto:c@ex
|
||||
ample.com
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal;PARTSTAT=NEEDS-ACTION:mailto:d@
|
||||
example.com
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:0
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Send iTIP request to B, C, and D
|
||||
> send
|
||||
|
||||
# Make sure B receives the request
|
||||
> get [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Conference
|
||||
DTEND:19970701T2100000Z
|
||||
DTSTART:19970701T200000Z
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:[email protected]
|
||||
ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE:mailto:[email protected]
|
||||
ATTENDEE;RSVP=FALSE;CUTYPE=ROOM:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B;PARTSTAT=NEEDS-ACTION:mailto:b@ex
|
||||
ample.com
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=C;PARTSTAT=NEEDS-ACTION:mailto:c@ex
|
||||
ample.com
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal;PARTSTAT=NEEDS-ACTION:mailto:d@
|
||||
example.com
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:0
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# B accepts the request
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
VERSION:2.0
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:19970701T200000Z
|
||||
SEQUENCE:1
|
||||
UID:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B;PARTSTAT=ACCEPTED:mailto:b@exa
|
||||
mple.com
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=C;PARTSTAT=NEEDS-ACTION:mailto:c@ex
|
||||
ample.com
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal;PARTSTAT=NEEDS-ACTION:mailto:d@
|
||||
example.com
|
||||
ATTENDEE;RSVP=FALSE;CUTYPE=ROOM:[email protected]
|
||||
ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE:mailto:[email protected]
|
||||
DTSTART:19970701T200000Z
|
||||
DTEND:19970701T2100000Z
|
||||
SUMMARY:Conference
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: rsvp ACCEPTED
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: Some("B"), is_organizer: false }, ItipParticipant { email: "[email protected]", name: Some("C"), is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: Some("Hal"), is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 867787200, tz_id: 32768 })
|
||||
summary.summary: Text("Conference")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REPLY
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Conference
|
||||
DTEND:19970701T2100000Z
|
||||
DTSTART:19970701T200000Z
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B;PARTSTAT=ACCEPTED:mailto:b@exampl
|
||||
e.com
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:1
|
||||
REQUEST-STATUS:2.0;Success
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Send iTIP reply to A
|
||||
> send
|
||||
|
||||
# Make sure A receives the reply
|
||||
> get [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Conference
|
||||
DTEND:19970701T2100000Z
|
||||
DTSTART:19970701T200000Z
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=A:mailto:[email protected]
|
||||
ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE:mailto:[email protected]
|
||||
ATTENDEE;RSVP=FALSE;CUTYPE=ROOM:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B;PARTSTAT=ACCEPTED;SCHEDULE-STATUS
|
||||
=2.0:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=C:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:1
|
||||
SEQUENCE:0
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# A moved the event to a new time
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal:mailto:[email protected]
|
||||
ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE;CUTYPE=ROOM:mailto:[email protected]
|
||||
m
|
||||
ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE:mailto:[email protected]
|
||||
DTSTART:19970701T180000Z
|
||||
DTEND:19970701T190000Z
|
||||
SUMMARY:Phone Conference
|
||||
UID:[email protected]
|
||||
SEQUENCE:1
|
||||
DTSTAMP:19970613T190000Z
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected], [email protected], [email protected]
|
||||
summary: update REQUEST
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: Some("Hal"), is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 867780000, tz_id: 32768 })
|
||||
summary.summary: Text("Phone Conference")
|
||||
~summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: Some("B"), is_organizer: false }, ItipParticipant { email: "[email protected]", name: Some("C"), is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: Some("Hal"), is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
~summary.dtstart: Time(ItipTime { start: 867787200, tz_id: 32768 })
|
||||
~summary.summary: Text("Conference")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REQUEST
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Phone Conference
|
||||
DTEND:19970701T190000Z
|
||||
DTSTART:19970701T180000Z
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE:mailto:[email protected]
|
||||
ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE;CUTYPE=ROOM:mailto:[email protected]
|
||||
m
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal;PARTSTAT=NEEDS-ACTION:mailto:d@
|
||||
example.com
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION:mailto:b@example
|
||||
.com
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION:mailto:c@example
|
||||
.com
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:2
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Send iTIP request to B, C, and D
|
||||
> send
|
||||
|
||||
# Make sure C receives the request
|
||||
> get [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Phone Conference
|
||||
DTEND:19970701T190000Z
|
||||
DTSTART:19970701T180000Z
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE:mailto:[email protected]
|
||||
ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE;CUTYPE=ROOM:mailto:[email protected]
|
||||
m
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal;PARTSTAT=NEEDS-ACTION:mailto:d@
|
||||
example.com
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION:mailto:b@example
|
||||
.com
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION:mailto:c@example
|
||||
.com
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:2
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# "C" delegates presence at the meeting to "E".
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
VERSION:2.0
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:19970701T180000Z
|
||||
UID:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
STATUS:CONFIRMED
|
||||
SEQUENCE:2
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION:mailto:b@example
|
||||
.com
|
||||
ATTENDEE;PARTSTAT=DELEGATED;DELEGATED-TO="mailto:[email protected]":mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;DELEGATED-FROM="mailto:[email protected]":mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal;PARTSTAT=NEEDS-ACTION:mailto:d@
|
||||
example.com
|
||||
ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE;CUTYPE=ROOM:mailto:[email protected]
|
||||
m
|
||||
DTSTART:19970701T180000Z
|
||||
DTEND:19970701T190000Z
|
||||
SUMMARY:Phone Conference
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: rsvp DELEGATED
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: Some("Hal"), is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 867780000, tz_id: 32768 })
|
||||
summary.summary: Text("Phone Conference")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REPLY
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Phone Conference
|
||||
DTEND:19970701T190000Z
|
||||
DTSTART:19970701T180000Z
|
||||
ATTENDEE;PARTSTAT=DELEGATED;DELEGATED-TO="mailto:[email protected]":mailto:c@ex
|
||||
ample.com
|
||||
ATTENDEE;RSVP=TRUE;DELEGATED-FROM="mailto:[email protected]":mailto:[email protected]
|
||||
om
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:2
|
||||
REQUEST-STATUS:2.0;Success
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
================================
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: invite
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: Some("Hal"), is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 867780000, tz_id: 32768 })
|
||||
summary.summary: Text("Phone Conference")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REQUEST
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Phone Conference
|
||||
DTEND:19970701T190000Z
|
||||
DTSTART:19970701T180000Z
|
||||
ATTENDEE;PARTSTAT=DELEGATED;DELEGATED-TO="mailto:[email protected]":mailto:c@ex
|
||||
ample.com
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE;CUTYPE=ROOM:mailto:[email protected]
|
||||
m
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal;PARTSTAT=NEEDS-ACTION:mailto:d@
|
||||
example.com
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION:mailto:b@example
|
||||
.com
|
||||
ATTENDEE;RSVP=TRUE;DELEGATED-FROM="mailto:[email protected]";PARTSTAT=NEEDS-ACT
|
||||
ION:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:2
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> send
|
||||
|
||||
# Make sure E receives the request
|
||||
> get [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Phone Conference
|
||||
DTEND:19970701T190000Z
|
||||
DTSTART:19970701T180000Z
|
||||
ATTENDEE;PARTSTAT=DELEGATED;DELEGATED-TO="mailto:[email protected]":mailto:c@ex
|
||||
ample.com
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE;CUTYPE=ROOM:mailto:[email protected]
|
||||
m
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal;PARTSTAT=NEEDS-ACTION:mailto:d@
|
||||
example.com
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION:mailto:b@example
|
||||
.com
|
||||
ATTENDEE;RSVP=TRUE;DELEGATED-FROM="mailto:[email protected]";PARTSTAT=NEEDS-ACT
|
||||
ION:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:2
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Make sure A receives the request
|
||||
> get [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Phone Conference
|
||||
DTEND:19970701T190000Z
|
||||
DTSTART:19970701T180000Z
|
||||
ATTENDEE;CUTYPE=INDIVIDUAL;PARTSTAT=DELEGATED;DELEGATED-TO="mailto:e@exampl
|
||||
e.com";SCHEDULE-STATUS=2.0:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE;CUTYPE=ROOM:mailto:[email protected]
|
||||
m
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;DELEGATED-FROM="mailto:[email protected]":mailto:[email protected]
|
||||
om
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:2
|
||||
SEQUENCE:2
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Delegate E accepts the request
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
VERSION:2.0
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:19970701T180000Z
|
||||
SEQUENCE:2
|
||||
UID:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
STATUS:CONFIRMED
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION:mailto:b@example
|
||||
.com
|
||||
ATTENDEE;PARTSTAT=DELEGATED;DELEGATED-TO="mailto:[email protected]":mailto:c@ex
|
||||
ample.com
|
||||
ATTENDEE;RSVP=TRUE;DELEGATED-FROM="mailto:[email protected]";PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal;PARTSTAT=NEEDS-ACTION:mailto:d@
|
||||
example.com
|
||||
ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE;CUTYPE=ROOM:mailto:[email protected]
|
||||
m
|
||||
DTSTART:19970701T180000Z
|
||||
DTEND:19970701T190000Z
|
||||
SUMMARY:Phone Conference
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected], [email protected]
|
||||
summary: rsvp ACCEPTED
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: Some("Hal"), is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 867780000, tz_id: 32768 })
|
||||
summary.summary: Text("Phone Conference")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REPLY
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Phone Conference
|
||||
DTEND:19970701T190000Z
|
||||
DTSTART:19970701T180000Z
|
||||
ATTENDEE;PARTSTAT=DELEGATED;DELEGATED-TO="mailto:[email protected]":mailto:c@ex
|
||||
ample.com
|
||||
ATTENDEE;RSVP=TRUE;DELEGATED-FROM="mailto:[email protected]";PARTSTAT=ACCEPTED:
|
||||
mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:2
|
||||
REQUEST-STATUS:2.0;Success
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> send
|
||||
|
||||
# Make sure A receives the reply
|
||||
> get [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Phone Conference
|
||||
DTEND:19970701T190000Z
|
||||
DTSTART:19970701T180000Z
|
||||
ATTENDEE;CUTYPE=INDIVIDUAL;PARTSTAT=DELEGATED;DELEGATED-TO="mailto:e@exampl
|
||||
e.com";SCHEDULE-STATUS=2.0:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE;CUTYPE=ROOM:mailto:[email protected]
|
||||
m
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;DELEGATED-FROM="mailto:[email protected]";PARTSTAT=ACCEPTED;
|
||||
SCHEDULE-STATUS=2.0:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:2
|
||||
SEQUENCE:2
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Make sure C receives the reply
|
||||
> get [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Phone Conference
|
||||
DTEND:19970701T190000Z
|
||||
DTSTART:19970701T180000Z
|
||||
ATTENDEE;PARTSTAT=DELEGATED;DELEGATED-TO="mailto:[email protected]":mailto:c@ex
|
||||
ample.com
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE;CUTYPE=ROOM:mailto:[email protected]
|
||||
m
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal;PARTSTAT=NEEDS-ACTION:mailto:d@
|
||||
example.com
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION:mailto:b@example
|
||||
.com
|
||||
ATTENDEE;RSVP=TRUE;DELEGATED-FROM="mailto:[email protected]";PARTSTAT=ACCEPTED;
|
||||
SCHEDULE-STATUS=2.0:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:3
|
||||
SEQUENCE:2
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Delegate E declines the request
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
VERSION:2.0
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:19970701T180000Z
|
||||
SEQUENCE:2
|
||||
UID:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
STATUS:CONFIRMED
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION:mailto:b@example
|
||||
.com
|
||||
ATTENDEE;PARTSTAT=DELEGATED;DELEGATED-TO="mailto:[email protected]":mailto:c@ex
|
||||
ample.com
|
||||
ATTENDEE;RSVP=TRUE;DELEGATED-FROM="mailto:[email protected]";PARTSTAT=DECLINED:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal;PARTSTAT=NEEDS-ACTION:mailto:d@
|
||||
example.com
|
||||
ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE;CUTYPE=ROOM:mailto:[email protected]
|
||||
m
|
||||
DTSTART:19970701T180000Z
|
||||
DTEND:19970701T190000Z
|
||||
SUMMARY:Phone Conference
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected], [email protected]
|
||||
summary: rsvp DECLINED
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: Some("Hal"), is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 867780000, tz_id: 32768 })
|
||||
summary.summary: Text("Phone Conference")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REPLY
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Phone Conference
|
||||
DTEND:19970701T190000Z
|
||||
DTSTART:19970701T180000Z
|
||||
ATTENDEE;PARTSTAT=DELEGATED;DELEGATED-TO="mailto:[email protected]":mailto:c@ex
|
||||
ample.com
|
||||
ATTENDEE;RSVP=TRUE;DELEGATED-FROM="mailto:[email protected]";PARTSTAT=DECLINED:
|
||||
mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:2
|
||||
REQUEST-STATUS:2.0;Success
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Send iTIP reply to A and C
|
||||
> send
|
||||
|
||||
# Make sure C receives the reply
|
||||
> get [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Phone Conference
|
||||
DTEND:19970701T190000Z
|
||||
DTSTART:19970701T180000Z
|
||||
ATTENDEE;PARTSTAT=DELEGATED;DELEGATED-TO="mailto:[email protected]":mailto:c@ex
|
||||
ample.com
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE;CUTYPE=ROOM:mailto:[email protected]
|
||||
m
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal;PARTSTAT=NEEDS-ACTION:mailto:d@
|
||||
example.com
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION:mailto:b@example
|
||||
.com
|
||||
ATTENDEE;RSVP=TRUE;DELEGATED-FROM="mailto:[email protected]";PARTSTAT=DECLINED;
|
||||
SCHEDULE-STATUS=2.0:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:3
|
||||
SEQUENCE:2
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Make sure A receives the reply
|
||||
> get [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Phone Conference
|
||||
DTEND:19970701T190000Z
|
||||
DTSTART:19970701T180000Z
|
||||
ATTENDEE;CUTYPE=INDIVIDUAL;PARTSTAT=DELEGATED;DELEGATED-TO="mailto:e@exampl
|
||||
e.com";SCHEDULE-STATUS=2.0:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE;CUTYPE=ROOM:mailto:[email protected]
|
||||
m
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;DELEGATED-FROM="mailto:[email protected]";PARTSTAT=DECLINED;
|
||||
SCHEDULE-STATUS=2.0:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:2
|
||||
SEQUENCE:2
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Remove B and expect an iTIP cancelation
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;CUTYPE=INDIVIDUAL;PARTSTAT=DELEGATED;DELEGATED-TO="mailto:e@exam
|
||||
ple.com";SCHEDULE-STATUS=2.0:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal:mailto:[email protected]
|
||||
ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE;CUTYPE=ROOM:mailto:[email protected]
|
||||
m
|
||||
ATTENDEE;RSVP=TRUE;DELEGATED-FROM="mailto:[email protected]";PARTSTAT=DECLINED;
|
||||
SCHEDULE-STATUS=2.0:mailto:[email protected]
|
||||
DTSTART:19970701T180000Z
|
||||
DTEND:19970701T190000Z
|
||||
SUMMARY:Phone Conference
|
||||
UID:[email protected]
|
||||
SEQUENCE:2
|
||||
DTSTAMP:19970701T180000Z
|
||||
STATUS:CONFIRMED
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected], [email protected]
|
||||
summary: update REQUEST
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: Some("Hal"), is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 867780000, tz_id: 32768 })
|
||||
summary.summary: Text("Phone Conference")
|
||||
~summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: Some("Hal"), is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REQUEST
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:Phone Conference
|
||||
DTEND:19970701T190000Z
|
||||
DTSTART:19970701T180000Z
|
||||
ATTENDEE;CUTYPE=INDIVIDUAL;PARTSTAT=DELEGATED;DELEGATED-TO="mailto:e@exampl
|
||||
e.com":mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE;CUTYPE=ROOM:mailto:[email protected]
|
||||
m
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal;PARTSTAT=NEEDS-ACTION:mailto:d@
|
||||
example.com
|
||||
ATTENDEE;RSVP=TRUE;DELEGATED-FROM="mailto:[email protected]";PARTSTAT=DECLINED:
|
||||
mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:3
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
================================
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: cancel
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: Some("Hal"), is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 867780000, tz_id: 32768 })
|
||||
summary.summary: Text("Phone Conference")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:CANCEL
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
STATUS:CANCELLED
|
||||
SUMMARY:Phone Conference
|
||||
DTEND:19970701T190000Z
|
||||
DTSTART:19970701T180000Z
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:3
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Send iTIP cancelation
|
||||
> send
|
||||
|
||||
# Make sure B receives the cancelation
|
||||
> get [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
STATUS:CANCELLED
|
||||
SUMMARY:Phone Conference
|
||||
DTEND:19970701T190000Z
|
||||
DTSTART:19970701T180000Z
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Delete the event from A's calendar and expect an iTIP cancelation
|
||||
> delete [email protected] [email protected]
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected], [email protected]
|
||||
summary: cancel
|
||||
summary.dtstart: Time(ItipTime { start: 867780000, tz_id: 32768 })
|
||||
summary.summary: Text("Phone Conference")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:CANCEL
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
STATUS:CANCELLED
|
||||
SUMMARY:Phone Conference
|
||||
DTEND:19970701T190000Z
|
||||
DTSTART:19970701T180000Z
|
||||
ATTENDEE;CUTYPE=INDIVIDUAL;PARTSTAT=DELEGATED;DELEGATED-TO="mailto:e@exampl
|
||||
e.com";SCHEDULE-STATUS=2.0:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;ROLE=NON-PARTICIPANT;RSVP=FALSE;CUTYPE=ROOM:mailto:[email protected]
|
||||
m
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=Hal:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;DELEGATED-FROM="mailto:[email protected]";PARTSTAT=DECLINED;
|
||||
SCHEDULE-STATUS=2.0:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:4
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
|
||||
@@ -0,0 +1,501 @@
|
||||
# RFC5546 - Todo Request
|
||||
|
||||
# A sample todo is sent from "A" to "B", "C", and "D".
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
METHOD:REQUEST
|
||||
VERSION:2.0
|
||||
BEGIN:VTODO
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE:mailto:[email protected]
|
||||
DTSTART:19970701T170000Z
|
||||
DUE:19970722T170000Z
|
||||
PRIORITY:1
|
||||
SUMMARY:Create the requirements document
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
DTSTAMP:19970717T200000Z
|
||||
STATUS:NEEDS-ACTION
|
||||
END:VTODO
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected], [email protected], [email protected]
|
||||
summary: invite
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 867776400, tz_id: 32768 })
|
||||
summary.summary: Text("Create the requirements document")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REQUEST
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTODO
|
||||
PRIORITY:1
|
||||
STATUS:NEEDS-ACTION
|
||||
SUMMARY:Create the requirements document
|
||||
DUE:19970722T170000Z
|
||||
DTSTART:19970701T170000Z
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:0
|
||||
END:VTODO
|
||||
END:VCALENDAR
|
||||
|
||||
# Send iTIP request to the attendees
|
||||
> send
|
||||
|
||||
# Make sure B received the todo
|
||||
> get [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTODO
|
||||
PRIORITY:1
|
||||
STATUS:NEEDS-ACTION
|
||||
SUMMARY:Create the requirements document
|
||||
DUE:19970722T170000Z
|
||||
DTSTART:19970701T170000Z
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:0
|
||||
END:VTODO
|
||||
END:VCALENDAR
|
||||
|
||||
# "B" accepts the to-do.
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTODO
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
COMMENT:I'll send you my input by email
|
||||
SEQUENCE:1
|
||||
PRIORITY:1
|
||||
STATUS:IN-PROCESS
|
||||
DTSTART:19970701T170000Z
|
||||
DUE:19970722T170000Z
|
||||
DTSTAMP:19970717T203000Z
|
||||
END:VTODO
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: rsvp ACCEPTED
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 867776400, tz_id: 32768 })
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REPLY
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTODO
|
||||
STATUS:IN-PROCESS
|
||||
DUE:19970722T170000Z
|
||||
DTSTART:19970701T170000Z
|
||||
ATTENDEE;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:1
|
||||
REQUEST-STATUS:2.0;Success
|
||||
END:VTODO
|
||||
END:VCALENDAR
|
||||
|
||||
# Send iTIP reply to the organizer
|
||||
> send
|
||||
|
||||
# Make sure "A" received the reply
|
||||
> get [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REQUEST
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTODO
|
||||
PRIORITY:1
|
||||
STATUS:IN-PROCESS
|
||||
SUMMARY:Create the requirements document
|
||||
DUE:19970722T170000Z
|
||||
DTSTART:19970701T170000Z
|
||||
ATTENDEE;PARTSTAT=ACCEPTED;SCHEDULE-STATUS=2.0:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:1
|
||||
SEQUENCE:0
|
||||
END:VTODO
|
||||
END:VCALENDAR
|
||||
|
||||
# "B" updates percent completion of the to-do.
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTODO
|
||||
ORGANIZER:mailto:[email protected]
|
||||
PERCENT-COMPLETE:75
|
||||
ATTENDEE;PARTSTAT=IN-PROCESS:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
COMMENT:I'll send you my input by email
|
||||
SEQUENCE:1
|
||||
PRIORITY:1
|
||||
STATUS:IN-PROCESS
|
||||
DTSTART:19970701T170000Z
|
||||
DUE:19970722T170000Z
|
||||
DTSTAMP:19970717T203000Z
|
||||
END:VTODO
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: rsvp IN-PROCESS
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 867776400, tz_id: 32768 })
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REPLY
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTODO
|
||||
PERCENT-COMPLETE:75
|
||||
STATUS:IN-PROCESS
|
||||
DUE:19970722T170000Z
|
||||
DTSTART:19970701T170000Z
|
||||
ATTENDEE;PARTSTAT=IN-PROCESS:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:1
|
||||
REQUEST-STATUS:2.0;Success
|
||||
END:VTODO
|
||||
END:VCALENDAR
|
||||
|
||||
# Send iTIP reply to the organizer
|
||||
> send
|
||||
|
||||
# Make sure "A" received the reply
|
||||
> get [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REQUEST
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTODO
|
||||
PERCENT-COMPLETE:75
|
||||
PRIORITY:1
|
||||
STATUS:IN-PROCESS
|
||||
SUMMARY:Create the requirements document
|
||||
DUE:19970722T170000Z
|
||||
DTSTART:19970701T170000Z
|
||||
ATTENDEE;PARTSTAT=IN-PROCESS;SCHEDULE-STATUS=2.0:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:1
|
||||
SEQUENCE:0
|
||||
END:VTODO
|
||||
END:VCALENDAR
|
||||
|
||||
# "D" completed the to-do.
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTODO
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;PARTSTAT=COMPLETED:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
COMMENT:I'll send you my input by email
|
||||
SEQUENCE:1
|
||||
PRIORITY:1
|
||||
DTSTART:19970701T170000Z
|
||||
DUE:19970722T170000Z
|
||||
DTSTAMP:19970717T203000Z
|
||||
END:VTODO
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: rsvp COMPLETED
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 867776400, tz_id: 32768 })
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REPLY
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTODO
|
||||
DUE:19970722T170000Z
|
||||
DTSTART:19970701T170000Z
|
||||
ATTENDEE;PARTSTAT=COMPLETED:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:1
|
||||
REQUEST-STATUS:2.0;Success
|
||||
END:VTODO
|
||||
END:VCALENDAR
|
||||
|
||||
# Send iTIP reply to the organizer
|
||||
> send
|
||||
|
||||
# Make sure "A" received the reply
|
||||
> get [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REQUEST
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTODO
|
||||
PERCENT-COMPLETE:75
|
||||
PRIORITY:1
|
||||
STATUS:IN-PROCESS
|
||||
SUMMARY:Create the requirements document
|
||||
DUE:19970722T170000Z
|
||||
DTSTART:19970701T170000Z
|
||||
ATTENDEE;PARTSTAT=COMPLETED;SCHEDULE-STATUS=2.0:mailto:[email protected]
|
||||
ATTENDEE;PARTSTAT=IN-PROCESS;SCHEDULE-STATUS=2.0:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:1
|
||||
SEQUENCE:0
|
||||
END:VTODO
|
||||
END:VCALENDAR
|
||||
|
||||
# Recurring to-do request
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTODO
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;ROLE=CHAIR:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:[email protected]
|
||||
RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR
|
||||
DTSTART:19980101T100000Z
|
||||
DUE:19980103T100000Z
|
||||
SUMMARY:Send Status Reports to Area Managers
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
DTSTAMP:19970717T200000Z
|
||||
STATUS:NEEDS-ACTION
|
||||
PRIORITY:1
|
||||
END:VTODO
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected], [email protected]
|
||||
summary: update REQUEST
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 883648800, tz_id: 32768 })
|
||||
summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Monthly, until: None, count: Some(10), interval: None, bysecond: [], byminute: [], byhour: [], byday: [ICalendarDay { ordwk: Some(1), weekday: Friday }], bymonthday: [], byyearday: [], byweekno: [], bymonth: [], bysetpos: [], wkst: None, rscale: None, skip: None })
|
||||
summary.summary: Text("Send Status Reports to Area Managers")
|
||||
~summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
~summary.dtstart: Time(ItipTime { start: 867776400, tz_id: 32768 })
|
||||
~summary.summary: Text("Create the requirements document")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REQUEST
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTODO
|
||||
PRIORITY:1
|
||||
STATUS:NEEDS-ACTION
|
||||
SUMMARY:Send Status Reports to Area Managers
|
||||
DUE:19980103T100000Z
|
||||
DTSTART:19980101T100000Z
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION:mailto:b@example
|
||||
.com
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION:mailto:d@example
|
||||
.com
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR
|
||||
DTSTAMP:0
|
||||
SEQUENCE:1
|
||||
END:VTODO
|
||||
END:VCALENDAR
|
||||
================================
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: cancel
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 867776400, tz_id: 32768 })
|
||||
summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Monthly, until: None, count: Some(10), interval: None, bysecond: [], byminute: [], byhour: [], byday: [ICalendarDay { ordwk: Some(1), weekday: Friday }], bymonthday: [], byyearday: [], byweekno: [], bymonth: [], bysetpos: [], wkst: None, rscale: None, skip: None })
|
||||
summary.summary: Text("Create the requirements document")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:CANCEL
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTODO
|
||||
STATUS:CANCELLED
|
||||
SUMMARY:Create the requirements document
|
||||
DUE:19970722T170000Z
|
||||
DTSTART:19970701T170000Z
|
||||
ATTENDEE;RSVP=TRUE:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:1
|
||||
END:VTODO
|
||||
END:VCALENDAR
|
||||
|
||||
> send
|
||||
|
||||
# Make sure "C" received the cancel request
|
||||
> get [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTODO
|
||||
PRIORITY:1
|
||||
STATUS:CANCELLED
|
||||
SUMMARY:Create the requirements document
|
||||
DUE:19970722T170000Z
|
||||
DTSTART:19970701T170000Z
|
||||
ATTENDEE;RSVP=TRUE:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
END:VTODO
|
||||
END:VCALENDAR
|
||||
|
||||
# Make sure "B" received the updated to-do
|
||||
> get [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTODO
|
||||
COMMENT:I'll send you my input by email
|
||||
PRIORITY:1
|
||||
STATUS:NEEDS-ACTION
|
||||
SUMMARY:Send Status Reports to Area Managers
|
||||
DUE:19980103T100000Z
|
||||
DTSTART:19980101T100000Z
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION:mailto:b@example
|
||||
.com
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION:mailto:d@example
|
||||
.com
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR
|
||||
DTSTAMP:0
|
||||
SEQUENCE:1
|
||||
END:VTODO
|
||||
END:VCALENDAR
|
||||
|
||||
# Reply to an instance of a recurring to-do
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTODO
|
||||
COMMENT:I'll send you my input by email
|
||||
PRIORITY:1
|
||||
STATUS:NEEDS-ACTION
|
||||
SUMMARY:Send Status Reports to Area Managers
|
||||
DUE:19980103T100000Z
|
||||
DTSTART:19980101T100000Z
|
||||
ATTENDEE;ROLE=CHAIR;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION:mailto:b@example
|
||||
.com
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION:mailto:d@example
|
||||
.com
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR
|
||||
DTSTAMP:19970717T233000Z
|
||||
SEQUENCE:1
|
||||
END:VTODO
|
||||
BEGIN:VTODO
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;PARTSTAT=IN-PROCESS:mailto:[email protected]
|
||||
PERCENT-COMPLETE:75
|
||||
UID:[email protected]
|
||||
DTSTAMP:19970717T233000Z
|
||||
RECURRENCE-ID:19980101T170000Z
|
||||
SEQUENCE:1
|
||||
END:VTODO
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: rsvp NEEDS-ACTION
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 883648800, tz_id: 32768 })
|
||||
summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Monthly, until: None, count: Some(10), interval: None, bysecond: [], byminute: [], byhour: [], byday: [ICalendarDay { ordwk: Some(1), weekday: Friday }], bymonthday: [], byyearday: [], byweekno: [], bymonth: [], bysetpos: [], wkst: None, rscale: None, skip: None })
|
||||
summary.summary: Text("Send Status Reports to Area Managers")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REPLY
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTODO
|
||||
PERCENT-COMPLETE:75
|
||||
ATTENDEE;PARTSTAT=IN-PROCESS:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
RECURRENCE-ID:19980101T170000Z
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:1
|
||||
REQUEST-STATUS:2.0;Success
|
||||
END:VTODO
|
||||
END:VCALENDAR
|
||||
|
||||
> send
|
||||
|
||||
# Make sure "A" received the reply
|
||||
> get [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTODO
|
||||
PRIORITY:1
|
||||
STATUS:NEEDS-ACTION
|
||||
SUMMARY:Send Status Reports to Area Managers
|
||||
DUE:19980103T100000Z
|
||||
DTSTART:19980101T100000Z
|
||||
ATTENDEE;ROLE=CHAIR:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
RRULE:FREQ=MONTHLY;COUNT=10;BYDAY=1FR
|
||||
DTSTAMP:1
|
||||
SEQUENCE:1
|
||||
END:VTODO
|
||||
BEGIN:VTODO
|
||||
PERCENT-COMPLETE:75
|
||||
ATTENDEE;PARTSTAT=IN-PROCESS:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
RECURRENCE-ID:19980101T170000Z
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:1
|
||||
END:VTODO
|
||||
END:VCALENDAR
|
||||
|
||||
|
||||
@@ -0,0 +1,439 @@
|
||||
# RFC6638 - Recurring Event Scheduling
|
||||
|
||||
# Organizer invites participant to a recurring event
|
||||
> put [email protected] 9263504FD3AD
|
||||
BEGIN:VCALENDAR
|
||||
VERSION:2.0
|
||||
PRODID:-//Example Corp.//CalDAV Client//EN
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Montreal
|
||||
BEGIN:STANDARD
|
||||
DTSTART:20071104T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
|
||||
TZNAME:EST
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0500
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
DTSTART:20070311T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
|
||||
TZNAME:EDT
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0400
|
||||
END:DAYLIGHT
|
||||
END:VTIMEZONE
|
||||
BEGIN:VEVENT
|
||||
UID:9263504FD3AD
|
||||
SEQUENCE:0
|
||||
DTSTAMP:20090602T185254Z
|
||||
DTSTART;TZID=America/Montreal:20090601T150000
|
||||
DTEND;TZID=America/Montreal:20090601T160000
|
||||
RRULE:FREQ=DAILY;INTERVAL=1;COUNT=5
|
||||
TRANSP:OPAQUE
|
||||
SUMMARY:Review Internet-Draft
|
||||
ORGANIZER;CN="Cyrus Daboo":mailto:[email protected]
|
||||
ATTENDEE;CN="Cyrus Daboo";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;CN="Bernard Desruisseaux";CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:[email protected]
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: invite
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: Some("Cyrus Daboo"), is_organizer: true }, ItipParticipant { email: "[email protected]", name: Some("Bernard Desruisseaux"), is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 1243882800, tz_id: 167 })
|
||||
summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Daily, until: None, count: Some(5), interval: Some(1), bysecond: [], byminute: [], byhour: [], byday: [], bymonthday: [], byyearday: [], byweekno: [], bymonth: [], bysetpos: [], wkst: None, rscale: None, skip: None })
|
||||
summary.summary: Text("Review Internet-Draft")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REQUEST
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Review Internet-Draft
|
||||
DTEND;TZID=America/Montreal:20090601T160000
|
||||
DTSTART;TZID=America/Montreal:20090601T150000
|
||||
TRANSP:OPAQUE
|
||||
ATTENDEE;CN="Bernard Desruisseaux";CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;
|
||||
RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;CN="Cyrus Daboo";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:cyrus@
|
||||
example.com
|
||||
ORGANIZER;CN="Cyrus Daboo":mailto:[email protected]
|
||||
UID:9263504FD3AD
|
||||
RRULE:FREQ=DAILY;COUNT=5;INTERVAL=1
|
||||
DTSTAMP:0
|
||||
SEQUENCE:0
|
||||
END:VEVENT
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Montreal
|
||||
BEGIN:STANDARD
|
||||
DTSTART:20071104T020000
|
||||
TZNAME:EST
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0500
|
||||
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
DTSTART:20070311T020000
|
||||
TZNAME:EDT
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0400
|
||||
RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3
|
||||
END:DAYLIGHT
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
||||
|
||||
# Send iTIP message to participant
|
||||
> send
|
||||
|
||||
# Make sure the participant receives the event
|
||||
> get [email protected] 9263504FD3AD
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Review Internet-Draft
|
||||
DTEND;TZID=America/Montreal:20090601T160000
|
||||
DTSTART;TZID=America/Montreal:20090601T150000
|
||||
TRANSP:OPAQUE
|
||||
ATTENDEE;CN="Bernard Desruisseaux";CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;
|
||||
RSVP=TRUE;PARTSTAT=NEEDS-ACTION:mailto:[email protected]
|
||||
ATTENDEE;CN="Cyrus Daboo";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:cyrus@
|
||||
example.com
|
||||
ORGANIZER;CN="Cyrus Daboo":mailto:[email protected]
|
||||
UID:9263504FD3AD
|
||||
RRULE:FREQ=DAILY;COUNT=5;INTERVAL=1
|
||||
DTSTAMP:0
|
||||
SEQUENCE:0
|
||||
END:VEVENT
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Montreal
|
||||
BEGIN:STANDARD
|
||||
DTSTART:20071104T020000
|
||||
TZNAME:EST
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0500
|
||||
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
DTSTART:20070311T020000
|
||||
TZNAME:EDT
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0400
|
||||
RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3
|
||||
END:DAYLIGHT
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
||||
|
||||
# Participant declines an instance of the recurring event
|
||||
> put [email protected] 9263504FD3AD
|
||||
BEGIN:VCALENDAR
|
||||
VERSION:2.0
|
||||
PRODID:-//Example Corp.//CalDAV Client//EN
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Montreal
|
||||
BEGIN:STANDARD
|
||||
DTSTART:20071104T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
|
||||
TZNAME:EST
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0500
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
DTSTART:20070311T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
|
||||
TZNAME:EDT
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0400
|
||||
END:DAYLIGHT
|
||||
END:VTIMEZONE
|
||||
BEGIN:VEVENT
|
||||
UID:9263504FD3AD
|
||||
SEQUENCE:1
|
||||
DTSTAMP:20090602T185254Z
|
||||
DTSTART;TZID=America/Montreal:20090601T150000
|
||||
DTEND;TZID=America/Montreal:20090601T160000
|
||||
RRULE:FREQ=DAILY;INTERVAL=1;COUNT=5
|
||||
TRANSP:OPAQUE
|
||||
SUMMARY:Review Internet-Draft
|
||||
ORGANIZER;CN="Cyrus Daboo":mailto:[email protected]
|
||||
ATTENDEE;CN="Cyrus Daboo";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;CN="Bernard Desruisseaux";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED;ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:[email protected]
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
UID:9263504FD3AD
|
||||
SEQUENCE:1
|
||||
DTSTAMP:20090603T183823Z
|
||||
RECURRENCE-ID;TZID=America/Montreal:20090602T150000
|
||||
DTSTART;TZID=America/Montreal:20090602T150000
|
||||
DTEND;TZID=America/Montreal:20090602T160000
|
||||
TRANSP:TRANSPARENT
|
||||
SUMMARY:Review Internet-Draft
|
||||
ORGANIZER;CN="Cyrus Daboo":mailto:[email protected]
|
||||
ATTENDEE;CN="Cyrus Daboo";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;CN="Bernard Desruisseaux";CUTYPE=INDIVIDUAL;PARTSTAT=DECLINED;ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:[email protected]
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: rsvp ACCEPTED
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: Some("Cyrus Daboo"), is_organizer: true }, ItipParticipant { email: "[email protected]", name: Some("Bernard Desruisseaux"), is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 1243882800, tz_id: 167 })
|
||||
summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Daily, until: None, count: Some(5), interval: Some(1), bysecond: [], byminute: [], byhour: [], byday: [], bymonthday: [], byyearday: [], byweekno: [], bymonth: [], bysetpos: [], wkst: None, rscale: None, skip: None })
|
||||
summary.summary: Text("Review Internet-Draft")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REPLY
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Review Internet-Draft
|
||||
DTEND;TZID=America/Montreal:20090601T160000
|
||||
DTSTART;TZID=America/Montreal:20090601T150000
|
||||
ATTENDEE;CN="Bernard Desruisseaux";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED;ROLE
|
||||
=REQ-PARTICIPANT;RSVP=TRUE:mailto:[email protected]
|
||||
ORGANIZER;CN="Cyrus Daboo":mailto:[email protected]
|
||||
UID:9263504FD3AD
|
||||
DTSTAMP:0
|
||||
SEQUENCE:1
|
||||
REQUEST-STATUS:2.0;Success
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Review Internet-Draft
|
||||
DTEND;TZID=America/Montreal:20090602T160000
|
||||
DTSTART;TZID=America/Montreal:20090602T150000
|
||||
ATTENDEE;CN="Bernard Desruisseaux";CUTYPE=INDIVIDUAL;PARTSTAT=DECLINED;ROLE
|
||||
=REQ-PARTICIPANT;RSVP=TRUE:mailto:[email protected]
|
||||
ORGANIZER;CN="Cyrus Daboo":mailto:[email protected]
|
||||
RECURRENCE-ID;TZID=America/Montreal:20090602T150000
|
||||
UID:9263504FD3AD
|
||||
DTSTAMP:0
|
||||
SEQUENCE:1
|
||||
REQUEST-STATUS:2.0;Success
|
||||
END:VEVENT
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Montreal
|
||||
BEGIN:STANDARD
|
||||
DTSTART:20071104T020000
|
||||
TZNAME:EST
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0500
|
||||
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
DTSTART:20070311T020000
|
||||
TZNAME:EDT
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0400
|
||||
RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3
|
||||
END:DAYLIGHT
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
||||
|
||||
# Send iTIP message to organizer
|
||||
> send
|
||||
|
||||
# Organizer receives the response
|
||||
> get [email protected] 9263504FD3AD
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example Corp.//CalDAV Client//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Review Internet-Draft
|
||||
DTEND;TZID=America/Montreal:20090601T160000
|
||||
DTSTART;TZID=America/Montreal:20090601T150000
|
||||
TRANSP:OPAQUE
|
||||
ATTENDEE;CN="Bernard Desruisseaux";CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;
|
||||
RSVP=TRUE;PARTSTAT=ACCEPTED;SCHEDULE-STATUS=2.0:mailto:[email protected]
|
||||
ATTENDEE;CN="Cyrus Daboo";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:cyrus@
|
||||
example.com
|
||||
ORGANIZER;CN="Cyrus Daboo":mailto:[email protected]
|
||||
UID:9263504FD3AD
|
||||
RRULE:FREQ=DAILY;COUNT=5;INTERVAL=1
|
||||
DTSTAMP:1
|
||||
SEQUENCE:0
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
ATTENDEE;CN="Bernard Desruisseaux";CUTYPE=INDIVIDUAL;PARTSTAT=DECLINED;ROLE
|
||||
=REQ-PARTICIPANT;RSVP=TRUE:mailto:[email protected]
|
||||
ORGANIZER;CN="Cyrus Daboo":mailto:[email protected]
|
||||
RECURRENCE-ID;TZID=America/Montreal:20090602T150000
|
||||
UID:9263504FD3AD
|
||||
DTSTAMP:0
|
||||
SEQUENCE:1
|
||||
END:VEVENT
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Montreal
|
||||
BEGIN:STANDARD
|
||||
DTSTART:20071104T020000
|
||||
TZNAME:EST
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0500
|
||||
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
DTSTART:20070311T020000
|
||||
TZNAME:EDT
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0400
|
||||
RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3
|
||||
END:DAYLIGHT
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
||||
|
||||
# Participant removes an instance of the recurring event
|
||||
> put [email protected] 9263504FD3AD
|
||||
BEGIN:VCALENDAR
|
||||
VERSION:2.0
|
||||
PRODID:-//Example Corp.//CalDAV Client//EN
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Montreal
|
||||
BEGIN:STANDARD
|
||||
DTSTART:20071104T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
|
||||
TZNAME:EST
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0500
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
DTSTART:20070311T020000
|
||||
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
|
||||
TZNAME:EDT
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0400
|
||||
END:DAYLIGHT
|
||||
END:VTIMEZONE
|
||||
BEGIN:VEVENT
|
||||
UID:9263504FD3AD
|
||||
SEQUENCE:1
|
||||
DTSTAMP:20090602T185254Z
|
||||
DTSTART;TZID=America/Montreal:20090601T150000
|
||||
DTEND;TZID=America/Montreal:20090601T160000
|
||||
RRULE:FREQ=DAILY;INTERVAL=1;COUNT=5
|
||||
EXDATE;TZID=America/Montreal:20090603T150000
|
||||
TRANSP:OPAQUE
|
||||
SUMMARY:Review Internet-Draft
|
||||
ORGANIZER;CN="Cyrus Daboo":mailto:[email protected]
|
||||
ATTENDEE;CN="Cyrus Daboo";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;CN="Bernard Desruisseaux";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED;ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:[email protected]
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
UID:9263504FD3AD
|
||||
SEQUENCE:1
|
||||
DTSTAMP:20090603T183823Z
|
||||
RECURRENCE-ID;TZID=America/Montreal:20090602T150000
|
||||
DTSTART;TZID=America/Montreal:20090602T150000
|
||||
DTEND;TZID=America/Montreal:20090602T160000
|
||||
TRANSP:TRANSPARENT
|
||||
SUMMARY:Review Internet-Draft
|
||||
ORGANIZER;CN="Cyrus Daboo":mailto:[email protected]
|
||||
ATTENDEE;CN="Cyrus Daboo";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;CN="Bernard Desruisseaux";CUTYPE=INDIVIDUAL;PARTSTAT=DECLINED;ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:[email protected]
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: rsvp DECLINED
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: Some("Cyrus Daboo"), is_organizer: true }, ItipParticipant { email: "[email protected]", name: Some("Bernard Desruisseaux"), is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 1243882800, tz_id: 167 })
|
||||
summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Daily, until: None, count: Some(5), interval: Some(1), bysecond: [], byminute: [], byhour: [], byday: [], bymonthday: [], byyearday: [], byweekno: [], bymonth: [], bysetpos: [], wkst: None, rscale: None, skip: None })
|
||||
summary.summary: Text("Review Internet-Draft")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REPLY
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Review Internet-Draft
|
||||
DTEND;TZID=America/Montreal:20090601T160000
|
||||
DTSTART;TZID=America/Montreal:20090601T150000
|
||||
ATTENDEE;PARTSTAT=DECLINED:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
RECURRENCE-ID;TZID=America/Montreal:20090603T150000
|
||||
UID:9263504FD3AD
|
||||
DTSTAMP:0
|
||||
SEQUENCE:1
|
||||
END:VEVENT
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Montreal
|
||||
BEGIN:STANDARD
|
||||
DTSTART:20071104T020000
|
||||
TZNAME:EST
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0500
|
||||
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
DTSTART:20070311T020000
|
||||
TZNAME:EDT
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0400
|
||||
RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3
|
||||
END:DAYLIGHT
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
||||
|
||||
# Send iTIP message to organizer
|
||||
> send
|
||||
|
||||
# Organizer receives the response
|
||||
> get [email protected] 9263504FD3AD
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example Corp.//CalDAV Client//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
ATTENDEE;PARTSTAT=DECLINED:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
RECURRENCE-ID;TZID=America/Montreal:20090603T150000
|
||||
UID:9263504FD3AD
|
||||
DTSTAMP:0
|
||||
SEQUENCE:1
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Review Internet-Draft
|
||||
DTEND;TZID=America/Montreal:20090601T160000
|
||||
DTSTART;TZID=America/Montreal:20090601T150000
|
||||
TRANSP:OPAQUE
|
||||
ATTENDEE;CN="Bernard Desruisseaux";CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;
|
||||
RSVP=TRUE;PARTSTAT=ACCEPTED;SCHEDULE-STATUS=2.0:mailto:[email protected]
|
||||
ATTENDEE;CN="Cyrus Daboo";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:cyrus@
|
||||
example.com
|
||||
ORGANIZER;CN="Cyrus Daboo":mailto:[email protected]
|
||||
UID:9263504FD3AD
|
||||
RRULE:FREQ=DAILY;COUNT=5;INTERVAL=1
|
||||
DTSTAMP:1
|
||||
SEQUENCE:0
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
ATTENDEE;CN="Bernard Desruisseaux";CUTYPE=INDIVIDUAL;PARTSTAT=DECLINED;ROLE
|
||||
=REQ-PARTICIPANT;RSVP=TRUE:mailto:[email protected]
|
||||
ORGANIZER;CN="Cyrus Daboo":mailto:[email protected]
|
||||
RECURRENCE-ID;TZID=America/Montreal:20090602T150000
|
||||
UID:9263504FD3AD
|
||||
DTSTAMP:0
|
||||
SEQUENCE:1
|
||||
END:VEVENT
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:America/Montreal
|
||||
BEGIN:STANDARD
|
||||
DTSTART:20071104T020000
|
||||
TZNAME:EST
|
||||
TZOFFSETFROM:-0400
|
||||
TZOFFSETTO:-0500
|
||||
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
DTSTART:20070311T020000
|
||||
TZNAME:EDT
|
||||
TZOFFSETFROM:-0500
|
||||
TZOFFSETTO:-0400
|
||||
RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3
|
||||
END:DAYLIGHT
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,218 @@
|
||||
# RFC6638 - Simple Event Scheduling
|
||||
|
||||
# Organizer Inviting Multiple Attendees
|
||||
> put [email protected] 9263504FD3AD
|
||||
BEGIN:VCALENDAR
|
||||
VERSION:2.0
|
||||
PRODID:-//Example Corp.//CalDAV Client//EN
|
||||
BEGIN:VEVENT
|
||||
UID:9263504FD3AD
|
||||
SEQUENCE:0
|
||||
DTSTAMP:20090602T185254Z
|
||||
DTSTART:20090602T160000Z
|
||||
DTEND:20090602T170000Z
|
||||
TRANSP:OPAQUE
|
||||
SUMMARY:Lunch
|
||||
ORGANIZER;CN="Cyrus Daboo":mailto:[email protected]
|
||||
ATTENDEE;CN="Cyrus Daboo";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;CN="Wilfredo Sanchez Vega";CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:[email protected]
|
||||
ATTENDEE;CN="Bernard Desruisseaux";CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:[email protected]
|
||||
ATTENDEE;CN="Mike Douglass";CUTYPE=INDIVIDUAL;RSVP=TRUE:mailto:[email protected]
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected], [email protected], [email protected]
|
||||
summary: invite
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: Some("Cyrus Daboo"), is_organizer: true }, ItipParticipant { email: "[email protected]", name: Some("Bernard Desruisseaux"), is_organizer: false }, ItipParticipant { email: "[email protected]", name: Some("Mike Douglass"), is_organizer: false }, ItipParticipant { email: "[email protected]", name: Some("Wilfredo Sanchez Vega"), is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 1243958400, tz_id: 32768 })
|
||||
summary.summary: Text("Lunch")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REQUEST
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Lunch
|
||||
DTEND:20090602T170000Z
|
||||
DTSTART:20090602T160000Z
|
||||
TRANSP:OPAQUE
|
||||
ATTENDEE;CN="Bernard Desruisseaux";CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;
|
||||
ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:[email protected]
|
||||
ATTENDEE;CN="Cyrus Daboo";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:cyrus@
|
||||
example.com
|
||||
ATTENDEE;CN="Mike Douglass";CUTYPE=INDIVIDUAL;RSVP=TRUE;PARTSTAT=NEEDS-ACTI
|
||||
ON:mailto:[email protected]
|
||||
ATTENDEE;CN="Wilfredo Sanchez Vega";CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION
|
||||
;ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:[email protected]
|
||||
ORGANIZER;CN="Cyrus Daboo":mailto:[email protected]
|
||||
UID:9263504FD3AD
|
||||
DTSTAMP:0
|
||||
SEQUENCE:0
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Make sure the initial request leaves the sequence number at 0
|
||||
> get [email protected] 9263504FD3AD
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example Corp.//CalDAV Client//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Lunch
|
||||
DTEND:20090602T170000Z
|
||||
DTSTART:20090602T160000Z
|
||||
TRANSP:OPAQUE
|
||||
ATTENDEE;CN="Bernard Desruisseaux";CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;
|
||||
ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:[email protected]
|
||||
ATTENDEE;CN="Cyrus Daboo";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:cyrus@
|
||||
example.com
|
||||
ATTENDEE;CN="Mike Douglass";CUTYPE=INDIVIDUAL;RSVP=TRUE:mailto:mike@example
|
||||
.org
|
||||
ATTENDEE;CN="Wilfredo Sanchez Vega";CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION
|
||||
;ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:[email protected]
|
||||
ORGANIZER;CN="Cyrus Daboo":mailto:[email protected]
|
||||
UID:9263504FD3AD
|
||||
DTSTAMP:1
|
||||
SEQUENCE:0
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Send iTIP message to attendees
|
||||
> send
|
||||
|
||||
# Make sure the message was received by the attendees
|
||||
> get [email protected] 9263504FD3AD
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Lunch
|
||||
DTEND:20090602T170000Z
|
||||
DTSTART:20090602T160000Z
|
||||
TRANSP:OPAQUE
|
||||
ATTENDEE;CN="Bernard Desruisseaux";CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;
|
||||
ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:[email protected]
|
||||
ATTENDEE;CN="Cyrus Daboo";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:cyrus@
|
||||
example.com
|
||||
ATTENDEE;CN="Mike Douglass";CUTYPE=INDIVIDUAL;RSVP=TRUE;PARTSTAT=NEEDS-ACTI
|
||||
ON:mailto:[email protected]
|
||||
ATTENDEE;CN="Wilfredo Sanchez Vega";CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION
|
||||
;ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:[email protected]
|
||||
ORGANIZER;CN="Cyrus Daboo":mailto:[email protected]
|
||||
UID:9263504FD3AD
|
||||
DTSTAMP:0
|
||||
SEQUENCE:0
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Wilfredo accepts the invitation
|
||||
> put [email protected] 9263504FD3AD
|
||||
BEGIN:VCALENDAR
|
||||
VERSION:2.0
|
||||
PRODID:-//Example Corp.//CalDAV Client//EN
|
||||
BEGIN:VEVENT
|
||||
UID:9263504FD3AD
|
||||
SEQUENCE:0
|
||||
DTSTAMP:20090602T185254Z
|
||||
DTSTART:20090602T160000Z
|
||||
DTEND:20090602T170000Z
|
||||
TRANSP:OPAQUE
|
||||
SUMMARY:Lunch
|
||||
ORGANIZER;CN="Cyrus Daboo":mailto:[email protected]
|
||||
ATTENDEE;CN="Cyrus Daboo";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
ATTENDEE;CN="Wilfredo Sanchez Vega";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED;ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:[email protected]
|
||||
ATTENDEE;CN="Bernard Desruisseaux";CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:[email protected]
|
||||
ATTENDEE;CN="Mike Douglass";CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;RSVP=TRUE:mailto:[email protected]
|
||||
BEGIN:VALARM
|
||||
TRIGGER:-PT15M
|
||||
ACTION:DISPLAY
|
||||
DESCRIPTION:Reminder
|
||||
END:VALARM
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Make sure the sequence number is not updated
|
||||
> get [email protected] 9263504FD3AD
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example Corp.//CalDAV Client//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Lunch
|
||||
DTEND:20090602T170000Z
|
||||
DTSTART:20090602T160000Z
|
||||
TRANSP:OPAQUE
|
||||
ATTENDEE;CN="Bernard Desruisseaux";CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;
|
||||
ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:[email protected]
|
||||
ATTENDEE;CN="Cyrus Daboo";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:cyrus@
|
||||
example.com
|
||||
ATTENDEE;CN="Mike Douglass";CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;RSVP=
|
||||
TRUE:mailto:[email protected]
|
||||
ATTENDEE;CN="Wilfredo Sanchez Vega";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED;
|
||||
ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:[email protected]
|
||||
ORGANIZER;CN="Cyrus Daboo":mailto:[email protected]
|
||||
UID:9263504FD3AD
|
||||
DTSTAMP:1
|
||||
SEQUENCE:0
|
||||
BEGIN:VALARM
|
||||
DESCRIPTION:Reminder
|
||||
ACTION:DISPLAY
|
||||
TRIGGER:-PT15M
|
||||
END:VALARM
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: rsvp ACCEPTED
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: Some("Cyrus Daboo"), is_organizer: true }, ItipParticipant { email: "[email protected]", name: Some("Bernard Desruisseaux"), is_organizer: false }, ItipParticipant { email: "[email protected]", name: Some("Mike Douglass"), is_organizer: false }, ItipParticipant { email: "[email protected]", name: Some("Wilfredo Sanchez Vega"), is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 1243958400, tz_id: 32768 })
|
||||
summary.summary: Text("Lunch")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REPLY
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Lunch
|
||||
DTEND:20090602T170000Z
|
||||
DTSTART:20090602T160000Z
|
||||
ATTENDEE;CN="Wilfredo Sanchez Vega";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED;
|
||||
ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:[email protected]
|
||||
ORGANIZER;CN="Cyrus Daboo":mailto:[email protected]
|
||||
UID:9263504FD3AD
|
||||
DTSTAMP:0
|
||||
SEQUENCE:0
|
||||
REQUEST-STATUS:2.0;Success
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
# Send ITIP message to organizer
|
||||
> send
|
||||
|
||||
# Make sure the message was received by the organizer
|
||||
> get [email protected] 9263504FD3AD
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example Corp.//CalDAV Client//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Lunch
|
||||
DTEND:20090602T170000Z
|
||||
DTSTART:20090602T160000Z
|
||||
TRANSP:OPAQUE
|
||||
ATTENDEE;CN="Bernard Desruisseaux";CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;
|
||||
ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:[email protected]
|
||||
ATTENDEE;CN="Cyrus Daboo";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:cyrus@
|
||||
example.com
|
||||
ATTENDEE;CN="Mike Douglass";CUTYPE=INDIVIDUAL;RSVP=TRUE:mailto:mike@example
|
||||
.org
|
||||
ATTENDEE;CN="Wilfredo Sanchez Vega";CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;
|
||||
RSVP=TRUE;PARTSTAT=ACCEPTED;SCHEDULE-STATUS=2.0:mailto:[email protected]
|
||||
m
|
||||
ORGANIZER;CN="Cyrus Daboo":mailto:[email protected]
|
||||
UID:9263504FD3AD
|
||||
DTSTAMP:1
|
||||
SEQUENCE:0
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
|
||||
@@ -0,0 +1,264 @@
|
||||
# Events stored without a VTIMEZONE component, as created over JMAP
|
||||
|
||||
# The REQUEST carries a generated definition for every referenced TZID
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B:mailto:[email protected]
|
||||
DTSTAMP:20260801T190000Z
|
||||
DTSTART;TZID=Europe/Berlin:20261110T160000
|
||||
DTEND;TZID=Europe/Berlin:20261110T170000
|
||||
SUMMARY:Berlin meeting
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: invite
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: Some("B"), is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 1794322800, tz_id: 433 })
|
||||
summary.summary: Text("Berlin meeting")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REQUEST
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Berlin meeting
|
||||
DTEND;TZID=Europe/Berlin:20261110T170000
|
||||
DTSTART;TZID=Europe/Berlin:20261110T160000
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B;PARTSTAT=NEEDS-ACTION:mailto:b@ex
|
||||
ample.com
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:0
|
||||
END:VEVENT
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:Europe/Berlin
|
||||
BEGIN:STANDARD
|
||||
DTSTART:20251231T010000
|
||||
TZNAME:CET
|
||||
TZOFFSETFROM:+0100
|
||||
TZOFFSETTO:+0100
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
DTSTART:20260329T020000
|
||||
TZNAME:CEST
|
||||
TZOFFSETFROM:+0100
|
||||
TZOFFSETTO:+0200
|
||||
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
DTSTART:20261025T030000
|
||||
TZNAME:CET
|
||||
TZOFFSETFROM:+0200
|
||||
TZOFFSETTO:+0100
|
||||
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
||||
|
||||
> send
|
||||
|
||||
# The REPLY sent by an attendee carries a definition of its own
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B;PARTSTAT=ACCEPTED:mailto:[email protected]
|
||||
DTSTAMP:20260801T190000Z
|
||||
DTSTART;TZID=Europe/Berlin:20261110T160000
|
||||
DTEND;TZID=Europe/Berlin:20261110T170000
|
||||
SUMMARY:Berlin meeting
|
||||
UID:[email protected]
|
||||
SEQUENCE:1
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: rsvp ACCEPTED
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: Some("B"), is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 1794322800, tz_id: 433 })
|
||||
summary.summary: Text("Berlin meeting")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REPLY
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Berlin meeting
|
||||
DTEND;TZID=Europe/Berlin:20261110T170000
|
||||
DTSTART;TZID=Europe/Berlin:20261110T160000
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B;PARTSTAT=ACCEPTED:mailto:b@exampl
|
||||
e.com
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:1
|
||||
REQUEST-STATUS:2.0;Success
|
||||
END:VEVENT
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:Europe/Berlin
|
||||
BEGIN:STANDARD
|
||||
DTSTART:20251231T010000
|
||||
TZNAME:CET
|
||||
TZOFFSETFROM:+0100
|
||||
TZOFFSETTO:+0100
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
DTSTART:20260329T020000
|
||||
TZNAME:CEST
|
||||
TZOFFSETFROM:+0100
|
||||
TZOFFSETTO:+0200
|
||||
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
DTSTART:20261025T030000
|
||||
TZNAME:CET
|
||||
TZOFFSETFROM:+0200
|
||||
TZOFFSETTO:+0100
|
||||
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
||||
|
||||
> send
|
||||
|
||||
# The CANCEL carries one too
|
||||
> delete [email protected] [email protected]
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: cancel
|
||||
summary.dtstart: Time(ItipTime { start: 1794322800, tz_id: 433 })
|
||||
summary.summary: Text("Berlin meeting")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:CANCEL
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
STATUS:CANCELLED
|
||||
SUMMARY:Berlin meeting
|
||||
DTEND;TZID=Europe/Berlin:20261110T170000
|
||||
DTSTART;TZID=Europe/Berlin:20261110T160000
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B;PARTSTAT=ACCEPTED;SCHEDULE-STATUS
|
||||
=2.0:mailto:[email protected]
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:1
|
||||
END:VEVENT
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:Europe/Berlin
|
||||
BEGIN:STANDARD
|
||||
DTSTART:20251231T010000
|
||||
TZNAME:CET
|
||||
TZOFFSETFROM:+0100
|
||||
TZOFFSETTO:+0100
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
DTSTART:20260329T020000
|
||||
TZNAME:CEST
|
||||
TZOFFSETFROM:+0100
|
||||
TZOFFSETTO:+0200
|
||||
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
|
||||
END:DAYLIGHT
|
||||
BEGIN:STANDARD
|
||||
DTSTART:20261025T030000
|
||||
TZNAME:CET
|
||||
TZOFFSETFROM:+0200
|
||||
TZOFFSETTO:+0100
|
||||
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
|
||||
END:STANDARD
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
||||
|
||||
> send
|
||||
|
||||
# A definition already present in the object is neither replaced nor duplicated
|
||||
> put [email protected] [email protected]
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Example/ExampleCalendarClient//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:Europe/Berlin
|
||||
BEGIN:STANDARD
|
||||
DTSTART:19701025T030000
|
||||
TZOFFSETFROM:+0200
|
||||
TZOFFSETTO:+0100
|
||||
TZNAME:CET
|
||||
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
DTSTART:19700329T020000
|
||||
TZOFFSETFROM:+0100
|
||||
TZOFFSETTO:+0200
|
||||
TZNAME:CEST
|
||||
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
|
||||
END:DAYLIGHT
|
||||
END:VTIMEZONE
|
||||
BEGIN:VEVENT
|
||||
ORGANIZER:mailto:[email protected]
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B:mailto:[email protected]
|
||||
DTSTAMP:20260801T190000Z
|
||||
DTSTART;TZID=Europe/Berlin:20261110T160000
|
||||
DTEND;TZID=Europe/Berlin:20261110T170000
|
||||
SUMMARY:Berlin meeting
|
||||
UID:[email protected]
|
||||
SEQUENCE:0
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
|
||||
> expect
|
||||
from: [email protected]
|
||||
to: [email protected]
|
||||
summary: invite
|
||||
summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: Some("B"), is_organizer: false }])
|
||||
summary.dtstart: Time(ItipTime { start: 1794322800, tz_id: 433 })
|
||||
summary.summary: Text("Berlin meeting")
|
||||
BEGIN:VCALENDAR
|
||||
METHOD:REQUEST
|
||||
PRODID:-//Stalwart Labs LLC//Stalwart Server//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:Berlin meeting
|
||||
DTEND;TZID=Europe/Berlin:20261110T170000
|
||||
DTSTART;TZID=Europe/Berlin:20261110T160000
|
||||
ATTENDEE;RSVP=TRUE;CUTYPE=INDIVIDUAL;CN=B;PARTSTAT=NEEDS-ACTION:mailto:b@ex
|
||||
ample.com
|
||||
ORGANIZER:mailto:[email protected]
|
||||
UID:[email protected]
|
||||
DTSTAMP:0
|
||||
SEQUENCE:0
|
||||
END:VEVENT
|
||||
BEGIN:VTIMEZONE
|
||||
TZID:Europe/Berlin
|
||||
BEGIN:STANDARD
|
||||
DTSTART:19701025T030000
|
||||
TZNAME:CET
|
||||
TZOFFSETFROM:+0200
|
||||
TZOFFSETTO:+0100
|
||||
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
|
||||
END:STANDARD
|
||||
BEGIN:DAYLIGHT
|
||||
DTSTART:19700329T020000
|
||||
TZNAME:CEST
|
||||
TZOFFSETFROM:+0100
|
||||
TZOFFSETTO:+0200
|
||||
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
|
||||
END:DAYLIGHT
|
||||
END:VTIMEZONE
|
||||
END:VCALENDAR
|
||||
|
||||
> send
|
||||
|
||||
Reference in New Issue
Block a user