Open MilSim.io
C2 Overview

Campaigns And Calendar

Organise related operations as campaigns and use the calendar to view published activity.

Create A Campaign

Campaigns requires the community_campaigns feature. Open Campaigns, select Create Campaign, enter the details, optionally use Add metadata, then create it. The list supports search, filters, archived campaigns, and card or table display.

ControlResultPermission checked by C2API evidence
Open list or detailViews campaigns and campaign events.campaigns:readStandard campaign reads derive campaigns:read.
Create CampaignCreates the campaign.campaigns:createStandard create derives campaigns:create.
ModifyOpens campaign editing.campaigns:updateStandard update derives campaigns:update.
Archive / UnarchiveToggles archived state.campaigns:updatePUT /campaigns/:id/archive explicitly requires campaigns:update.
DeleteDeletes after confirmation.campaigns:deleteStandard delete derives campaigns:delete.

A 402 feature limit reached error means the community plan prevents the save. It does not mean the staff member needs a broader role.

Create And Run A Campaign Event

Open a campaign and select Create event. C2 uses the campaign ID in the current URL; confirm the campaign name before saving. The wizard has Details, Recurrence, Notifications, Notification timing, and Review, like a standalone event.

ControlResultPermission checked by C2
Create event / create pageCreates a campaign event.campaigns:create
ModifyOpens the campaign-event editor.campaigns:update
Lock / UnlockChanges lock state.campaigns:update
DeleteRemoves the event after confirmation.campaigns:delete

API caveat: C2 gates campaign screens and controls with campaigns:*. The campaign-event controller explicitly protects only draft list/create operations (campaign-events:read-drafts and campaign-events:create-drafts); its normal CRUD methods do not carry a CommunityPermissionCheck annotation. The generic layer may enforce them, but this must be release-tested rather than assumed.

The API supports campaign-event drafts, but the current C2 create page exposes a single create path rather than a Save draft button. Do not promise campaign-event drafting to staff until the panel exposes it.

Attendance on a campaign event

The campaign-event screen uses the same attendance UI condition as standalone events: both events:manage-attendance and campaign-events:manage-attendance are required. See Events And Attendance for the attendance-status setup and verification note.

Use The Calendar

Open Calendar to view published standalone and campaign events in month, week, day, or list mode. Select an entry to open the relevant event. C2 uses browser locale and timezone for presentation.

ActionPermissionAPI evidence
Open and view published entriescalendar:readGET /community/:communityId/calendar is explicitly protected by calendar:read.

The calendar endpoint returns published events only. Drafts and operationally hidden records should be reviewed from their event or campaign area, not assumed visible on the calendar.

Access Checklist

JobMinimum known keys
Campaign readercampaigns:read
Campaign plannercampaigns:read, campaigns:create
Campaign managerPlanner keys plus campaigns:update; add campaigns:delete only when deletion is authorised
Calendar viewercalendar:read

Related: Events And Attendance and Discord Configuration.

Copyright © 2026