diff --git a/52.md b/52.md index 898e011e..133e3b36 100644 --- a/52.md +++ b/52.md @@ -25,6 +25,7 @@ These tags are common to both types of calendar events: * `p` (optional, repeated) 32-bytes hex pubkey of a participant, optional recommended relay URL, and participant's role in the meeting * `t` (optional, repeated) hashtag to categorize calendar event * `r` (optional, repeated) references / links to web pages, documents, video calls, recorded videos, etc. +* `a` (repeated) reference tag to kind `31924` calendar event requesting to be included in Calendar The following tags are deprecated: @@ -32,6 +33,12 @@ The following tags are deprecated: Calendar events are _not_ required to be part of a [calendar](#calendar). +## Collaborative Calendar Event Requests + +Calendar events can include an `a` tag referencing a calendar (kind 31924) to request addition to that calendar. When a calendar event includes such a reference, clients should interpret this as a request to add the event to the referenced calendar by referencing it with an `a` tag. + +This enables collaborative calendar management where multiple users can contribute events to calendars they do not own, subject to the calendar owner's approval. + ### Date-Based Calendar Event This kind of calendar event starts on a date and ends before a different date in the future. Its use is appropriate for all-day or multi-day events where time and time zone hold no significance. e.g., anniversary, public holidays, vacation days. @@ -125,6 +132,8 @@ Aside from the common tags, this also takes the following tags: A calendar is a collection of calendar events, represented as a custom _addressable list_ event using kind `31924`. A user can have multiple calendars. One may create a calendar to segment calendar events for specific purposes. e.g., personal, work, travel, meetups, and conferences. +Calendars can accept event requests from other users. When calendar events reference a calendar via an `a` tag, this represents a request for inclusion. + The `.content` of these events should be a detailed description of the calendar. It is required but can be an empty string. * `d` (required) universally unique identifier. Generated by the client creating the calendar.