[PR #748] [CLOSED] Enable iOS CalDAV support for recurring tasks #2832

Closed
opened 2026-03-22 14:20:41 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/go-vikunja/vikunja/pull/748
Author: @harrystuart
Created: 5/9/2025
Status: Closed

Base: mainHead: fix/enable-ios-recurring-caldav-task-support


📝 Commits (9)

  • 7696c98 update caldav
  • 7afc9f5 update dockerfile
  • 44bed49 Improve RRULE generation by handling daily and weekly intervals when applicable.
  • 15d6140 Don't expect vtodo to be first ical entry
  • bb6b732 Merge branch 'harry-local' into fix/enable-ios-recurring-caldav-task-support
  • e9b6937 merged
  • 2296f98 revert dockerfile
  • d0b52a7 revert dockerfile to new
  • 462430c Add trailing whitespace to dockerfile

📊 Changes

2 files changed (+31 additions, -5 deletions)

View changed files

📝 pkg/caldav/caldav.go (+23 -3)
📝 pkg/caldav/parsing.go (+8 -2)

📄 Description

This PR updates how Vikunja stores tasks in its CalDAV server. Specifically, it maps RRULE:FREQ=SECONDLY to the appropriate DAILY or WEEKLY interval frequency where possible.

Why?

Vikunja currently stores all CalDAV recurring tasks with FREQ=SECONDLY in its RRULE field unless the "Repeat mode" is set to "Monthly". This is permissible and logical as tasks recurring daily or weekly can be represented as recurring every X seconds. Unfortunately, iOS does not support CalDAV tasks with a SECONDLY interval frequency.

If you try and connect to Vikunja CalDAV from iOS and create, for example, a daily recurring task, iOS Reminders will break and refuse to show subsequent updates to the task list.

Please see this issue to understand my debugging process.

Resolves https://github.com/go-vikunja/vikunja/issues/728


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/go-vikunja/vikunja/pull/748 **Author:** [@harrystuart](https://github.com/harrystuart) **Created:** 5/9/2025 **Status:** ❌ Closed **Base:** `main` ← **Head:** `fix/enable-ios-recurring-caldav-task-support` --- ### 📝 Commits (9) - [`7696c98`](https://github.com/go-vikunja/vikunja/commit/7696c98642f334638cec67e3a94455b9a420ecb7) update caldav - [`7afc9f5`](https://github.com/go-vikunja/vikunja/commit/7afc9f5ef8d8af0a2e42a16c62d61415d8eab29e) update dockerfile - [`44bed49`](https://github.com/go-vikunja/vikunja/commit/44bed49f68484a11c12e7559769e3fedea2790bb) Improve RRULE generation by handling daily and weekly intervals when applicable. - [`15d6140`](https://github.com/go-vikunja/vikunja/commit/15d614080c8ca4764e240c044833e3f2acaf5aa9) Don't expect vtodo to be first ical entry - [`bb6b732`](https://github.com/go-vikunja/vikunja/commit/bb6b732824e7fb6ce4ed4914585386ad02c998cb) Merge branch 'harry-local' into fix/enable-ios-recurring-caldav-task-support - [`e9b6937`](https://github.com/go-vikunja/vikunja/commit/e9b693707fbb659b1caded0f7f81c77992cce0eb) merged - [`2296f98`](https://github.com/go-vikunja/vikunja/commit/2296f983b6963477873f8179d3fb405971f1f1c3) revert dockerfile - [`d0b52a7`](https://github.com/go-vikunja/vikunja/commit/d0b52a742c717eeaa0498f7eaa8134117e9d118f) revert dockerfile to new - [`462430c`](https://github.com/go-vikunja/vikunja/commit/462430ce239a25fdae614cc0ade289b5c441bb5d) Add trailing whitespace to dockerfile ### 📊 Changes **2 files changed** (+31 additions, -5 deletions) <details> <summary>View changed files</summary> 📝 `pkg/caldav/caldav.go` (+23 -3) 📝 `pkg/caldav/parsing.go` (+8 -2) </details> ### 📄 Description This PR updates how Vikunja stores tasks in its CalDAV server. Specifically, it maps `RRULE:FREQ=SECONDLY` to the appropriate `DAILY` or `WEEKLY` interval frequency where possible. **Why?** Vikunja currently stores all CalDAV recurring tasks with `FREQ=SECONDLY` in its `RRULE` field unless the "Repeat mode" is set to "Monthly". This is [permissible ](https://datatracker.ietf.org/doc/html/rfc5545#section-3.3.10) and logical as tasks recurring daily or weekly can be represented as recurring every X seconds. Unfortunately, [iOS does not support](https://developer.apple.com/documentation/eventkit/ekrecurrencefrequency) CalDAV tasks with a `SECONDLY` interval frequency. If you try and connect to Vikunja CalDAV from iOS and create, for example, a daily recurring task, iOS Reminders will break and refuse to show subsequent updates to the task list. Please see [this issue](https://github.com/go-vikunja/vikunja/issues/728) to understand my debugging process. Resolves https://github.com/go-vikunja/vikunja/issues/728 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-03-22 14:20:41 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/vikunja#2832