Introduction

The design philosophy of DeepSeek Harness (DSH) is “everything is a plugin.” When developing agents, enabling the Agent to directly operate the host system is key to improving efficiency. Existing calendar plugins (such as MAGMA27/dsh-calendar) usually can only schedule through a Web UI and cannot truly write to the system calendar. dsh-macos-calendar is a host-side plugin. It uses AppleScript and EventKit to provide agents with true macOS calendar integration, supporting the creation, querying, and deletion of real system calendar events.

Core Features

The plugin runs inside the DSH Web host process and does not require session approval for every invocation.

  • List all calendar names (calendar_list): A read-only operation that returns all calendars available in the current system.
  • Create an event (calendar_add): Supports setting the event title, start and end times (formatted as YYYY-MM-DD HH:MM), target calendar, notes, and how many minutes in advance to remind.
  • Query upcoming events (calendar_events): Lists all events in the specified calendar within the next N days.
  • Delete an event (calendar_delete): Deletes based on the title in the event summary. Using the from parameter helps prevent accidentally deleting old events.

Installation and Enablement

Before installing, ensure the host environment meets the following requirements: Node.js version >= 22, and the operating system is macOS.

  1. Place the plugin source code at a local path such as /path/to/dsh-macos-calendar.
  2. Run the installation command:
    dsh plugin --profile web add /path/to/dsh-macos-calendar
  1. Restart the DSH Web process.
  2. Grant Automation permissions: In System Settings, grant the host process Automation permission. Path: System Settings → Privacy & Security → Automation → allow dsh host to control “Calendar”.

Typical Usage

In a DSH conversation, the agent can directly invoke tools by making requests in natural language. For example:

“add a calendar event on 2026-10-11 at 10:00 AM for a meeting”

The agent automatically identifies the intent and calls the calendar_add tool to perform the operation.

Notes

  • Cordis 4 dependency declaration: This plugin runs in Cordis 4 environments and requires the consuming service to explicitly declare inject dependencies. Two declaration forms are supported. Keep both for compatibility with different loader reading methods:
    // module export form
    export const inject = ['tools'];

    // function-property form
    apply.inject = ['tools'];
  • Date string parsing: AppleScript date strings depend on the system locale and may cause parsing errors (for example, an ISO string being parsed as year 12194). It is recommended to always build dates using date components, for example:
    set d to current date
    set year of d to 2026
    set month of d to 10
    set day of d to 11
    set hours of d to 10
    set minutes of d to 0

Summary

This plugin addresses the pain point of deeply integrating agents with host systems and enables automated schedule management. The plugin source code and detailed documentation are available at: GitHub.