我在关闭rsvp时遇到问题
它在outlook上是什么样子

我的代码
cal = icalendar.Calendar()
cal.add('prodid', '-//My calendar application//example.com//')
cal.add('version', '2.0')
cal.add('method', "REQUEST")
cal.add('RSVP', 0)
event = icalendar.Event()
for a in attendees:
event.add('ATTENDEE', a)
event.add('organizer', "test@test.com")
event.add('RSVP', False) 我得到了这样的错误
File "C:\Program Files (x86)\Python38-32\Lib\site-packages\icalendar\prop.py", line 164, in __new__
self = super(vBoolean, cls).__new__(cls, *args, **kwargs)
ValueError: invalid literal for int() with base 10: 'TRUE'我尝试了很多方法,我想关闭它,我写的是true,因为本文档中的https://www.kanzaki.com/docs/ical/rsvp.html说明默认值为false。我尝试像这样在event.add('RSVP', "1")中写入0或1,但也不起作用
使用命令print(cal.to_ical().decode("utf-8"))显示RSVP为false,但我仍然进入outlook RSVP按钮
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//My calendar application//example.com//
METHOD:REQUEST
RSVP:FALSE
BEGIN:VEVENT
SUMMARY:12312312312312312312312312\,
DTSTART;TZID=Europe/London;VALUE=DATE-TIME:20201030T070000
DTEND;TZID=Europe/London;VALUE=DATE-TIME:20201030T080000
DTSTAMP;VALUE=DATE-TIME:20201030T060000Z
UID:1231231234545646453245345345343
SEQUENCE:1
ATTENDEE:test@test.com
ATTENDEE:test2@test.com
CATEGORY:Event
CREATED;VALUE=DATE-TIME:20201013T130632Z
DESCRIPTION:asdasdadsssss
ORGANIZER:testtts@tesssst.com
PRIORITY:5
PRIORITY:5
RSVP:FALSE
STATUS:confirmed
BEGIN:VALARM
ACTION:DISPLAY
TRIGGER;RELATED=START:-PT1H
END:VALARM
END:VEVENT
END:VCALENDAR在outlook的.isc文件中,我得到了行ATTENDEE;CN="Test";RSVP=TRUE:mailto:it.test@test.com,但在我的代码中,它设置为false。
请帮帮我我被困住了所有的帮助我都会很感激
发布于 2020-10-13 18:38:46
使用True或False可使代码正常工作。您还需要将事件添加到日历中。
下面是一个完整的工作示例:
import icalendar
# Test data.
attendees=["Jim", "Susan", "Peter"]
cal = icalendar.Calendar()
cal.add('prodid', '-//My calendar application//example.com//')
cal.add('version', '2.0')
cal.add('method', "REQUEST")
cal.add('RSVP', 0)
event = icalendar.Event()
for a in attendees:
event.add('ATTENDEE', a)
event.add('organizer', "test@test.com")
event.add('RSVP', False)
cal.add_component(event)
print(cal.to_ical().decode("utf-8"))输出:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//My calendar application//example.com//
METHOD:REQUEST
RSVP:FALSE
BEGIN:VEVENT
ATTENDEE:Jim
ATTENDEE:Susan
ATTENDEE:Peter
ORGANIZER:test@test.com
RSVP:FALSE
END:VEVENT
END:VCALENDAR在Outlook中是否正确解释了这一点我无法检查,因为我没有Outlook。我也不是iCalendar格式的专家。但是对于RSVP,Python代码使用True或False就可以很好地工作。
如果在将iCalendar导入Outlook时仍有问题,请手动创建一个iCalendar文件,并查看Outlook是否按预期导入该文件。如果没有,很可能是iCalendar文件有问题。
当您知道您有一个ical文件可以正确地导入到Outlook时,然后才尝试在Python中创建该iCalendar文件。
https://stackoverflow.com/questions/64319033
复制相似问题