invitation

An  invitation  is an optional feature of an event post (an event with invitations), or a reply to an event post that also notifies a list of invitees that they've been invited to the event, or a special case of that, an RSVP to an event that also invites additional people to it. In all cases, the invitation is also the act of notifying (sending of webmentions to) one or more individuals that they have been invited to an event.

Why invitation posts
Why implement invitation posts?

So you can invite other people from your own site to others' events that they (indieweb community members like Aaron Parecki and Ben Werdmuller) post on their own sites.

Why RSVP with invitations
Why implement RSVP+invitation posts?

So when you RSVP to go to an event you can simultaneously invite others to join you.

Or when you RSVP maybe to an event you can invite others to consider going.

Or when you RSVP no to an event you can invite others to go in your place.

Why publish an event with invitations
Why implement event+invitation posts?

So when you post an event you can at the same time explicitly invite people to it and notify them accordingly.

How to
How-tos for invitations are very similar to the how tos for replies so we won't duplicate common info here.

Display invitations on an event
Whether from the event author or received via invitations from others, events can display invitations in various ways:
 * facepile of icons of those invited
 * perhaps only the most recent n of them (perhaps also limited to only those the (logged in with indieauth) viewer is (XFN) following/friends with) if this gets too large, with a link to expand or view all that are invited. E.g. [[File:event-attendees-facebook.png]] See event for more discussion about this silo screenshot demonstrating this.
 * at a minimum a list of those invited, perhaps time-order interleaved with other interactions with the event e.g. comments.

Publish an event with invitations
How to markup invitations inside and event and notify those invited:
 * 1) List the invitations with elements with   inside the h-event, that at a minimum link to the homepages of those invited.
 * 2) Send webmentions from the event post to the homepages of those invited.

(a complete h-event + u-invitee h-card markup example would be nice too)

Publish an invitation
1. Post a reply to an event and follow the microformats2 h-entry plus proposal to also post names/links to the invitees using the proposed  property:
 * - however this assumes that you want the invitee's name, hyperlinked, in your readable text. Other h-card markup is of course allowed. You may have multiple invitees inside a single h-entry. Duplicate this markup for each invitee inside the h-entry.

2. Send a webmention to the event post as you would for a reply to any post.

3. Send a webmention to each invitee's homepage (which you've presumably already linked as shown in the example)

See reply for more general details on posting replies.

(a complete h-entry + in-reply-to an event + u-invitee markup example would be nice too)

Publish an RSVP with invitations

 * 1) Publish an RSVP as you normally would, e.g. "going to ... " (event name / link)
 * 2) in the same post, append some text like "and inviting Alison, Brogan, Clayton" to join me,
 * 3) * where A, B, C are each mini h-cards of the form "" etc.
 * 4) Send same webmentions as above to event post and each invitee's homepage.

Update an invitation
Similarly, update your post and resend the webmentions.

See reply for more general details on updating replies.

Delete an invitation
Similarly, delete your invitation, resend the webmentions, and be prepared to return 410 GONE for your invitation permalink.

See reply for more general details on deleting replies.

Doug Beal

 * Invite to Seattle Area HWC
 * used invitation pattern
 * https://dougbeal.com/2018/07/22/hwc-salt-invite/
 * https://dougbeal.com/2018/07/22/homebrew-website-club-seattle-area-july-25th-dougbeal-3/
 * https://dougbeal.com/2018/07/20/2073/

gRegor Morrill
has posted invitation posts on gregorlove.com since 2018-10-05
 * https://gregorlove.com/2018/10/me-invites-you-to-virtual/

Kyle Mahan

 * In 2015 posted a standalone invitation on 2015-02-23 using Redwind

gRegor Morrill

 * has experimented with simple text invitations/inquiries, e.g. when asking 2014 attendees if they were planning to attend 2015.
 * http://gregorlove.com/2015/06/awolftune-are-you-coming-to/
 * http://gregorlove.com/2015/06/caseorganic-are-you-coming-to/

These notes did not include  markup because I was not familiar with it and was writing the notes with Twitter as the intended destination.

IndieWeb Implementations
In datetime order of implementation (earliest first)

Bridgy
Bridgy implemented this for Facebook event invitees on 2014/02/26. Example.

Facebook
Facebook has invitation posts but they typically only show-up in notifications.

In addition Facebook has a lot of different UI entry points to invite people to events.

Limitations:
 * "You're out of invites" dialog overlay when you've somehow invited too many people to an event. Unclear why/how this happens but you're then given an opportunity buy an ad!

User Flow
Here is a potential invitation post user flow (from IRC).


 * 1) Aaron posts an event
 * 2) Ben posts an invitation to the event, inviting Caseorganic
 * 3) Ben's site sends webmentions from that invitation post *both* to the event (on Aaron's site), and to Caseorganic (presumably a homepage webmention)
 * 4) Aaron's event post handles receiving that invitation webmention, using some heuristic as to whether to allow it or not (e.g. it could check if Ben is already invited, and the event allows attendees to invite others or it could check if Ben is a friend, and the event is open to friends and friends of friends or some other option - e.g. just allow all invitations for now)
 * 5) Caseorganic's site receives the webmention and adds it to the queue of site-level mentions. Upon retrieving the "source" of the webmention, it recognizes (per the home page link being marked up with u-invitee) it as invitation notification
 * 6) Caseorganic's site shows the invitation notification and provides the option to create an RSVP post in reply to the event post (and in reply to the invitation post!), perhaps even with simple buttons to RSVP "yes" "maybe" "no" "save" (tracking).
 * 7) Caseorganic posts an RSVP, which replies to (hyperlinks with in-reply-to) Aaron's event post, and to Ben's invitation post.
 * 8) Aaron's event post handles the RSVP mention as per already figured out on RSVP
 * 9) Ben's invitation post is updated to note that the invitation was replied to and accepted/tentative/declined (according to the p-rsvp of the RSVP post of yes/maybe/no).

Simplifications welcome.

POSSEing invitations
It makes sense to POSSE invitations for all the same reasons it makes sense to POSSE responses in general. I.e.

Why POSSE an invitation post?
 * POSSE thread reply to the POSSE copy of the event post (e.g. an @-reply to a tweet announcing the event), perhaps even posting the invitation as a multi-reply itself.
 * Provide another notification mechanism for indieweb invitees (e.g. @-mentions on Twitter, or notifications on Facebook)
 * Provide a way to for those without their own site to receive notification of the invitation

How to POSSE an invitation post:
 * Write invitation post prose in such a way that it reads just fine as text (per text/notification first design), e.g. based on Kyle's invitation post: "Hey @benwerd @erinjo @kevinmarks @snarfed @t, you should come to Homebrew Website Club 2015 February 25 https://kylewm.com/2015/02/homebrew-website-club-2015-february-25" either typed just like that, and have your site convert the @-mentions to name+site links in your indie invitation post, or "Hey Ben, Erin, Kevin, Ryan, Tantek you should come to Homebrew Website Club 2015 February 25 https://kylewm.com/2015/02/homebrew-website-club-2015-february-25" where it's expected that your creating UI auto-completes the people mentions with named links to their personal sites, and your POSSE-to-Twitter code converts those mentions to @-mentions.

POSSEing to Facebook
POSSEing invitations to Facebook must currently be done manually.

The Facebook API does not support sending invitations.

POSSEing to Twitter
POSSEing invitations to Twitter requires:
 * design the "plain text" version of your invitation post (to either create manually, or preferably automatically from your indie invitation post) - please share your design thoughts in this section.
 * convert any indieweb person links/preferences in your post to Twitter @-names
 * post resulting plain text as a tweet

Rabbithole - plain text *replies* to plain text invitation POSSE copies:
 * of course POSSEing an invitation to Twitter then begs the question of how do the people you @-invite that way @-reply with plain text RSVP semantics that are predictable/discoverable/readable/parsable?

Rabbithole 2 - plain text event / invitation / RSVP flow:
 * and then that begs the question of an entire plain text event creation, invitation, RSVP flow. that basically means figuring out the plain text authoring / interaction flow for all of https://www.w3.org/wiki/Socialwg/Social_API/User_stories#RSVPs_invitations_comments_to_an_event

Proxying an invitation
If an invitation post had an explicit in-reply-to to a Facebook POSSE copy of the event, and explicit u-invitee h-card markup of all invitees that included both their indieweb and Facebook profile URLs, then a POSSE proxy (like Bridgy Publish) could proxy the invitation to Facebook, if the FB API actually supported inviting people to events, which as of 2015-03-04 it does not :(

Proxying an invitation to Twitter may be possible (e.g. via Bridgy Publish) but requires defining / designing what a good "plain text" POSSE copy equivalent of an invitation post would/should look like.