A's client software is configured to use foo.com's iCalendar server
A uses her client to create an event, list attendees, etc
A hits "OK" after setting up the event
A's client records the event in its local database
A's client generates an iCalendar object and sends it to foo.com's iCalendar server
The event is stored in foo.com's iCalendar server
When B next syncs, he receives notification of the event
B accepts (or declines) the invitation and clicks OK
If B accepts, the event is stored in the client's local database
B's client connects to foo.com's iCalendar server and sends the response
The response is stored in foo.com's iCalendar server
When A next syncs, she receives the response.
Final state: A and B both have the event in their local clients' databases, and the foo.com iCalendar server is also aware of the event
Steps 1-5 as for the previous example
The event is stored in foo.com's iCalendar server under A's name
However, foo.com's iCalendar server recognises that c@bar.com is not a local user
foo.com's iCalendar server generates an email with a text/calendar attachment and sends it to c@bar.com
C receives an email inviting her to an event with A
When C opens the attachment, it is loaded using C's preferred iCalendar client
C accepts (or declines) the invitation and clicks OK
If C accepts, the event is stored in the client's local database
C's client connects to bar.com's iCalendar server and sends the response
The event is recorded in bar.com's iCalendar server under C's name
The server recognises that a@foo.com is not a local user and generates an email with a text/calendar attachment, then sends it
A receives an email with the response
When A opens the attachment, it comes up in A's iCalendar client
A looks it over, clicks "OK, and it's recorded in A's client's local database
When A next syncs, the results are uploaded to foo.com's iCalendar server
Final state: A and C both have the event in their local clients' databases, and both the foo.com and bar.com iCalendar servers are aware of the event
As above, up to the point that E accepts and clicks OK
Since E has no iCalendar server, E's iCalendar client directly generates an email with a text/calendar attachment and sends it back to a@foo.com via baz.net's mail server
A receives the email, and continues as for the previous example
Final state: A and E have the event in their local client database, and it also exists on foo.com's server
E generates the event, which is sent to A via email
A acknowledges the invitation, clicks OK, and it goes up to foo.com's iCalendar server
foo.com's iCalendar server realises that e@baz.net is not local and emails the response
E receives the response and clicks OK to save it locally
Final state: as for previous example
As for "A invites E" up until the point that F receives the email
F has no client, so merely reads the textual part of the message
F responds manually by email to A
A reads the email, and notes the response manually in her iCalendar client
The results are sync'd up to foo.com's server in due course
Final state: A has the event in her local client database and it exists in foo.com's server. However, F has the event written down on a bit of paper or something.