walnut-calendar SKILL.md skillA
walnut-calendar from evanzhang008/open-walnut is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.
mdr add evanzhang008/open-walnut/walnut-calendar@git:20261010.4a29505Pins git:20261010.4a29505 in mdr.lock. Pin the fingerprint instead.
- Audit grade
- A, 17 of 17 checks passed
- Kind
- SKILL.md skill
- Repository
- evanzhang008/open-walnut
- Path
src/integrations/calendar/skills/walnut-calendar/SKILL.md- Versions recorded
- 3
- Latest version
- git:20261010.4a29505, committed Oct 10, 2026
- First version recorded
- Sep 5, 2026
- Size
- 10,082 bytes
- Repository stars
- 34
- License
- MIT
Read and edit the user's real calendars (macOS Calendar: iCloud, Google, Exchange accounts) through Walnut's /api/calendar REST endpoints. Use when asked about the user's schedule, meetings, or availability, or to create, move, retime, or delete calendar events, or to hide one event in Walnut only. Covers listing events in a date range, enumerating calendars, and write-back that syncs to the cloud provider via macOS.
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# Walnut Calendar API
Walnut exposes the Mac's calendars (every account added in macOS System
Settings → Internet Accounts: iCloud, Google, Exchange, …) over REST. Edits
write back through macOS EventKit, so a change made here syncs to the source
calendar without a separate login. For "remove/skip this meeting", hide it in
Walnut by default. Hiding is local, reversible, per-occurrence, and not a decline.
Base URL: `http://localhost:3456/api/calendar` (Walnut server).
## Two ways in, and one way never to use
Inside a Walnut session, prefer the ops (they work from remote hosts too):
```bash
walnut tools call calendar_query '{"from":"2026-08-03","to":"2026-08-09"}'
walnut tools call calendar_event_create '{"title":"Dentist","start":"2026-08-05T15:00:00","end":"2026-08-05T16:00:00"}'
walnut tools call calendar_event_update '{"id":"<id>","start":"2026-08-06T15:00:00","end":"2026-08-06T16:00:00"}'
walnut tools call calendar_event_delete '{"id":"<id>"}'
walnut tools call calendar_event_visibility '{"id":"<id>","hidden":true}'
```
The REST endpoints below do the same on the Mac. **Never** write calendars by
running Walnut's calendar helper binary, AppleScript, or `osascript` against
…Read the whole file at its exact version.
How to install
mdr add evanzhang008/open-walnut/walnut-calendar@sha256:bb8be5d0d5b4907bThe line at the top of this page pins the label git:20261010.4a29505, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
[](https://markdownregistry.com/a/art_u6ep4b72q5vzvybv)
2 badge image fetches in 30 days. What the badge shows.
Versions
The registry has recorded 3 versions of this file, between Sep 5, 2026 and Oct 10, 2026, about one every 17 days.
| version | committed | commit | size | audit | |
|---|---|---|---|---|---|
| git:20261010.4a29505 latest | 2026-10-10 | 4a29505 | 10,082 B | A | view · diff |
| git:20261009.4d0133b | 2026-10-09 | 4d0133b | 8,739 B | A | view · diff |
| git:20260905.f2c98ad | 2026-09-05 | f2c98ad | 5,652 B | A | view |
Audit of the latest version
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (10082 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No prompt-injection phrasing
- pass: No curl or wget piped into a shell
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No link to a raw IP address
- pass: No script tag
Source
evanzhang008/open-walnut · 34 stars · license MIT · pushed 2026-10-22 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_u6ep4b72q5vzvybv GET https://markdownregistry.com/api/v1/resolve?ref=evanzhang008/open-walnut/walnut-calendar GET https://markdownregistry.com/api/v1/blob/bb8be5d0d5b4907b24b403c7cd45fef764a728075b4d45d634a86fc038b8e5c5
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.