indico / indico/newdle

Newdle as CalDAV Client

Open
#336 9 comments 1 reaction 0 assignees View on GitHub
Dominant language
JavaScript
Stars
118
Forks
76
PR merge metrics
No merged PRs in 30d

Description

I am very glad to read that CERN switches to open source for its “office work” and contributes to create open source software in the category “Events”.

There are standard protocols suitable for sharing information about events: iCalendar, CalDAV, and possibly JMAP. These protocols are not well supported by big vendors on purpose. In the repositories of newdle, indico and indico-plugins do not mention these terms, apart from newdle/calendar.py and indico/modules/categories/serialize.py:28: """Export the events in a category to iCal. .

Please extend your framework to work with iCalendar and CalDAV. I can provide you with a sample user and password: aaa@aegee.org and abc . It works even with SPNEGO/Kerberos (for aaa@AEGEE.ORG), but also works anonymously (it returns only 401 when username/password do not match). You can edit the personal calendar of the account as you want.

Based on this email address, RFC 6764, and the DNS TXT/SRV records _caldavs._tcp.aegee.org the newdle-server shall be able to determine the bootstrapping URL: https://mail.aegee.org/dav/calendars:444 and then the calendar-home-set. Based on the results, with this query:

`curl -XREPORT -H'content-type:application/xml; charset="utf-8"' -HDepth:1 --data '' https://mail.aegee.org:444/dav/calendars/user/aaa@aegee.org/ # -u aaa@aegee.org:abc`

the server returns the free-busy state.
```
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//CyrusIMAP.org/Cyrus 3.2.5-174-gc44f9d093//EN
BEGIN:VFREEBUSY
DTSTAMP:20210214T125927Z
DTSTART:20210204T140000Z
DTEND:20210305T220000Z
FREEBUSY:20210214T130000Z/20210214T131500Z
END:VFREEBUSY
END:VCALENDAR
```

As the purpose of Newdle is to find free slots of meetings, please make it a proper CalDAV client, which client by provided any email address as attendee, shows the availability (if the attendee's server permits this, as is the case for aaa@aegee.org) of the participant.

For the record Gnome Evolution can read the free-busy information from the server (either in FBURL, or by EWS) and visualize when all parties have free time. So ideally it shall be possible to allocate a slot for a meeting and book the meeting using either Evolution or Newdle.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the calendar references in newdle/calendar.py and indico/modules/categories/serialize.py:28, then map the requested iCalendar and CalDAV discovery, free-busy lookup, and booking behavior. Done should include attendee availability when permitted and the ability to allocate and book a meeting slot through Newdle.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
backend-api-design, networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.