plan-with-calendar
Skill0 starsChanged 46 days agoMITView on GitHub
Read and plan the user's Nemi calendars and set up Nemi Meet video calls. Use when the user asks what is on their agenda, when they are free, to schedule, move, repeat or cancel something, to plan a week, or to create a meeting link.
In this repository9 other files it gives its agents.
- build-sheetsSkill
- convert-and-editSkill
- draw-on-canvasSkill
- nemi-basicsSkill
- organize-filesSkill
- read-and-extractSkill
- run-formsSkill
- share-and-collectSkill
- write-docsSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 2 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 24
If the user has one calendar, use it.
- Distinctive: line 26
No end given: one hour for a meeting, 30 minutes for a call, all day for a birthday or holiday.
- Very specific: line 29
Add location and description when the user gave them.
- Very specific: line 45
Every call holds at most ten people.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Calendars and Meet
The big caveat
Only calendars made in Nemi are reachable. Calendars the user connected from Google, Outlook or an ICS feed cannot be read or written through this connection, so an agenda read here may be missing things. When the user asks about their whole schedule or whether they are free, answer from what you can see and say once, briefly, that connected calendars are not included.
Reading
calendar_events with start and end as ISO 8601 instants (default: the coming seven days; at most a year). Repeating events come back expanded. The result includes the calendars too, which is how you get a calendar_id.
- Resolve "today", "next week", "Thursday" against the current date in the user's time zone. If you do not know the zone and it matters, ask once or use the one the events carry.
- Present an agenda grouped by day, in time order, with times in the user's zone and 24-hour or 12-hour format to match how they write.
- For "when am I free", list the gaps inside working hours (09:00 to 17:00 unless the user says otherwise) and repeat the caveat about connected calendars.
Creating events
calendar_event_create needs calendar_id, title, start and end.
- If the user has one calendar, use it. If several, pick the one whose name fits ("Work", "Family") or ask.
- Include the offset in times (
2026-10-02T14:00:00+02:00) or settimezone(IANA, e.g.Europe/Amsterdam). Never send a bare local time without either. - No end given: one hour for a meeting, 30 minutes for a call, all day for a birthday or holiday.
- All-day events:
all_daytrue,startat the date,endat the next day (the end is exclusive). - Repeats:
rrulein RFC 5545 form without theRRULE:prefix:FREQ=WEEKLY;BYDAY=MO,FREQ=MONTHLY;BYMONTHDAY=1,FREQ=WEEKLY;INTERVAL=2;BYDAY=TU,TH;COUNT=10,FREQ=YEARLY. - Add
locationanddescriptionwhen the user gave them.
Changing and cancelling
calendar_event_updatechanges only the fields you send. An event cannot move to another calendar. An emptyrrulestops it repeating.- Occurrences of a repeating event carry the series' own
event_id, socalendar_event_updateandcalendar_event_deleteon one of them change or remove the WHOLE series. Say so and confirm first. An occurrence that was edited on its own has an id of its own and arecurring_event_idpointing at its series. There is no tool to change or skip just one occurrence; to cancel a single date, tell the user to do it in the Nemi Calendar app. - Find the
event_idwithcalendar_eventsover the right window.
Meetings with a video link
meet_create makes a Nemi Meet link. scheduled_at is only a label; it does not add anything to a calendar. To schedule a call properly:
meet_createwithtitleandscheduled_at, andlobby,passwordorguests_allowedfalse when the user wants control over who gets in.calendar_event_createfor the same time withmeeting_urlset to the join link.- Reply with the time and the join link in full.
Every call holds at most ten people. Joining, recording and captions happen in a browser. meet_list shows existing meetings; meet_delete stops a link working immediately, so confirm first.
Planning a week
When asked to plan or review a week: read the window, list fixed commitments, point out clashes and back-to-back runs without a break, then propose blocks for what the user wants to fit in. Create nothing until the user agrees to the plan, then create the agreed events in one go and list what was added.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

