Usage notes: No User F is used to avoid possible misidentification as User E. No User H is used to avoid possible misidentification as User B. Basic test scenarios: A: Non-repeating cases: 1: User A PUBLISHes an event 2: User A invites Users B, C, D & E to a meeting: A: ATTACHments: 1: 0 2: 1 3: 1+ B: ALTREPs of: 1: DESCRIPTION 2: COMMENT 3: CONTACT 4: LOCATION 5: RESOURCES 6: SUMMARY 7: iana-token (TBD usage but legal) 8: x-token (TBD usage but legal) C: Including ALARMs: 1: AUDIO only 2: DISPLAY only 3: EMAIL only 4: PROCEDURE only 5: iana-token only (TBD value but non X- type) 6: x-token only (TBD value but anything made up is ok) 7+: Multiple alarm types (mix & match 1-6 above as desired) D: COMMENTs: 1: 0 2: 1 3: 1+ E: CONTACTs: 1: 0 2: 1 3: 1+ F: ATTENDEE property parameters: 1: CUTYPE: A: INDIVIDUAL (Default) B: GROUP C: RESOURCE D: ROOM E: UNKNOWN F: x-name (TBD case, perhaps SKiCAL?) G: iana-token (TBD case) H: Multiple values (Illegal case) 2: MEMBER A: 0 B: 1 C: 1+ 3: ROLE: A: CHAIR B: REQ-PARTICIPANT (Default) C: OPT-PARTICIPANT D: NON-PARTICIPANT E: x-name (TBD case, perhaps SKiCAL?) F: iana-token G: Multiple values (Illegal case) 4: PARTSTAT: A: NEEDS-ACTION (Default) B: ACCEPTED C: DECLINED D: TENTATIVE E: DELEGATED F: x-name (TBD case, perhaps SKiCAL?) G: iana-token H: COMPLETED (Illegal for VEVENTs) I: IN-PROCESS (Illegal for VEVENTs) J: Multiple values (Illegal case) 5: RSVP A: TRUE B: FALSE (Default) C: Any other value (Illegal case) D: Multiple values (Illegal case) 6: DELEGATED-TO A: 0 B: 1 C: 1+ 7: DELEGATED-FROM A: 0 B: 1 C: 1+ 8: SENT-BY A: 0 B: 1 C: 1+ (Illegal case) 9: CN A: 0 B: 1 C: 1+ (Illegal case) 10: DIR A: 0 B: 1 C: 1+ (Illegal case) 3: User B Accepts the invitation: A: but then Declines the invitation: B: but then requests a Refresh of the invitation: 4: User C Declines the invitation: A: but then Accepts the invitation: B: but then requests a Refresh of the invitation: 5: User D Counters with a new meeting time: A: User A Declines the Counter: B: User A Accepts the Counter and reschedules the meeting: 6: User E Delegates to User G: A: User G Accepts the invitation: B: User G Declines the invitation: C: User G requests a Refresh of the invitation: D: User G Counters with a new meeting time: E: User G Delegates to User I: 7: User A reschedules the meeting: Repeat permutations of 1-6 below here as necessary. B: Repeating cases: (Repeat A. subcases but expand for instance manipulation including entire set, 1 instance, THISANDPRIOR & THISANDFUTURE ranges Tests should include the following permutations: RDATEs only RRULEs only RDATEs and RRULEs RDATEs & EXDATEs only RRULEs & EXDATEs only RDATEs & EXRULEs only RRULEs & EXRULEs only RDATEs, EXDATEs & EXRULEs RRULEs, EXDATEs & EXRULEs RDATEs, RRULEs & EXDATEs RDATEs, RRULEs & EXRULEs RDATEs, RRULEs, EXDATEs & EXRULEs )