/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "nsISupports.idl" interface calIDateTime; interface calIDuration; [scriptable,uuid(ace2a74c-bd08-476f-be8b-6565abc50339)] interface calIPeriod : nsISupports { attribute jsval icalPeriod; /** * isMutable is true if this instance is modifiable. * If isMutable is false, any attempts to modify * the object will throw NS_ERROR_OBJECT_IS_IMMUTABLE. */ readonly attribute boolean isMutable; /** * Make this calIPeriod instance immutable. */ void makeImmutable(); /** * Clone this calIPeriod instance into a new * mutable object. */ calIPeriod clone(); /** * The start datetime of this period */ attribute calIDateTime start; /** * The end datetime of this period */ attribute calIDateTime end; /** * The duration, equal to end-start */ readonly attribute calIDuration duration; /** * Return a string representation of this instance. */ AUTF8String toString(); /** * This object as an iCalendar DURATION string */ attribute ACString icalString; }; /** Libical specific interfaces */ [ptr] native icalperiodtypeptr(struct icalperiodtype); [builtinclass,scriptable,uuid(04ee525f-96db-4731-8d61-688e754df24f)] interface calIPeriodLibical : calIPeriod { [noscript,notxpcom] void toIcalPeriod(in icalperiodtypeptr idt); };