= Notes on how it works = We have traces of old style CalDAV scheduling, iSchedule flow and new style CalDAV implicit scheduling. The following attempt to document the flow of actiosn as events are processed and sent. [wiki:Scheduling/ImplicitFlow Implicit scheduling flow in bedework] = Changes to implement the latest CalDAV scheduling = Bedework 3.4.1.1 implemented draft 4. 3.5 will implement draft 6. It may be necessary to backport the changes to 3.4.1.1 as the clients are moving to draft 6 and this will render 3.4.1.1 unusable for CalDAAV scheduling. On this page we will attempt to list all the changes made as a reminder. == !BwEvent == {{{ ... private boolean organizerSchedulingObject; private boolean attendeeSchedulingObject; ... /** True if this is a valid organizer scheduling object. (See CalDAV * scheduling specification). This can be set false (and will be on copy) to * supress sending of invitations, e.g. for a draft. * *

When the event is added this flag will be set true if the appropriate * conditions are satisfied. * * @param val */ @Immutable public void setOrganizerSchedulingObject(boolean val) { organizerSchedulingObject = val; } /** * @return boolean */ public boolean getOrganizerSchedulingObject() { return organizerSchedulingObject; } /** True if this is a valid attendee scheduling object. * (See CalDAV scheduling specification) * * @param val */ @Immutable public void setAttendeeSchedulingObject(boolean val) { attendeeSchedulingObject = val; } /** * @return boolean */ public boolean getAttendeeSchedulingObject() { return attendeeSchedulingObject; } }}} Associated changes to org.bedework.calsvc.Events#validate, restore. == !ScheduleAgent and !ScheduleStatus == Implement SCHEDULE-AGENT and SCHEDULE-STATUS parameters in ical4j. Add to attendee - schema change required. Also restore code. Add scheduleStatus to organizer - schema change for event and annotation, also change restore code. In calsvc.Scheduling skip attendees with scheduleStatus != server. Probably no change needed for web client. Also if we backport this to 3.4.1.1 we can possibly skip all the scheduleAgent stuff to avoid a schema change == Schedule-Reply header == Create new class !CalDavHeaders to check for Schedule-Reply. Added sendReply method to Scheduling. We weren't sedning a decline anyway on deletion. Added code to Events to send a declined. == schedule-calendar-transp property == Added - bedework already has two flags for a !BwCalendar object {{{ private boolean affectsFreeBusy; private boolean ignoreTransparency; }}} so that affectsFreeBusy == true is the same as schedule-calendar-transp=opaque Changes restricted to !CaldavCalNode. == schedule-default-calendar-URL == We have a default calendar preference. Again changes restricted to !CaldavCalNode.