ics
3 TopicsOutlook not parsing ics invites with rrule BYMONTHDAY=-1 or BYSETPOS=-1 properly
Current Behavior When an ics event is attached or imported as a file, and the rrule contains either BYMONTHDAY=-1 or BYSETPOS=-1, it is not properly converted to the outlook/exchange meeting type and the ics attachment will read as "not supported calendar message". It is possible to work around this by appending an additional semicolon to any property in the rrule string prior to the BYMONTHDAY=-1 or BYSETPOS=-1. However, the workaround above is actually syntactically invalid. Sending .ics invites that contain an rrule with this workaround that are opened in any application other than outlook would fail to be processed. Reproduction environment MacOS Sequoia 15.3.2 (24D81). definitely doesn't matter. using outlook for mac desktop app, outlook web app Reproduction steps See the attached ics invites - note the only difference is the additional semicolon before BYMONTHDAY in the second invite. Save these as files with the .ics extension, and then open them with outlook. Invalid invite - an event that repeats monthly on the last day of the month starting on May 31st for two months. BEGIN:VCALENDAR VERSION:2.0 CALSCALE:GREGORIAN PRODID:adamgibbons/ics METHOD:REQUEST X-PUBLISHED-TTL:PT1H BEGIN:VEVENT UID:726df22a-cc8d-4276-9be9-236f4af16450 SUMMARY:Reserved by user DTSTAMP:20260413T225217Z DTSTART:20260531T050000Z DTEND:20260531T060000Z SEQUENCE:0 DESCRIPTION:hi LOCATION:hi STATUS:CONFIRMED CATEGORIES: TRANSP:TRANSPARENT X-MICROSOFT-CDO-BUSYSTATUS:FREE ATTENDEE;ROLE="REQ-PARTICIPANT";CN="user":mailto:user@example .com RRULE:FREQ=MONTHLY;INTERVAL=1;COUNT=2;DTSTART=20260531T050000 Z;BYMONTHDAY=-1; END:VEVENT END:VCALENDAR Valid invite - same event but with an additional ; before BYMONTHDAY: BEGIN:VCALENDAR VERSION:2.0 CALSCALE:GREGORIAN PRODID:adamgibbons/ics METHOD:REQUEST X-PUBLISHED-TTL:PT1H BEGIN:VEVENT UID:726df22a-cc8d-4276-9be9-236f4af16450 SUMMARY:Reserved by user DTSTAMP:20260413T225217Z DTSTART:20260531T050000Z DTEND:20260531T060000Z SEQUENCE:0 DESCRIPTION:hi LOCATION:hi STATUS:CONFIRMED CATEGORIES: TRANSP:TRANSPARENT X-MICROSOFT-CDO-BUSYSTATUS:FREE ATTENDEE;ROLE="REQ-PARTICIPANT";CN="user":mailto:user@example .com RRULE:FREQ=MONTHLY;INTERVAL=1;COUNT=2;DTSTART=20260531T050000 Z;;BYMONTHDAY=-1; END:VEVENT END:VCALENDAR226Views0likes2CommentsICS file generated by MS Booking via MS Graph API Create Appointment contains unexpected contents
We have been using MS Bookings and MS Graph API (v1.0) for a while now via SDK (v4.52.0) - recently (as of a couple of weeks ago) one of our customers has raised that the ICS file generated when an appointment is created has started to contain more information than expected. Before this was reported by the customer, the ICS file would contain the "sevice notes" only, however now it is containing the following information, which is confusing end users: Customer Info -------------------- Name: John Doe Email: mailto:email address removed for privacy reasons Phone Number: 000000000 Booking Info -------------------- Service name: IT Support Location: { } Price: Free Custom Fields ---------------------- Buffer time: -------------------- Before: 0min(01:30 PM Tue, 18 Jul 2023). Time with customer: 01:30 PM Tue, 18 Jul 2023–02:00 PM Tue, 18 Jul 2023 After: 0min(02:00 PM Tue, 18 Jul 2023) Time zone:W. Europe Standard Time Internal Notes ----------------------- Original service note on create Kindly find below the request body for create appointment: POST https://graph.microsoft.com/v1.0/solutions/bookingBusinesses/{id}/appointments { "@odata.type": "#microsoft.graph.bookingAppointment", "customerTimeZone": "Europe/Berlin", "smsNotificationsEnabled": false, "priceType": "free", "startDateTime": { "@odata.type": "#microsoft.graph.dateTimeTimeZone", "dateTime": "2023-07-18T13:30:00.0000000+00:00", "timeZone": "W. Europe Standard Time" }, "endDateTime": { "@odata.type": "#microsoft.graph.dateTimeTimeZone", "dateTime": "2023-07-18T14:00:00.0000000+00:00", "timeZone": "W. Europe Standard Time" }, "isLocationOnline": false, "optOutOfCustomerEmail": true, "anonymousJoinWebUrl": null, "serviceId": "redacted", "staffMemberIds": [ "redacted" ], "maximumAttendeesCount": 1, "filledAttendeesCount": 1, "email address removed for privacy reasons": "#Collection(microsoft.graph.bookingReminder)", "reminders": [ { "offset": "P1D", "recipients": "allAttendees", "message": "This is a reminder for both customer and attendees" }, { "offset": "PT1H", "recipients": "customer", "message": "Please be available to enjoy your lunch service." }, { "offset": "PT2H", "recipients": "staff", "message": "Please check traffic for next cater." } ], "email address removed for privacy reasons": "#Collection(microsoft.graph.bookingCustomerInformation)", "customers": [ { "@odata.type": "#microsoft.graph.bookingCustomerInformation", "name": "John Doe", "emailAddress": "email address removed for privacy reasons", "phone": "000000000000" } ], "serviceName": "IT Support", "serviceNotes": "Original service note on create" } We have attempted to investigate possible settings both from within the SDK and on MS Bookings, but can't spot anything that might be related to this. We have also tested to create bookings via postman directly, and it results in the same behaviour. Only when the appointment is created through the calendar in MS Booking this information is not sent in the ICS. Is there any configuration setting which we can use to remove this information? When creating the booking manually through MS Bookings, this extra information is not in the ICS file - but only when it is created via the SDK or API only. Thank you !1.9KViews2likes4CommentsHow to share iCal file within organization using Sharepoint/Onedrive
Hi! We have a generated calendar (ics/ical) file within our company which I would like to share to everyone within the company using Sharepoint/Onedrive. It should not be accessible outside the company. The purpose of the share is for everyone to be able to subscribe to it as an Internet calendar in Outlook. Putting the file on internal servers is not an option since it requires VPN access. That would exclude, or make it non-user friendly for users using Outlook online, Mac Outlook or Outlook mobile apps. Since Sharepoint/OneDrive and Outlook is all in the O365 ecosystem this seems theoretically possible. I've tried sharing the file using the "People within <org> with the link can access" option. I even put &download=1 in the URL to force the download. Tried it in Outlook online, the calendar is added, but no events are added to / visible in the calendar. Do you have any ideas, or other options, on how to make this possible?1.6KViews0likes0Comments