Amend NIP-52 to include e and p tags to calendar event RSVPs

This commit is contained in:
Terry Yiu 2024-08-06 23:55:47 -04:00
parent 738c4809a1
commit dea4bebf4b
No known key found for this signature in database
GPG Key ID: 108645AE8A19B71A

14
52.md
View File

@ -178,6 +178,12 @@ This NIP is intentionally not defining who is authorized to attend a calendar ev
This NIP is also intentionally not defining what happens if a calendar event changes after an RSVP is submitted. This NIP is also intentionally not defining what happens if a calendar event changes after an RSVP is submitted.
The RSVP MUST tag the calendar event it is in response to with an `e` tag on the calendar event's id.
The RSVP MAY tag use an `a` tag to the calendar event's event coordinates to indicate that the RSVP response could hold trueregardless of any future revisions to the calendar event. If the `a` tag is omitted, the author of the RSVP is explicitly indicating that its response holds true for only that specific revision of the calendar event from the `e` tag.
The RSVP MAY tag the author of the calendar event it is in response to using a `p` tag so that clients can easily query all RSVPs that pertain to the author.
### Format ### Format
The format uses a parameterized replaceable event kind `31925`. The format uses a parameterized replaceable event kind `31925`.
@ -185,10 +191,12 @@ The format uses a parameterized replaceable event kind `31925`.
The `.content` of these events is optional and should be a free-form note that adds more context to this calendar event response. The `.content` of these events is optional and should be a free-form note that adds more context to this calendar event response.
The list of tags are as follows: The list of tags are as follows:
* `a` (required) reference tag to kind `31922` or `31923` calendar event being responded to. * `e` (required) event tag to kind `31922` or `31923` calendar event being responded to.
* `a` (optional) reference tag to kind `31922` or `31923` calendar event being responded to.
* `d` (required) universally unique identifier. Generated by the client creating the calendar event RSVP. * `d` (required) universally unique identifier. Generated by the client creating the calendar event RSVP.
* `status` (required) `accepted`, `declined`, or `tentative`. Determines attendance status to the referenced calendar event. * `status` (required) `accepted`, `declined`, or `tentative`. Determines attendance status to the referenced calendar event.
* `fb` (optional) `free` or `busy`. Determines if the user would be free or busy for the duration of the calendar event. This tag must be omitted or ignored if the `status` label is set to `declined`. * `fb` (optional) `free` or `busy`. Determines if the user would be free or busy for the duration of the calendar event. This tag must be omitted or ignored if the `status` label is set to `declined`.
* `p` (optional) author of the calendar event being responded to.
```json ```json
{ {
@ -198,10 +206,12 @@ The list of tags are as follows:
"kind": 31925, "kind": 31925,
"content": "<note>", "content": "<note>",
"tags": [ "tags": [
["a", "<31922 or 31923>:<calendar event author pubkey>:<d-identifier of calendar event>", "<optional relay url>"], ["e", "<kind 31922 or 31923 event id", "<optional recommended relay URL>"]
["a", "<31922 or 31923>:<calendar event author pubkey>:<d-identifier of calendar event>", "<optional recommended relay URL>"],
["d", "<UUID>"], ["d", "<UUID>"],
["status", "<accepted/declined/tentative>"], ["status", "<accepted/declined/tentative>"],
["fb", "<free/busy>"], ["fb", "<free/busy>"],
["p", "<hex pubkey of kind 31922 or 31923 event>", "<optional recommended relay URL>"]
] ]
} }
``` ```