{"slug": "my-ai-agent-gets-his-own-calendar", "title": "My AI agent gets his own calendar", "summary": "Developer Jonas Honecker built calfeed, a zero-dependency JavaScript service that lets his AI agent, Eddie, maintain a subscribable calendar via an external server, using basic authentication and random UUIDs for hard-to-guess URLs. Honecker deployed the project, published the code in the calfeed GitHub repository, and subscribed to the calendar on his phone, keeping his private calendar separate. He now wants to develop calfeed into a backend that lets AI agents manage calendars humans can subscribe to, such as public listings of music or sports events.", "body_md": "I want my AI agent (you know him, Eddie) to manage a calendar for me. Just not my private one. That one I only share with my girlfriend, which makes living together easier. While Eddie is also a part of my life, I wouldn't entrust him with my calendar. At least I don't want to find out what happens when he messes something up there. Additionally, he doesn't need to know everything about me. Some things I'd like to keep to myself (and my girlfriend).\n\nWhile brainstorming for a solution, Eddie proposed he could create ics files for me to import. You probably know these from booking an appointment at a barber's, for example. Alongside the confirmation email they sometimes send you an event that you can add to your calendar by just clicking on it. That works fine, but you can't do it that easily from a Telegram chat (at least on the iPhone). That's super annoying, since Telegram is my main way of interacting with Eddie. But I liked the direction.\n\nWhat if instead of serving me ics files directly, Eddie maintained one file on an external server that I subscribe to via my calendar app? Pretty much a public calendar. But we could make it more private by supporting basic authentication as well as random UUIDs for hard-to-guess URLs. I liked that idea, so we built it.\n\nI first started working on it with Eddie on the Raspberry (me giving directions on my phone), but I soon moved the project to GitHub to review it on my laptop. Somewhere along the way I discovered that Eddie, for I don't know what reason, had decided that this project should have no dependencies. I found that kind of funny for a JavaScript project, but also edgy, so why not.\n\nThat decision did lead to a lot of discussions about whether to introduce libraries for input validation, type generation, or just types in general, as well as something to generate an OpenAPI schema. You can take a look at the [calfeed repository](https://github.com/jonashonecker/calfeed) to see who's won. In the end, what I really cared about were language-independent API tests and nice documentation. As long as they looked good, I didn't want to bother with what the code looked like.[1](#footnote-1)\n\nBut when it came to deployment, that zero-dependency policy paid off nicely. No build step whatsoever. Apart from some infrastructure like Caddy for TLS, you just run the script.\n\nAnyways, I deployed it, gave Eddie his calendar, and subscribed to it on my phone. This works pretty well so far and I'm happy with the solution. But I'd like to develop calfeed further into a backend that lets AI agents manage calendars we humans can subscribe to. The whole thing started as a way to keep my calendar to myself, but the idea works just as well in the other direction. Eddie could maintain a public calendar with all music events in my city or sports events or whatever, and everyone who's interested could subscribe to it.\n\nWhen I look at it, I do get an urge to refactor, but I try to resist. [↩](#footnote-ref-1)", "url": "https://wpnews.pro/news/my-ai-agent-gets-his-own-calendar", "canonical_source": "https://heyjonny.dev/posts/gave-my-ai-agent-a-calendar/", "published_at": "2026-09-16 00:00:00+00:00", "updated_at": "2026-09-16 18:14:51.785096+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools"], "entities": ["Jonas Honecker", "Eddie", "calfeed", "GitHub", "Telegram", "Caddy", "Raspberry"], "alternates": {"html": "https://wpnews.pro/news/my-ai-agent-gets-his-own-calendar", "markdown": "https://wpnews.pro/news/my-ai-agent-gets-his-own-calendar.md", "text": "https://wpnews.pro/news/my-ai-agent-gets-his-own-calendar.txt", "jsonld": "https://wpnews.pro/news/my-ai-agent-gets-his-own-calendar.jsonld"}}