Experimental XRPC Service

Smoke Signal provides an experimental, unofficial XRPC service that has the following methods

community.lexicon.calendar.GetEvent

Method: GET

Query String Parameters:

  • repository - The repository that the event is stored in.
  • record_key - The record key of the event.

The response is an community.lexicon.calendar.eventView typed JSON object structure that is identical to the community.lexicon.calendar.event type with the following changes:

  • countGoing is included with a numeric value.
  • countInterested is included with a numeric value.
  • countNotGoing is included with a numeric value.
  • url is the URL to the event

Example Request:

https://smokesignal.events/xrpc/community.lexicon.calendar.GetEvent?repository=did:plc:tgudj2fjm77pzkuawquqhsxm&record_key=3kxbvxj7blk2t

Example Response:

{
    "$type": "community.lexicon.calendar.eventView",
    "createdAt": "2024-07-14T18:00:00.001Z",
    "description": "This is the one year anniversary of the launch of Smoke Signal!",
    "media": [
        {
            "$type": "community.lexicon.calendar.event#media",
            "alt": "A hand drawn one year anniversary banner",
            "aspect_ratio": {
                "height": 2160,
                "width": 3840
            },
            "content": {
                "$type": "blob",
                "mimeType": "image/jpeg",
                "ref": {
                    "$link": "bafkreieiif3gb4elz5ihha6gsbwgss45k54r6jdwar5nqbit7xcxsgz2ze"
                },
                "size": 470475
            },
            "role": "header"
        }
    ],
    "mode": "community.lexicon.calendar.event#virtual",
    "name": "One Year Anniversary",
    "startsAt": "2025-07-14T11:00:00.000Z",
    "status": "community.lexicon.calendar.event#scheduled",
    "countGoing": 12,
    "countInterested": 2,
    "countNotGoing": 0,
    "url": "https://smokesignal.events/did:plc:tgudj2fjm77pzkuawquqhsxm/3kxbvxj7blk2t"
}

If an AT-URI using the community.lexicon.calendar.event collection cannot be constructed and no event matching the constructed URL, the following response is returned:

{
    "error": "not_found",
    "error_description": "the event record was not found"
}