online-calendar
Skill4 starsChanged 4 months agoMITView on GitHub
Use when the user asks to view or change their Google Calendar. Do not use for daily planning.
In this repository45 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- bib-auditSkill
- bootstrap-dispatcher-runtimeSkill
- ci-debugSkill
- cloud-filesSkill
- connect-googleSkill
- daily-planSkill
- distill-to-ruttersSkill
- email-clientSkill
- email-triageSkill
- find-handoff-candidatesSkill
- formal-prose-reviewSkill
- get-weatherSkill
- git-workflowSkill
- hook-makerSkill
- initialize-tddSkill
- install-launchersSkill
- latex-workshopSkill
- list-managerSkill
- llm-wakeupSkill
- loose-modeSkill
- make-tex-docstringSkill
- math-dependency-graphSkill
- milestone-loggingSkill
- node-certifySkill
- node-driftSkill
- notation-reviewSkill
- pdf-to-markdownSkill
- prepare-handoffSkill
- proof-auditSkill
- recurring-tasksSkill
- refactor-nodeSkill
- regenerate-blueprintsSkill
- relocate-nodesSkill
- semantic-integrationSkill
- send-feedbackSkill
- setup-interface-managerSkill
- skill-makerSkill
- technical-flow-reviewSkill
- tight-modeSkill
- tool-applicabilitySkill
- update-standardsSkill
- using-compassSkill
- wrap-upSkill
The file
We split this skill into the rules it gives an agent
8 rules. About 0 are common, 2 are distinctive, and 6 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.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 12
When first exposed to this skill in a session, invoke famulus_dispatcher.invoke_security_2 once with:
- Distinctive: line 27
Do not repeat this initial call during the session.
- Very specific: line 80
Use online-calendar._rtx.interface.scripts-gcal for calendar reads and writes.
- Very specific: line 95
Use calendars when the target calendar is unknown.
- Very specific: line 113
After create, fetch the returned event ID and compare start, end, summary, location, and description with the request.
- Very specific: line 116
Before update, fetch and retain the fields being changed.
- Very specific: line 118
After delete, fetch the event and require status cancelled.
- Distinctive: line 121
When completion is uncertain, inspect current event state before retrying.
≈ “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
<!-- BEGIN BLUEPRINT INTERFACES -->Generated from
blueprint.yaml. Do not edit this block by hand.
Managed setup
When first exposed to this skill in a session, invoke famulus_dispatcher.invoke_security_2 once with:
{
"caller": "online-calendar",
"interface": "online-calendar.interface.setup",
"version": 2,
"arguments": {
"positionals": [],
"options": {},
"stdin": null
}
}Do not repeat this initial call during the session. Obtain permission before carrying out setup, then follow the returned setup-manager instructions exactly. If the result is busy or failed, stop and report it.
Executable Interfaces:
Send the required caller (caller skill), interface, version, and arguments; optional dry_run defaults to false. Compact uses ordered positionals plus an option mapping; ordered raw argv uses positionals: [] plus every argv token in list options. Never mix forms.
online-calendar._rtx.interface.scripts-gcal— Query or modify Google Calendar events via the Python calendar CLI (agenda, search, create, update, delete, etc.).- Caller:
online-calendar - Version: 1
- Security level: 2
- Alternative:
token-or-calendarsArguments JSON (replace labels with actual values). Omit optional positionals and options that are not needed. {"options": {}, "positionals": ["token"], "stdin": null} Required options: []; positional arity: 1..1; stdin: forbidden - Alternative:
create-calendarArguments JSON (replace labels with actual values). Omit optional positionals and options that are not needed. {"options": {"--color-id": "ID", "--description": "TEXT", "--summary": "TEXT", "--timezone": "TZ"}, "positionals": ["create-calendar"], "stdin": null} Required options: ["--summary"]; positional arity: 1..1; stdin: forbidden - Alternative:
agendaArguments JSON (replace labels with actual values). Omit optional positionals and options that are not needed. {"options": {"--all-calendars": true, "--calendar": "ID", "--days": "N", "--from": "ISO", "--to": "ISO"}, "positionals": ["agenda"], "stdin": null} Required options: []; positional arity: 1..1; stdin: forbidden - Alternative:
searchArguments JSON (replace labels with actual values). Omit optional positionals and options that are not needed. {"options": {"--all-calendars": true, "--calendar": "ID", "--days": "N", "--from": "ISO", "--to": "ISO"}, "positionals": ["search", "QUERY"], "stdin": null} Required options: []; positional arity: 2..2; stdin: forbidden - Alternative:
getArguments JSON (replace labels with actual values). Omit optional positionals and options that are not needed. {"options": {"--calendar": "ID", "--event-id": "ID"}, "positionals": ["get"], "stdin": null} Required options: ["--event-id"]; positional arity: 1..1; stdin: forbidden - Alternative:
createArguments JSON (replace labels with actual values). Omit optional positionals and options that are not needed. {"options": {"--all-day": true, "--calendar": "ID", "--description": "TEXT", "--end": "ISO", "--location": "TEXT", "--start": "ISO", "--summary": "TEXT", "--timezone": "TZ"}, "positionals": ["create"], "stdin": null} Required options: ["--end", "--start", "--summary"]; positional arity: 1..1; stdin: forbidden - Alternative:
updateArguments JSON (replace labels with actual values). Omit optional positionals and options that are not needed. {"options": {"--calendar": "ID", "--description": "TEXT", "--end": "ISO", "--event-id": "ID", "--location": "TEXT", "--start": "ISO", "--summary": "TEXT", "--timezone": "TZ"}, "positionals": ["update"], "stdin": null} Required options: ["--event-id"]; positional arity: 1..1; stdin: forbidden - Alternative:
deleteArguments JSON (replace labels with actual values). Omit optional positionals and options that are not needed. {"options": {"--calendar": "ID", "--event-id": "ID"}, "positionals": ["delete"], "stdin": null} Required options: ["--event-id"]; positional arity: 1..1; stdin: forbidden - Alternative:
moveArguments JSON (replace labels with actual values). Omit optional positionals and options that are not needed. {"options": {"--event-id": "ID", "--from": "CALENDAR_ID", "--to": "CALENDAR_ID"}, "positionals": ["move"], "stdin": null} Required options: ["--event-id", "--to"]; positional arity: 1..1; stdin: forbidden
- Caller:
Instruction Interfaces:
These are LLM-readable instruction surfaces. Read and follow them directly; do not invoke the MCP server for them.
connect-google.interface.default@1— Route Google OAuth-client preparation according to whether a valid Desktop client is already installed.
<!-- END BLUEPRINT INTERFACES -->Google Calendar
Use online-calendar._rtx.interface.scripts-gcal for calendar reads and writes. Invoke one
interface call per operation, minimize network round trips, and issue independent calls
in parallel. Use the public process contract for complete subcommand and option shapes;
do not improvise invocation forms. Prefer the --all-calendars mode for schedule-wide
agenda or search requests.
Reads may proceed directly. Create, update, and delete requests may proceed when
the user supplied the necessary details for create, update, or delete. Confirm first
when adding attendees because it sends invitations, and before deleting an event that
has attendees or is far in the future. Treat move as authorized only when the user
explicitly asked to move the identified event to the named destination calendar.
Report each mutation's title, time, calendar, and link when available.
Routing calendar operations
Use calendars when the target calendar is unknown. Before create, match the event to
the available calendar names. Use a clear match without asking; ask when multiple or no
calendars plausibly fit. Do not silently use primary when another calendar is clearly
more appropriate.
Agenda and search results are bounded to 50 events and do not paginate. Disclose that bound when the requested range may contain more results. Recurrence, attendees, and free-busy lack dedicated modes. For a genuine one-off unsupported API operation, use the declared token mode only when direct API access is explicitly in scope, keep the token secret, and apply the same confirmation rules. Prefer extending the public interface for repeated use.
Verify writes
Through online-calendar._rtx.interface.scripts-gcal, verify every create and delete and every
nontrivial update. The only exception is a metadata-only update limited to summary,
description, or location.
- After
create, fetch the returned event ID and compare start, end, summary, location, and description with the request. On mismatch, delete the new event and report the intended and observed values. - Before
update, fetch and retain the fields being changed. Fetch again afterward. On mismatch, restore the retained values and report the discrepancy. - After
delete, fetch the event and require statuscancelled; Google soft-deletes events rather than returning not-found. If it remains confirmed, report failure.
When completion is uncertain, inspect current event state before retrying; repeated creates can produce duplicates.
Google authorization
For setup or reauthorization, invoke connect-google.interface.default. Its
deterministic coordinator creates a credential file, asks Calendar's owner to
probe live access, and stores the path only after verification. Treat only
complete: true as successful setup; report any incomplete Calendar result and
retry through connect-google with the same file.
Existing legacy Calendar credentials remain runtime-readable until a verified credential-file binding replaces them. Do not offer legacy setup as a new route. Replacing the single active Calendar account requires explicit confirmation.
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.

