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.