How to implement RSVP Functionality?
A flag that is created with the Flag module is indeed a boolean variable (it is "on" of "off"). In this specific case you should implement 3 possible values, i.e.:


Participant
Maybe
No


Here is how you can get that implement by using 3 flags:


Flag 1, with something like these "Link text" values:


(to Flag) = Yes I plan to participate.
(to Unflag) = Please ignore my "Yes I plan to participate" from before.

Flag 2, with something like these "Link text" values:


(to Flag) = I'm not sure yet if I'll participate.
(to Unflag) = Please ignore my "I'm not sure yet if I'll participate" from before.

Flag 3, with something like these "Link text" values:


(to Flag) = No I will not participate.
(to Unflag) = Please ignore my "No I will not participate" from before.



If it fits your requirement, you could "assume" that for somebody who did  NOT set Flag1 and did not set Flag 2, the default applies which is something like "user does not want to participate, or didn't bother to let us know about it". That will avoid you need Flag 3.

If you're not familiar enough with the Flag module yet, I strongly recommend watching the set of 8 video tutorials about this module.

For more details, you may also want to refer to my answer to the question about Display unique text and button in nodes in a view in drupal 7. It contains the details about using the Entity Reference module for this, in combination with the Flag module, and possibly also the Rules module.