npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@instacodeio/icloud-calendar-mcp-server

v0.1.4

Published

MCP server for iCloud Calendar via CalDAV

Downloads

243

Readme

@instacodeio/icloud-calendar-mcp-server

MCP server for iCloud Calendar via CalDAV. Lets Claude (or any MCP client) read and write events on your iCloud calendars.

Published under InstaCode.

What it does

Exposes five tools:

| Tool | Purpose | |---|---| | icloud_list_calendars | List your iCloud calendars | | icloud_list_events | Fetch events from a calendar in a date range | | icloud_create_event | Create a new event | | icloud_update_event | Update an existing event by UID | | icloud_delete_event | Delete an event by UID |

Prerequisites

  • Node.js 18+
  • An Apple ID with two-factor authentication enabled
  • An app-specific password generated at https://appleid.apple.com (your normal Apple ID password will not work for CalDAV)

Setup

npm install
npm run build

Set credentials via environment variables (or copy .env.example to .env and load via your runner):

export ICLOUD_USERNAME="[email protected]"
export ICLOUD_APP_PASSWORD="xxxx-xxxx-xxxx-xxxx"

Test it locally

Use the MCP Inspector to poke at the tools without wiring up a client:

npm run inspect

Then in the inspector UI: list tools, call icloud_list_calendars, etc.

Use with Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "icloud-calendar": {
      "command": "node",
      "args": ["/absolute/path/to/icloud-calendar-mcp-server/dist/index.js"],
      "env": {
        "ICLOUD_USERNAME": "[email protected]",
        "ICLOUD_APP_PASSWORD": "xxxx-xxxx-xxxx-xxxx"
      }
    }
  }
}

Restart Claude Desktop. The tools should appear under the MCP icon.

Known limitations (v0.1)

  • Time zones: events are written in UTC. Timezone-aware writes are TODO.
  • Recurring events: parsed as their master event; recurrence overrides aren't surfaced separately yet.
  • Reminders/alarms: not yet supported on create/update.
  • Attendees / invites: not yet supported.
  • Update/delete by UID does a calendar scan; for very large calendars this is slow. Future improvement: maintain a UID→URL index or use server-side query reports.

Roadmap

  • [ ] Timezone support on create/update
  • [ ] VALARM (reminders) on create/update
  • [ ] icloud_search_events with text query (across calendars)
  • [ ] icloud_find_free_time helper
  • [ ] CardDAV companion for contacts (https://contacts.icloud.com)
  • [ ] Optional Streamable HTTP transport for hosted use

Publishing

Releases are published to npm via OIDC trusted publishing — no NPM_TOKEN required in CI.

First publish (one-time, manual):

The npm trusted-publisher settings page only appears for packages that already exist on npmjs.com. So v0.1.0 must be published manually from a local machine:

npm login
npm publish --access public

--provenance is intentionally omitted here. Provenance attestations require a supported OIDC provider (GitHub Actions, GitLab CI, etc.) and will fail locally with Automatic provenance generation not supported for provider: null. The CI workflow below adds --provenance automatically.

After the first publish:

  1. Go to https://www.npmjs.com/package/@instacodeio/icloud-calendar-mcp-server → Settings → Trusted Publishers
  2. Add a publisher with:
    • Repository owner: InstaCode (or your GitHub username)
    • Repository name: icloud-calendar-mcp-server
    • Workflow filename: publish.yml

Subsequent releases (automated):

npm version patch   # or minor / major
git push --follow-tags

The Publish to npm workflow will run on the new v* tag, verify the tag matches package.json, build, and publish with provenance.

License

MIT