Agent-Native Calendar
Agent-Native Google Calendar - manage events, sync, and public booking
Descripción del creador (original en inglés)
Which days and times am I free? Reads your calendar feeds and answers with the slots you can offer.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
WHENFREE_CALENDARS, WHENFREE_TZLos valores marcados como secretos son llaves de tu cuenta. Nunca los compartas ni los pegues en un chat.
Necesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"when-free": {
"command": "uvx",
"args": [
"when-free",
"mcp"
],
"env": {
"WHENFREE_CALENDARS": "your-value",
"WHENFREE_TZ": "your-value"
}
}
}
}Ejecuta esto en tu terminal
claude mcp add when-free --env WHENFREE_CALENDARS=your-value --env WHENFREE_TZ=your-value -- uvx when-free mcpCompleta los valores vacíos antes de ejecutarlo.
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"when-free": {
"command": "uvx",
"args": [
"when-free",
"mcp"
],
"env": {
"WHENFREE_CALENDARS": "your-value",
"WHENFREE_TZ": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"when-free": {
"type": "stdio",
"command": "uvx",
"args": [
"when-free",
"mcp"
],
"env": {
"WHENFREE_CALENDARS": "your-value",
"WHENFREE_TZ": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
WHENFREE_TZ envEsta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 8 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub YauhenBichel, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
Debes completar: WHENFREE_CALENDARS
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (0.4.1) llegó al registro hace 30 días.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Python (uv) en tu computadora.
En la misma categoría: Agent-Native Calendar, Excel MCP Server, MCP Server for Excel
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:↓ Descargas por semanai★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
Agent-Native Google Calendar - manage events, sync, and public booking
Create and edit Excel files with AI: charts, PivotTables, formulas. No Excel needed.
Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
Someone asks when you're free. This reads your calendar and gives you the answer, ready to paste.
.ics file. Several calendars at once.Try it · Add your calendar · Everyday use · Reading a message · Use it from other tools · Other devices · Privacy · Settings · What counts as busy · Limits · Problems · Where it is listed
With uv, nothing to install first:
uvx when-free demo
To keep it (needs Python 3.11 or newer):
uv tool install when-free # or: pipx install when-free
whenfree demo
Using Claude Desktop? You can skip all of this: install the one-click extension.
whenfree demo makes up a calendar for next week and answers a recruiter's message from it. It reads none of your data and saves nothing:
> Hi! Thanks for applying. Could you share a few times on Tuesday, Wednesday or Thursday next week,
between 10am and 4pm? The interview takes about an hour.
Free between 10:00 and 16:00 (Europe/London), slots of 60+ minutes, 15-minute buffer around events:
.ics:| Calendar | Where to find it |
|---|---|
| Google Calendar | Settings → click your calendar on the left → *Integrate calendar* → Secret address in iCal format |
| Outlook | Settings → Calendar → Shared calendars → *Publish a calendar* → the ICS link |
| iCloud | Calendar → the share icon next to the calendar → *Public Calendar* (a webcal:// link is fine) |
| Anything else | Any .ics link, or an exported .ics file |
$ whenfree add
Paste the address and press Enter (it is not shown): Added 'personal': 412 events, 9 block time in the next 14 days. Saved in /Users/you/.config/when-free/config.toml, readable only by you. Now run: whenfree
On a Mac, pbpaste | whenfree add takes the address straight from the clipboard.
Keep the address secret. It works like a password: anyone who has it can read that calendar. Give it to
whenfree addand to nothing else, so not to a chat, a shell command or a repository. If it leaks, reset it in your calendar's settings.
Google Calendar, step by step
Do this in a browser, because the phone app doesn't show the address.
basic.ics. Don't take "Public address in iCal format", which only works for a calendar you've made public.whenfree add and paste it when asked.No "Secret address"? Work and school accounts can have it switched off. Export the calendar instead (Settings → Import & export → Export), unzip it, and run whenfree add ~/calendars/work.ics. An export is a snapshot, so export again when your calendar changes.
More than one calendar
A slot counts as free only if it's free in every calendar you add.
whenfree add --name work # a second calendar: asks for its address
whenfree add ~/calendars/family.ics # an exported file instead of an address whenfree check # can every calendar be read?
They're kept in ~/.config/when-free/config.toml, one [[calendar]] block each, with a name and a url or path. You can edit that file by hand. whenfree init creates an empty one.
| You want | Run | |
|---|---|---|
| Your free time over the next working days | whenfree | |
| The days and hours a message asks about | `pbpaste \ | whenfree --message - (Mac clipboard) or whenfree --message invite.txt` |
| Next week's afternoons | whenfree --days "next week" --hours afternoon | |
| Specific days | whenfree --days "Thu 15 Oct, Fri 16 Oct" | |
| A date range | whenfree --from 2026-10-12 --to 2026-10-16 | |
| Only slots long enough for a 90-minute meeting | whenfree --min 90 | |
| To see what blocks each day | whenfree --busy | |
| The answer in another time zone | whenfree --tz America/New_York | |
| JSON for a script | whenfree --format json | |
| To copy the answer | `whenfree ... \ | pbcopy` (only the slot lines are copied) |
Only the slot lines go to standard output. The context goes to standard error, so | pbcopy copies exactly what you'd paste into a reply.
--message finds the days and hours in ordinary text. It understands:
Thu 1 Oct · Thursday the 1st of October · Monday, October 5th · 5 October · 2026-10-05 · Wednesday 30thbetween 10:00am and 4:00pm · 10:00–16:00 · 9-5pm · 2 to 4 pm| Written | Read as |
|---|---|
today · tomorrow · the day after tomorrow | Thu 1 · Fri 2 · Sat 3 Oct |
Thursday or Friday | the coming ones, today included: Thu 1, Fri 2 Oct |
this Tuesday · next Tuesday | Tuesday of this week (already past, so left out and named) · Tuesday of next week, Tue 6 Oct |
next week · this week · the week after next | that week's working days, from today on |
Tuesday or Wednesday next week | Tue 6, Wed 7 Oct |
any afternoon · Friday morning · evening | 12:00–17:00 · 09:00–12:00 · 17:00–20:00, unless hours are given |
It always tells you how it read the dates, so you can check them against the message. A few rules keep it from guessing:
--days.when-free never connects to your mailbox. You paste the message, pipe it in, or save it to a file.
Let your own language model read the message
If you run a model yourself, it can do the reading instead. Add this to the settings file:
[extract]
command = ["ollama", "run", "llama3.2"] # the prompt is sent on standard input
The command receives the message and must print JSON: {"days": ["2026-10-05"], "hours": "10:00-16:00", "minutes": 60}. If it fails, pattern matching is used instead. Nothing runs unless you configure it, and --no-extract skips it for one run. The message goes to whatever that command talks to, so use a local model for private text.
Every way gives the same answer, only reads, and leaves event titles out unless asked.
| Your tool | Use | Set up |
|---|---|---|
| Claude Desktop | One-click extension | double-click |
| Claude Code, with a skill that knows when to use it | Plugin | two commands |
| Claude Code, Cursor, VS Code, any MCP client | MCP server | one line |
| Raycast, a right-click on a message (macOS) | Recipes | a few minutes |
| Open WebUI, n8n, Shortcuts, Raycast, anything that calls a URL | Local HTTP server | whenfree serve |
| Your own agent with function calling | Schema and call | two commands |
| Python | The library | import whenfree |
The plugin bundles the MCP server with a skill that tells Claude when to use it: when you ask about your availability, paste a message asking when you can meet, or before it proposes a time.
/plugin marketplace add YauhenBichel/when-free
/plugin install when-free@when-free
Then add your calendar once, if you have not yet: uvx when-free add.
claude mcp add when-free -- uvx when-free mcp # Claude Code
For Cursor and other MCP clients, add this to their server list. uvx fetches when-free the first time, so there's nothing to install:
{
"mcpServers": { "when-free": { "command": "uvx", "args": ["when-free", "mcp"] } } }
If you installed it with uv tool install, use "command": "whenfree", "args": ["mcp"] instead. It's also listed in the MCP registry as io.github.YauhenBichel/when-free, on mcprush and in the M8ven Trust Index.
Then just ask: *"Here's the recruiter's message. Which of those times can I do?"* The assistant calls free_slots and answers from your real calendar.
| Tool | What it does |
|---|---|
free_slots | Free time per day. Takes days, or from and to, or a message, plus hours, min_minutes, buffer_minutes, timezone, weekends, all_day_busy, include_busy |
check_calendars | Whether each calendar can be read, with event counts. No details, no addresses |
If a tool can't do its job, the assistant gets an error it can read ("could not read the calendar 'work'"), never a guess.
whenfree serve # http://127.0.0.1:8765, only reachable from this computer
curl -H "Authorization: Bearer $(cat ~/.config/when-free/token)" \
'http://127.0.0.1:8765/free_slots?days=next%20week&hours=afternoon'
Solo se muestra el principio; lee el resto en el repo