Home/Documentation/Plugins & Extensions

Plugins & Extensions

Extend Elysium's functionality with plugins built by the community.

Extend Your Workflow

Plugins let you add new features, integrate with external services, and customize Elysium to fit your unique workflow. Whether you want to connect to your favorite tools or add specialized functionality, there's likely a plugin for that.

Shortcuts Actions

Use Elysium with Apple Shortcuts to automate workflows and integrate with other apps.

Integrations

Connect to external services like calendars, task managers, and productivity tools.

Import/Export

Move data between Elysium and other apps with format converters and sync plugins.

Custom Views

Add new ways to visualize and interact with your schedule data.

Installing Plugins

1. Open the Plugin Directory

In Elysium, go to Settings > Plugins & Recipes to browse available plugins.

2. Install with one click

Click “Install” on any plugin to add it to your Elysium installation.

3. Configure as needed

Some plugins require configuration. Follow the plugin's setup instructions.

Build Your Own Plugin

Elysium's plugin API makes it easy to extend functionality and share your creations with the community. Plugins are written in JavaScript and have access to a rich API for interacting with schedule data.

Plugin Structure

Each plugin needs a manifest.json file with metadata and a main.js entry point.

{
  "id": "com.yourname.plugin-name",
  "name": "Plugin Display Name",
  "version": "1.0.0",
  "minAppVersion": "1.0.0",
  "author": "Your Name",
  "description": "What your plugin does",
  "main": "main.js",
  "permissions": ["read:habits", "read:tasks"]
}

Permissions

Plugins must declare all permissions they need. Available permissions include reading and writing schedule data, showing notifications, making network requests, and customizing the UI. Request only what you need.

Plugin API

Access Elysium data and functionality through the elysium global object.

// Access habits
const habits = await elysium.habits.list();

// Show a notification
elysium.ui.showNotification({
  title: "Hello!",
  message: "Your plugin is working"
});

// Listen for events
elysium.events.on("habit:completed", (habit) => {
  console.log("Completed:", habit.title);
});

Submit Your Plugin

Ready to share your plugin with the community? Submit it for review and inclusion in the plugin directory.