Skip to content

Kind 31924: Calendar ​

Overview ​

A calendar is a collection of calendar events, represented as a custom replaceable list event. Calendars allow users to organize their events by specific purposes such as personal, work, travel, meetups, or conferences. Users can have multiple calendars to segment their calendar events as needed.

Specification ​

PropertyValue
Kind Number31924
Event RangeReplaceable List
Defined inNIP-52

Content Format ​

The content field should contain a detailed description of the calendar. While required, it can be an empty string.

Tags ​

Tag NameDescriptionFormatRequired
dUniversally unique identifier (UUID)["d", "<UUID>"]Yes
titleCalendar title["title", "<calendar title>"]Yes
aReference to a calendar event["a", "<31922 or 31923>:<calendar event author pubkey>:<d-identifier of calendar event>", "<optional relay url>"]No

Client Behavior ​

Clients should:

  • Generate a UUID when creating a new calendar
  • Allow users to create multiple calendars for different purposes
  • Enable users to add and remove calendar events from calendars
  • Display calendar events grouped by their respective calendars
  • Allow users to filter events by calendar

Relay Behavior ​

Relays should handle these events as replaceable list events, allowing them to be updated according to standard Nostr protocols for replaceable lists.

Use Cases ​

  • Personal calendar organization
  • Work calendar management
  • Travel itinerary collection
  • Organizing conference schedules
  • Community event listings

Example ​

json
{
  "id": "b359e96a1e22342b4683920d10d50270c0ff06ffc31ec39c271c9e1e485f7e3a",
  "pubkey": "79dff8f82963424e1852174ed276b6715c4ccc9777e489234a363a43d7c73143",
  "created_at": 1671217411,
  "kind": 31924,
  "tags": [
    ["d", "8f4a15e3-a5f3-4ad5-9e88-89d3c8a3b92f"],
    ["title", "Work Schedule"],
    ["a", "31923:32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245:7d9fea92-da3b-4f2d-9db8-e27c1b8cd391", "wss://relay.example.com"],
    ["a", "31922:79dff8f82963424e1852174ed276b6715c4ccc9777e489234a363a43d7c73143:5371fe41-2964-4f3e-b203-e56009f54729", "wss://relay.example.com"]
  ],
  "content": "My work calendar containing meetings, conferences, and important deadlines.",
  "sig": "d1c58dccb14081c5de703532f4b16f513fbb7127f35ac888b29f9317588c29fe3e44950e68df8f3174aadd0b4613f27574fd142abbaebed72dac3ddc234a60ac"
}

References ​

Notes ​

Clients can implement features for importing and exporting calendars to standard formats (like iCalendar) to enable interoperability with other calendar systems, though this functionality is not specified in NIP-52.