Discourse · Capability
Discourse API Documentation — Discourse Calendar - Events
Discourse API Documentation — Discourse Calendar - Events. 2 operations. Lead operation: Export calendar events in iCalendar format. Self-contained Naftiko capability covering one Discourse business surface.
What You Can Do
GET
Exporteventsics
— Export calendar events in iCalendar format
/v1/discourse-post-event/events-ics
GET
Listevents
— List calendar events
/v1/discourse-post-event/events-json
MCP Tools
export-calendar-events-icalendar-format
Export calendar events in iCalendar format
read-only
idempotent
list-calendar-events
List calendar events
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Discourse API Documentation — Discourse Calendar - Events
description: 'Discourse API Documentation — Discourse Calendar - Events. 2 operations. Lead operation: Export calendar events
in iCalendar format. Self-contained Naftiko capability covering one Discourse business surface.'
tags:
- Discourse
- Discourse Calendar - Events
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
DISCOURSE_API_KEY: DISCOURSE_API_KEY
capability:
consumes:
- type: http
namespace: discourse-discourse-calendar-events
baseUri: https://{defaultHost}
description: Discourse API Documentation — Discourse Calendar - Events business capability. Self-contained, no shared
references.
resources:
- name: discourse-post-event-events.ics
path: /discourse-post-event/events.ics
operations:
- name: exporteventsics
method: GET
description: Export calendar events in iCalendar format
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: category_id
in: query
type: integer
description: Filter events by category ID
- name: include_subcategories
in: query
type: string
description: Include events from subcategories when filtering by category
- name: attending_user
in: query
type: string
description: Filter to events where the specified user (username) has RSVP'd
- name: before
in: query
type: string
description: Return events starting before this date/time (ISO 8601 format)
- name: after
in: query
type: string
description: Return events starting after this date/time (ISO 8601 format)
- name: order
in: query
type: string
description: 'Sort order for events by start date (default: asc)'
- name: limit
in: query
type: integer
description: 'Maximum number of events to return (default: 200)'
- name: discourse-post-event-events.json
path: /discourse-post-event/events.json
operations:
- name: listevents
method: GET
description: List calendar events
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: include_details
in: query
type: string
description: Include detailed event information (creator, invitees, stats,
- name: category_id
in: query
type: integer
description: Filter events by category ID
- name: include_subcategories
in: query
type: string
description: Include events from subcategories when filtering by category
- name: post_id
in: query
type: integer
description: Filter to events associated with a specific post ID
- name: attending_user
in: query
type: string
description: Filter to events where the specified user (username) has RSVP'd
- name: before
in: query
type: string
description: Return events starting before this date/time (ISO 8601 format)
- name: after
in: query
type: string
description: Return events starting after this date/time (ISO 8601 format)
- name: order
in: query
type: string
description: 'Sort order for events by start date (default: asc)'
- name: limit
in: query
type: integer
description: 'Maximum number of events to return (default: 200)'
exposes:
- type: rest
namespace: discourse-discourse-calendar-events-rest
port: 8080
description: REST adapter for Discourse API Documentation — Discourse Calendar - Events. One Spectral-compliant resource
per consumed operation, prefixed with /v1.
resources:
- path: /v1/discourse-post-event/events-ics
name: discourse-post-event-events-ics
description: REST surface for discourse-post-event-events.ics.
operations:
- method: GET
name: exporteventsics
description: Export calendar events in iCalendar format
call: discourse-discourse-calendar-events.exporteventsics
with:
category_id: rest.category_id
include_subcategories: rest.include_subcategories
attending_user: rest.attending_user
before: rest.before
after: rest.after
order: rest.order
limit: rest.limit
outputParameters:
- type: object
mapping: $.
- path: /v1/discourse-post-event/events-json
name: discourse-post-event-events-json
description: REST surface for discourse-post-event-events.json.
operations:
- method: GET
name: listevents
description: List calendar events
call: discourse-discourse-calendar-events.listevents
with:
include_details: rest.include_details
category_id: rest.category_id
include_subcategories: rest.include_subcategories
post_id: rest.post_id
attending_user: rest.attending_user
before: rest.before
after: rest.after
order: rest.order
limit: rest.limit
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: discourse-discourse-calendar-events-mcp
port: 9090
transport: http
description: MCP adapter for Discourse API Documentation — Discourse Calendar - Events. One tool per consumed operation,
routed inline through this capability's consumes block.
tools:
- name: export-calendar-events-icalendar-format
description: Export calendar events in iCalendar format
hints:
readOnly: true
destructive: false
idempotent: true
call: discourse-discourse-calendar-events.exporteventsics
with:
category_id: tools.category_id
include_subcategories: tools.include_subcategories
attending_user: tools.attending_user
before: tools.before
after: tools.after
order: tools.order
limit: tools.limit
outputParameters:
- type: object
mapping: $.
- name: list-calendar-events
description: List calendar events
hints:
readOnly: true
destructive: false
idempotent: true
call: discourse-discourse-calendar-events.listevents
with:
include_details: tools.include_details
category_id: tools.category_id
include_subcategories: tools.include_subcategories
post_id: tools.post_id
attending_user: tools.attending_user
before: tools.before
after: tools.after
order: tools.order
limit: tools.limit
outputParameters:
- type: object
mapping: $.