MCPcopy Index your code
hub / github.com/dmitrijkir/mattermost-plugin-calendar

github.com/dmitrijkir/mattermost-plugin-calendar @0.6.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.6.1 ↗ · + Follow
261 symbols 792 edges 50 files 35 documented · 13%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Mattermost Calendar Plugin

calendar_screen

License Release


The Mattermost Calendar Plugin is a powerful tool to help you schedule and manage team meetings and events directly within Mattermost.

Features

  • Event Scheduling: Easily create, schedule, and manage team meetings and events from within Mattermost.
  • Event Notifications: Receive reminders and notifications for upcoming events to keep your team organized.
  • User-Friendly Interface: Intuitive user interface for creating and managing events, making it easy for team members to use.
  • Customization: Configure event settings, such as time slots, attendees, and descriptions, to suit your team's needs.
  • iCal/CalDAV Support: Sync your calendar with external applications like Apple Calendar, Thunderbird, or Google Calendar.

CalDAV Setup

CalDAV allows you to sync your Mattermost calendar with external calendar applications (Apple Calendar, Thunderbird, etc.) for two-way synchronization.

Getting the CalDAV URL

  1. Open the Calendar plugin in Mattermost
  2. Click the Settings icon (gear) in the top right
  3. In the settings panel, find the iCal/CalDAV section
  4. Click Generate Token to create a new subscription token
  5. Copy the CalDAV URL

Configuring External Calendar Apps

Important: Authentication is done via the token in the URL. You can enter any username and password when prompted - they are not validated.

Apple Calendar (macOS/iOS)

  1. Go to System SettingsInternet AccountsAdd AccountOtherCalDAV Account
  2. Select Manual configuration
  3. Enter:
  4. Server: Your CalDAV URL (e.g., https://your-mattermost.com/plugins/com.dmkir.calendar/caldav/{token}/)
  5. Username: Any value (e.g., user)
  6. Password: Any value (e.g., pass)
  7. Click Sign In

Thunderbird

  1. Go to Calendar tab → Right-click → New Calendar
  2. Select On the Network
  3. Enter:
  4. Username: Any value
  5. Location: Your CalDAV URL
  6. Click Find Calendars
  7. Enter any password when prompted

Other CalDAV Clients

Use the CalDAV URL from the plugin settings. When prompted for credentials, enter any username and password.

Security Notes

  • The token in the URL provides full access to your calendar - keep it private
  • You can revoke the token at any time from the plugin settings
  • Revoking the token will immediately disconnect all synced calendar apps

Installation

To install the Mattermost Calendar Plugin, follow these steps:

  1. Download the latest release from the Releases page.
  2. Upload the plugin to your Mattermost server.
  3. Enable the plugin in your Mattermost settings.

Note

Make sure that I set &parseTime=true for MySQL connection string.

Development

Note

Building the plugin requires the following: - Golang: version >= 1.18 - NodeJS: version 14.x - NPM: version 6.x

Use make dist to build this plugin.

Use make deploy to deploy the plugin to your local server.

For more details on how to develop a plugin refer to the official documentation.

Check API documentation here

Contribution

We welcome contributions to the Mattermost Calendar Plugin!

Support

If you encounter any issues or have questions, please create a GitHub Issue.

License

This project is licensed under the Apache-2.0 License.

Extension points exported contracts — how you extend this code

Window (Interface)
(no doc)
webapp/src/index.tsx
PluginRegistry (Interface)
(no doc)
webapp/src/types/mattermost-webapp/index.d.ts
TimeSelectorComponentProps (Interface)
(no doc)
webapp/src/components/time-selector.tsx
VisibilitySelectProps (Interface)
(no doc)
webapp/src/components/visibility-input.tsx
VisibilityOption (Interface)
(no doc)
webapp/src/components/visibility-input.tsx

Core symbols most depended-on inside this repo

errorResponse
called by 57
server/utils.go
GetDBPlaceholderFormat
called by 32
server/plugin.go
InitAPI
called by 16
server/api.go
ServeHTTP
called by 15
server/plugin.go
apiResponse
called by 14
server/utils.go
getSiteURL
called by 12
webapp/src/components/utils.tsx
GetUserLocation
called by 11
server/event.go
FromContext
called by 11
server/plugin.go

Shape

Function 138
Method 86
Struct 15
Interface 13
Class 6
TypeAlias 3

Languages

Go54%
TypeScript46%

Modules by API surface

server/caldav.go25 symbols
webapp/src/components/event.tsx23 symbols
webapp/src/client.tsx16 symbols
server/caldav_test.go15 symbols
server/ical_test.go11 symbols
server/ical.go11 symbols
server/background.go11 symbols
webapp/src/components/repeat-event.tsx10 symbols
server/event.go10 symbols
webapp/src/components/planning-assistant/index.tsx9 symbols
server/migrate.go9 symbols
webapp/src/components/calendar-content.tsx8 symbols

For agents

$ claude mcp add mattermost-plugin-calendar \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page