Skip to content

Integrate with Nextcloud CalDAV API [$185] #15

Description

@juliusknorr

This issue is about integrating deck with Nextclouds CalDAV API.

Current plan from the discussion below:

Deck CalDAV Tasks
Board VCALENDAR List
Stack VTODO without RELATED-TO property Root-Task
Card VTODO with RELATED-TO (UUID of the Root-Task / Stack) Subtask
Tags CATEGORIES or custom implementation (Nextcloud tagging system) Currently uses CATEGORIES, integration with Nextcloud tags would be better, see nextcloud/tasks#89
Assigned users ATTENDEE or custom implementation ATTENDEE or custom implementation, see nextcloud/tasks#72
Recurring stacks & cards RRULE Recurring tasks & subtasks, see nextcloud/tasks#34
Attachments ATTACH or custom implementation ATTACH or custom implementation, see nextcloud/tasks#91

Tags, assigning users, attachments and recurrence is not supported by Tasks yet either, but it would make much sense to implement these features. And if we see that it is not really possible to implement this with pure CalDAV I would be open to implement it without syncing it via CalDAV and have it only available in the webinterface. This would still be better than not having it at all in Tasks and would not limit Deck.

  1. Expose deck boards as VCALENDAR, try to map as much data from deck to the VTODO (read only access) Expose boards as calendars #1545
  2. Allow updating VCALENDAR entries, try to map as much as possible from vtodo to the deck database and store the rest as plain vtodo data, so we can still push it out over CalDAV (write access) Write access over CalDAV #2399
  3. Deck data could be moved to the DAV backend.

Activity

  1. joergmschulz commented on Feb 1, 2017

    @joergmschulz

    as sharing the cards is essential, a log of changes to

    Activities

    would be nice.

  2. poVoq commented on Feb 19, 2017

    @poVoq

    Would it be possible to have a common due date that is linked with the calendar as a shared event between multiple cards as a "milestone" with its own colored label displayed on the card? I.e. some sort of way to link labels to CalDav events?

  3. poVoq commented on Feb 19, 2017

    @poVoq

    Another possible integration would be to link cards to CalDAV task categories, so that if a user creates a new CalDAV task in an external application (lets say OpenTasks on Android) and chooses the right category for it, Deck automatically uses the name of that category to sort it to the card with the same name.

  4. juliusknorr commented on Feb 20, 2017

    @juliusknorr
    MemberAuthor

    I thought a lot about how to integrate with the Nextcloud WebDAV/CalDAV/CardDAV interfaces, it will be not as simple as i initially thought. I'll take some time next week to write up what i had in mind and publish some kind of roadmap. 😉

  5. simonpostma commented on Feb 25, 2017

    @simonpostma

    If subtasks become a thing in Deck, it can easily compete with whatever kanban system out there. Keeping the syncing with Tasks optional would be great imo.

    Perhaps a functionality to make multiple decks if that is possible?

  6. 9662 commented on Feb 26, 2017

    @9662

    XMPP group-chat notifications for activities would be also nice.

    It is a reasonable idea, but it belongs to the notifications part of Nextcloud, not to Deck.

    Would it be possible to have a common due date that is linked with the calendar as a shared event between multiple cards as a "milestone" with its own colored label displayed on the card? I.e. some sort of way to link labels to CalDav events?

    Reinventing the bug tracker? They're supposed to complement, not duplicate each other. You can probably do this already via webhooks from your bug tracker anyway.

  7. poVoq commented on Feb 26, 2017

    @poVoq

    @9662:
    Regarding the first comment: maybe, but you might not want to spam your group-chat with all the file etc. changes, while deck and task updates might be more interesting.

    Regarding the second: no, what have milestone dates to do with a bug-tacker? I think it is worth to have common event linked date labels on the cards so that it is quickly visible to the users what kind of common deadlines might be related to which cards.

  8. juliusknorr commented on Feb 27, 2017

    @juliusknorr
    MemberAuthor

    nextcloud/server#2829 will allow apps to register custom sabre plugins, if this is in we could create our own CalDAV endpoint at /dav/deck that will allow users to subscribe to within their calendar apps.

    Here is a short summary of what I planned for that endpoint:

    • A board should exposed as a VCALENDAR
    • Cards will be exposed as VTODO
    • Due dates can be added and exposed as VEVENT
      My first plan was to just add the due dates to existing calendars, but it looks like there is no easy way to do that at the moment. Also there are to many issues with calendar permissions and adding to much complexity, so I think the above proposed solution will be the best way.

    Another possible integration would be to link cards to CalDAV task categories, so that if a user creates a new CalDAV task in an external application (lets say OpenTasks on Android) and chooses the right category for it, Deck automatically uses the name of that category to sort it to the card with the same name.

    @poVoq That should be possible with the above solution.

    Would it be possible to have a common due date that is linked with the calendar as a shared event between multiple cards as a "milestone" with its own colored label displayed on the card? I.e. some sort of way to link labels to CalDav events?

    @poVoq This is a far more advanced feature. Let's just focus on the basics for now.

    If subtasks become a thing in Deck, it can easily compete with whatever kanban system out there. Keeping the syncing with Tasks optional would be great imo.

    @simonpostm That should not be a problem, if there will be a dedicated dav endpoint for the deck app.

    Perhaps a functionality to make multiple decks if that is possible?

    @simonpostma Not sure if I understand that correctly. Can you describe that a bit more?

    XMPP group-chat notifications for activities would be also nice.

    It is a reasonable idea, but it belongs to the notifications part of Nextcloud, not to Deck.

    👍

    Hope I didn't forgot to comment on something. 😉

  9. simonpostma commented on Mar 4, 2017

    @simonpostma

    @juliushaertl

    I uninstalled Deck because i need my kanban to have more features at this point in time (cant wait for the next update so i can drop my current Kanban service and start using Deck :D), hasty as i was i didn't remember that Deck already has the feature to make multiple boards. Sorry for that.

  10. simonpostma commented on Mar 22, 2017

    @simonpostma

    Is there any ETA on the next update? Not trying to pressure you, just can't wait to exchange kanbanflow with Deck

  11. juliusknorr commented on Mar 25, 2017

    @juliusknorr
    MemberAuthor

    Sorry for the delay, I've been quite busy this week. It is on my list for the upcoming week.

  12. simonpostma commented on Apr 10, 2017

    @simonpostma

    It's clear you're very busy. Do take your time! I'll be looking to donate some to you after it's released.

  13. andreasjacobsen93 commented on Jun 23, 2017

    @andreasjacobsen93
    Member

    I think we should explore more how deck and tasks can be integrated? I think it could result in some really valuable features.

  14. 57 remaining items

  15. makayabou commented on Jun 22, 2020

    @makayabou

    Will wait for it to send a bounty, then. thanks

  16. rfc2822 commented on Oct 5, 2020

    @rfc2822

    I have just tested CalDAV read access and it works fine with DAVx5!

    Just wanted to now that on Android / with the OpenTasks API, task lists can't be set as write-only (yet): dmfs/opentasks#851

    So people can edit/modify tasks locally, but the changes can't be synchronized to the server. → Write access over CalDAV would be really nice 😏

  17. juliusknorr commented on Oct 8, 2020

    @juliusknorr
    MemberAuthor

    Moved out #2399 for the write support so we have an individual ticket to track this.

  18. removed this from the 1.2.0 milestone on Oct 8, 2020
  19. q-wertz commented on Oct 15, 2020

    @q-wertz
    Contributor

    Didn't find this in the discussions and not sure if it is worth an issue.
    So far all the tasks of a Deck where one is participant are published as ToDo. Wouldn't it be more straight forward to only see the tasks one is assigned to?
    It makes it quite confusing to have now dozen of Tasks one is not assigned to.

  20. alphashuro commented on Nov 14, 2020

    @alphashuro
  21. stefan-niedermann commented on Nov 14, 2020

    @stefan-niedermann
  22. juliusknorr commented on Dec 29, 2020

    @juliusknorr
    MemberAuthor

    Closing this as the first integration part is done and we will track write access in #2399

  23. devvv4ever commented on Apr 19, 2021

    @devvv4ever

    Having a CalDAV integration is crucial for us, so I was thinking a little bit about the integration... In Oct 2017 you guys were discussing about whether or not categories should be used for stacks. I'd strongly vote for it.

    The reason is that you should keep in mind how a client, that isn't aware of a Kanban-style tasks list, would represent these tasks. Just think of the "demo board":

    demo board

    Creating a VTODO per card would create the tasks "Write a press release", "Take nice screenshots", "Write a blog" and "Think of a slogan". This is without any doubt what a user would expect. But also creating a VTODO per stack would also create the tasks "Todo", "In progress" and "Done". What are these tasks supposed to represent? Those tasks can't be assigned to anyone, they can't ever be completed, because that's not what stacks are for, and they will dangle around in every other CalDAV client.

    Just a small addition here: why not considering implementing https://tools.ietf.org/html/rfc5545#section-3.6.3 VJOURNAL for such things? VJOURNAL is part of the CalDAV API and it can be used more straightforward as a note or a "simple" task without the need of an end-date or progress. With the RELATED-TO field they could be assigned to an existing VEVENT or VTODO. We hope to get VJOURNAL synchronization into DAVx5 in the future. We want to get that into a supporting app that can display VTODO and VJOURNAL at the same time.

  24. HLFH commented on Apr 20, 2021

    @HLFH

    @devvv4ever Create a feature request?

  25. PhrozenByte commented on Apr 20, 2021

    @PhrozenByte
    Member

    @HLFH See #2399 (comment), it's an implementation detail of this partially implemented feature, i.e. no separate feature request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions