{"lexicon":1,"id":"money.atmosphere.calendar.listUpcomingEvents","defs":{"event":{"type":"object","required":["uri","title","startsAt"],"properties":{"uri":{"type":"string","format":"at-uri","maxLength":2048},"title":{"type":"string","maxLength":1200},"startsAt":{"type":"string","format":"datetime"}}},"main":{"type":"query","description":"List an organizer's indexed upcoming community calendar events in start-time order, excluding cancelled events. Public discovery only; verify the selected record at its PDS before configuring ticketing.","parameters":{"type":"params","required":["organizer"],"properties":{"organizer":{"type":"string","format":"did"},"limit":{"type":"integer","minimum":1,"maximum":50,"default":20},"cursor":{"type":"string","maxLength":4096}}},"output":{"encoding":"application/json","schema":{"type":"object","required":["events"],"properties":{"events":{"type":"array","maxLength":50,"items":{"type":"ref","ref":"#event"}},"cursor":{"type":"string","maxLength":4096}}}},"errors":[{"name":"InvalidRequest","description":"The organizer, limit, or cursor is invalid."}]}}}