Skip to content

Calendar feed

Conatus publishes your dated tasks as an iCalendar feed that any calendar app can subscribe to.

Settings → Calendar feed → Enable calendar feed. You get a URL:

https://tasks.example.com/api/ical/8Jx3nQ7pR2vK…

Copy it and add it as a subscribed calendar:

Client Where
Apple Calendar File → New Calendar Subscription
Google Calendar Other calendars → From URL
Thunderbird New Calendar → On the Network → iCalendar (ICS)
Outlook Add calendar → Subscribe from web

Refresh intervals are the client’s business, not the server’s. Google in particular can take many hours to pick up changes.

  • Your incomplete tasks that have a due date, up to 500.
  • Each becomes a VEVENT with the task name as its summary and the description, if any, as its description.
  • Tasks with a due time get a timed event; tasks without one get an all-day event.

Not included: completed tasks, tasks with no due date, deadlines, durations, priorities, labels, subtask structure, comments, attachments, reminders, or tasks in projects shared with you. The feed is read-only. Editing an event in your calendar app does nothing to Conatus.

Times are floating local time, with no timezone attached. Conatus stores a due time as a wall-clock value rather than an instant in a specific zone, so there is no correct timezone to declare. 09:00 shows as 09:00 in whatever zone the calendar client is displaying.

Regenerate issues a new token and invalidates the old URL immediately, so every subscribed client has to be re-pointed. Disable removes the token entirely and the URL starts returning 404.

Regenerate whenever you suspect the link has leaked, or after removing it from a shared machine.

The copyable URL is built from the origin your browser is using, so it is correct as long as you are reaching Conatus at its real external address. If you set up AUTH_URL and PUBLIC_BASE_URL, that is what you will see.

The feed route needs no session, so it must be reachable by whatever machine your calendar client syncs from. A phone on mobile data needs the instance published over HTTPS.

  • For email at a specific time, use reminders.
  • For two-way access from a script or an agent, use the REST API or the MCP server.
  • For push notifications on changes, use webhooks.