Objects built from arguments have a TZID but no VTIMEZONE
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 45/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- python
- Lĩnh vực
- backend-api-design
Hướng nghiên cứu
Start by reading create_ical() and complete(rrule_mode="thisandfuture"), the two entry points named in the issue, and inspect how timezone components and recurrence rules are handled. Check the existing tests for add_event, add_todo and completion behavior, then run them with a non-UTC timezone and a calendar containing VTIMEZONE. Done means the timezone data is included and read correctly across the year, while completion works when VTIMEZONE appears before or after the task.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
add_event(dtstart=...) or add_todo(due=...) with a time zone other than UTC writes DTSTART;TZID=Europe/Prague:... without a VTIMEZONE, which RFC 5545 section 3.6.5 requires. Home Assistant creates its events this way, and a user there sees them shifted by the UTC offset in Synology Calendar (https://github.com/home-assistant/core/issues/172990).
I have a fix that adds the missing VTIMEZONE in create_ical(), built with icalendar's Timezone.from_tzid(). One catch: icalendar writes the transitions as one RDATE list and vobject 0.9.9 only reads the first value, so vobject_instance would be an hour off for half of the year. The fix writes one RDATE per line. It also has to touch complete(rrule_mode="thisandfuture"), which takes the first component as the task: it fails with KeyError: 'RRULE' when a VTIMEZONE comes first, as in most tasks from other clients, and marks a VTIMEZONE after the task as completed instead.
The fix was written with Claude and tested against Radicale, Xandikos, Baikal, Nextcloud and SOGo. OK to send it as a PR?
- Ngôn ngữ chính
- Python
- Star
- 412
- Fork
- 113
- Merge trung bình
- 9 giờ 21 phút
- Pull request đã merge (30 ngày)
- 77
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của python-caldav/caldav
-
Add Tobi as author on PyPI, tooĐang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 68/100
python-caldav/caldav#844 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
python-caldav/caldav#792 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
python-caldav/caldav#788 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
python-caldav/caldav#687 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
python-caldav/caldav#847 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của python-caldav/caldav
Issue tương tự
-
community enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
NVIDIA/auto-ontology#463 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Update Atari link on Gymnasium docs pageCó thể đã có người làm @qwist1233-cpu đã nhận hôm nay. Đang mởhelp wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
Farama-Foundation/Gymnasium#1845 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 91/100
WingedGuardian/GENesis-AGI#4101 ·
Maintainer thường phản hồi trong vòng 1 ngày