Works with your calendar
Put an app's dates on Google Calendar, Apple Calendar or Outlook as a live subscription that keeps up as people add more — schedules, RSVPs, due dates and bookings.
What you can build
Any app that keeps dates can put them on the calendar people already check: a team's game schedule, a club's events with RSVPs, homework due dates, shifts, bookings on a page you run. Each person subscribes once, and the items they add later arrive on their calendar by themselves. Google Calendar, Apple Calendar and Outlook all subscribe to the same feed, so one button serves everyone.
How it connects
A live calendar feed your app serves. Your backend.js publishes each
person's dated items as an .ics calendar at a link only they hold, and the
app shows a Subscribe button that opens it as webcal://. A phone calendar
adds it in one tap; Google Calendar and Outlook take the same link under "add a
calendar from a URL". The calendar app fetches the feed on its own schedule
from then on, so there is no account to connect and no key to save.
What it can read and do
| Your app can | How |
|---|---|
| Give each person their own feed | A private random link per person, made the first time they open the calendar screen |
| Keep the feed current | A scheduled job gathers each person's items every minute, and the feed serves the latest set |
| Update and remove events | Each event keeps its id, so a change updates the event and a deleted item drops off |
| Serve a provider's bookings | On a booking page, the person who runs it gets a feed of every booking on their pages, and each client gets their own |
Starter prompts
- Make a schedule for our soccer team's games and practices that everyone can add to their phone calendar.
- Build a homework tracker where each assignment has a due date, and my due dates show up in my calendar.
- Make an event page for our street fair where people RSVP to the shows they like and get them as a calendar feed.
Good to know
- Each calendar app refreshes on its own clock. Apple Calendar lets you choose how often it checks; Google Calendar and Outlook check on their own schedule, often a few hours apart. The feed asks for a refresh at least every six hours.
- The link is the key to that person's feed. Sharing it on purpose shares the calendar; deleting the link's record in the app ends it.
- The calendar name is set when someone subscribes, so pick the app's name before you share the Subscribe button widely.
- Dates work everywhere in the app too. "Tomorrow" or "every Monday" in a record resolves to a real date as it is saved, and the app shows it so one tap adjusts it.
Go deeper
- The calendar skill — the builder's own recipe: the feed, the token, and the calendar format rules.
- Your app has a backend — scheduled jobs and
the
fetchhandler that serves the feed. - All integrations