kiwimix/README.md

96 lines
2.3 KiB
Markdown
Raw Normal View History

2020-12-28 01:11:39 +00:00
# Kiwimix (calendar mixer)
2021-05-08 23:25:07 +00:00
Swiss knife for ical & caldav calendars
2020-12-28 01:11:39 +00:00
## Roadmap
2021-06-25 07:14:44 +00:00
Read a calendar
2021-05-08 23:25:07 +00:00
Access to calendar
2020-12-28 01:11:39 +00:00
2021-05-08 23:25:07 +00:00
* :x: access to public calendar
* :x: access to private calendar (with credentials)
2021-05-08 23:18:30 +00:00
* :x: with data from config file with multiple calendars
2020-12-28 01:11:39 +00:00
Download calendar events locally
2021-05-08 23:18:30 +00:00
* :x: choose source calendar
* :x: as separate files ?
* :x: as an in-memory database ?
2020-12-28 01:11:39 +00:00
Merge events
2021-05-08 23:18:30 +00:00
* :x: merge overlapping events
2021-05-08 23:25:07 +00:00
* :x: keep reference to source-calendars/parent-events (meta-data? external?)
* :x: make selected event (source calendar? pattern?) private or anonymous
Upload calendar events remotely
* :x: associate mixed local with remote target calendar
* :x: handle event ids & duplicates
2020-12-28 01:11:39 +00:00
Web I
2021-05-08 23:18:30 +00:00
* :x: split into library + CLI util
* :x: write an API for the lib
* :x: add a web frontend
* :x: add user management & multi-account
Serve calendar locally
* :x: provide caldav urls for generated calendars
2021-06-25 07:14:44 +00:00
##
Find free time
kiwimix generate \
--from-date XXX --to-date YYY \
--from-time 9:00 --to-time 19:00 \
| kiwimix substract - agenda.ics \
Find free time for a meeting
kiwimix generate \
--from-date XXX --to-date YYY \
--from-time 9:00 --to-time 19:00 \
> full.ics
kiwimix union alice.ics bob.ics \
> events.ics
kiwimix substract full.ics events.ics \
> free.ics
Rewrite events
kiwimix filter --merge alice.ics \
| kiwimix filter --anonymize - \
V2 (with stack support)
kiwimix
generate --.... # generate X calendar & push
@ read alice # push alice.ics
@ filter --merge # pop alice, filter & push
@ filter --anonymize # pop alice, filter & push
@ read bob # push bob.ics
@ filter --merge # pop bob, filter & push
@ filter --anonymize # pop bob, filter & push
@ union # pop bob, pop alice, compute alice - bob
@ substract # pop bob, pop alice, compute alice - bob
kiwimix filter --anonymize --merge alice.ics
kiwimix load bob.ics ! anonymize ! merge
2021-05-08 23:18:30 +00:00
## References
2021-06-25 07:14:44 +00:00
* https://github.com/PuloV/ics-golang => features missing but the code is OK
* https://github.com/apognu/gocal => poorly coded
2021-05-08 23:18:30 +00:00
* https://github.com/samedi/caldav-go
2021-05-08 23:25:07 +00:00
* https://github.com/emersion/go-webdav
2021-06-25 07:14:44 +00:00