# List calendar events

`GET /discourse-post-event/events.json`

Authentication: no security requirement declared for this operation.

Parameters:

- `include_details` (query, string, optional) - Include detailed event information (creator, invitees, stats,
etc.)
  Type: string
  
  enum: ["true","false"]

- `include_card` (query, string, optional) - Include card fields without detailed event HTML or statistics
  Type: string
  
  enum: ["true","false"]

- `category_id` (query, integer, optional) - Filter events by category ID
  Type: integer

- `include_subcategories` (query, string, optional) - Include events from subcategories when filtering by category
  Type: string
  
  enum: ["true","false"]

- `post_id` (query, integer, optional) - Filter to events associated with a specific post ID
  Type: integer

- `attending_user` (query, string, optional) - Filter to events where the specified user (username) has RSVP'd
as going
  Type: string

- `before` (query, string, date-time, optional) - Return events starting before this date/time (ISO 8601 format)
  Type: string, date-time

- `after` (query, string, date-time, optional) - Return events starting after this date/time (ISO 8601 format)
  Type: string, date-time

- `order` (query, string, optional) - Sort order for events by start date (default: asc)
  Type: string
  
  enum: ["asc","desc"]

- `limit` (query, integer, optional) - Maximum number of events to return (default: 200)
  Type: integer
  
  minimum: 1
  
  maximum: 200

- `tags` (query, Array<string>, optional) - Filter to events whose topic has every specified tag
  Type: Array<string>
  
  Items:
    Type: string

- `search` (query, string, optional) - Search event names, descriptions, and locations
  Type: string

- `status` (query, string, optional) - Filter by event attendance status
  Type: string
  
  enum: ["public","private","standalone"]

Responses:

- 200: success response (detailed)

Content type: application/json

Type: object

- `events` (required)
  Type: Array<object>
  
  Items:
    Type: object
    
    - `id` (required)
      Type: integer
    
    - `category_id` (required)
      Type: integer; nullable
    
    - `name` (optional)
      Type: string; nullable
    
    - `recurrence` (optional)
      Type: string; nullable
    
    - `recurrence_until` (optional)
      Type: string, date-time; nullable
    
    - `starts_at` (required)
      Type: string, date-time; nullable
    
    - `ends_at` (required)
      Type: string, date-time; nullable
    
    - `rrule` (optional)
      Type: string
    
    - `show_local_time` (required)
      Type: boolean
    
    - `timezone` (required)
      Type: string; nullable
    
    - `duration` (optional)
      Type: string
      
      pattern: "^\\d{2}:\\d{2}:\\d{2}$"
    
    - `all_day` (optional)
      Type: boolean
    
    - `custom_fields` (optional)
      Type: object; nullable
    
    - `post` (required)
      Type: object
      
      - `id` (required)
        Type: integer
      
      - `post_number` (required)
        Type: integer
      
      - `url` (required)
        Type: string
      
      - `category_slug` (required)
        Type: string
      
      - `topic` (required)
        Type: object
        
        - `id` (required)
          Type: integer
        
        - `title` (required)
          Type: string
        
        - `tags` (required)
          Type: Array<string>
          
          Items:
            Type: string
        
        - `tags_descriptions` (required)
          Type: object
        
        - `slug` (required)
          Type: string
        
        Additional properties: false
      
      Additional properties: false
    
    - `occurrences` (required)
      Type: Array<object>
      
      Items:
        Type: object
        
        - `starts_at` (required)
          Type: string; nullable
        
        - `ends_at` (required)
          Type: string; nullable
        
        Additional properties: false
    
    - `can_act_on_discourse_post_event` (required)
      Type: boolean; nullable
    
    - `can_update_attendance` (required)
      Type: boolean; nullable
    
    - `creator` (optional)
      Type: object
      
      - `id` (required)
        Type: integer
      
      - `username` (required)
        Type: string
      
      - `name` (optional)
        Type: string; nullable
      
      - `avatar_template` (required)
        Type: string
      
      Additional properties: false
    
    - `hosts` (optional)
      Type: Array<object>
      
      Items:
        Type: object
        
        - `id` (required)
          Type: integer
        
        - `username` (required)
          Type: string
        
        - `name` (optional)
          Type: string; nullable
        
        - `avatar_template` (required)
          Type: string
        
        - `title` (optional)
          Type: string; nullable
        
        Additional properties: false
    
    - `is_closed` (required)
      Type: boolean
    
    - `is_expired` (required)
      Type: boolean
    
    - `is_ongoing` (required)
      Type: boolean
    
    - `is_private` (required)
      Type: boolean
    
    - `is_public` (required)
      Type: boolean
    
    - `is_standalone` (required)
      Type: boolean
    
    - `minimal` (optional)
      Type: boolean; nullable
    
    - `raw_invitees` (optional)
      Type: Array<string>; nullable
      
      Items:
        Type: string
    
    - `reminders` (optional)
      Type: Array<object>
      
      Items:
        Type: object
        
        - `value` (required)
          Type: integer
        
        - `unit` (required)
          Type: string
        
        - `period` (required)
          Type: string
          
          enum: ["before","after"]
        
        - `type` (required)
          Type: string
    
    - `sample_invitees` (optional)
      Type: Array<object>
      
      Items:
        Type: object
    
    - `should_display_invitees` (required)
      Type: boolean
    
    - `stats` (optional)
      Type: object
    
    - `status` (required)
      Type: string
      
      enum: ["public","private","standalone"]
    
    - `url` (optional)
      Type: string
    
    - `description` (optional)
      Type: string; nullable
    
    - `description_html` (optional)
      Type: string; nullable
    
    - `location` (optional)
      Type: string; nullable
    
    - `url_restates_location` (optional)
      Type: boolean
    
    - `watching_invitee` (optional)
      Type: object; nullable
    
    - `chat_enabled` (optional)
      Type: boolean; nullable
    
    - `channel` (optional)
      Type: object
    
    - `livestream` (optional)
      Type: boolean
    
    - `livestream_onebox` (optional)
      Type: string; nullable
    
    - `is_zoom_livestream` (optional)
      Type: boolean
    
    - `recording_url` (optional)
      Type: string
    
    - `recording_onebox` (optional)
      Type: string; nullable
    
    - `max_attendees` (optional)
      Type: integer; nullable
    
    - `at_capacity` (required)
      Type: boolean
    
    - `image_upload` (optional)
      Type: object; nullable
    
    Additional properties: false

Additional properties: false

## Examples

### cURL

```bash
curl -X GET 'https://discourse.example.com/discourse-post-event/events.json'
```

### JavaScript

```javascript
const response = await fetch('https://discourse.example.com/discourse-post-event/events.json', {
  method: 'GET',
});

const data = await response.text();
```

### Python

```python
import requests

response = requests.get('https://discourse.example.com/discourse-post-event/events.json')
print(response.text)
```
