Namespace org.accordproject.calendar@0.2.0

Compatible with Concerto versions ^3.0.0. Has 8 declarations.

Concerto JSON AST PlantUML XML Schema Typescript C# OData JSON Schema GraphQL Java Go Avro Markdown OpenAPI Protobuf Mermaid

Declared Types

      
      import org.accordproject.calendar@0.2.0.CalendarComponent from https://models.accordproject.org/calendar/calendar@0.2.0.cto
      import org.accordproject.calendar@0.2.0.UniqueComponent from https://models.accordproject.org/calendar/calendar@0.2.0.cto
      import org.accordproject.calendar@0.2.0.RecurringComponent from https://models.accordproject.org/calendar/calendar@0.2.0.cto
      import org.accordproject.calendar@0.2.0.VAlarm from https://models.accordproject.org/calendar/calendar@0.2.0.cto
      import org.accordproject.calendar@0.2.0.VEvent from https://models.accordproject.org/calendar/calendar@0.2.0.cto
      import org.accordproject.calendar@0.2.0.VFreebusy from https://models.accordproject.org/calendar/calendar@0.2.0.cto
      import org.accordproject.calendar@0.2.0.VJournal from https://models.accordproject.org/calendar/calendar@0.2.0.cto
      import org.accordproject.calendar@0.2.0.VTodo from https://models.accordproject.org/calendar/calendar@0.2.0.cto
      
      

Dependencies

Source

    /*
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
concerto version "^3.0.0"
namespace org.accordproject.calendar@0.2.0

import org.accordproject.time@0.3.0.Duration from https://models.accordproject.org/time@0.3.0.cto
import org.accordproject.geo@0.2.0.GeoCoordinates from https://models.accordproject.org/geo@0.2.0.cto

/**
 * This is based on RFC 5545
 * Credit to https://github.com/rianjs/ical.net/blob/master/v2/ical.NET/Interfaces/Components/IEvent.cs
 * for the basic structure of the model
 */

/**
 * An abstract type
 */
 abstract asset CalendarComponent identified by uid {
    o String uid
 }

/**
 * An abstract type
 */
abstract asset UniqueComponent extends CalendarComponent {
    o String[] attendee optional
    o String[] comment optional
    o DateTime dtstamp optional
    o String organizer optional
    o String[] requestStatuses optional
    o String url optional
}

/**
 * An abstract type
 */
abstract asset RecurringComponent extends UniqueComponent {
    o String[] attachements optional
    o String[] categories optional
    o String classType optional
    o String[] contacts optional
    o DateTime created optional
    o String description optional
    o DateTime lastModified optional
    o Integer priority optional
    o String[] related optional
    o Integer sequence optional
    o String summary optional
}

/**
 * An alarm in a calendar
 */
asset VAlarm extends CalendarComponent {
    o String alarmAction optional
    o String attachment optional
    o String[] attendees optional
    o String description optional
    o Duration duration optional
    o Integer repeat optional
    o String summary optional
}

/**
 * An event in a calendar
 */
asset VEvent extends RecurringComponent {
    o DateTime dtend optional
    o Duration duration optional
    o DateTime end optional

    o Boolean isAllDay optional
    o GeoCoordinates geo optional
    o String location optional
    o String[] resources optional
    o String transparency optional
    o Boolean isActive optional
}

/**
 * An freebusy in a calendar
 */
asset VFreebusy extends UniqueComponent {
    o DateTime dtstart optional
    o DateTime dtend optional
    o DateTime start optional
    o DateTime end optional
}

/**
 * An journal entry in a calendar
 */
asset VJournal extends RecurringComponent {
}

/**
 * An todo entry in a calendar
 */
asset VTodo extends RecurringComponent {
    o DateTime completed optional
    o DateTime due optional
    o Duration duration optional
    o GeoCoordinates geo optional
    o String location optional
    o Integer percentComplete optional
    o String[] resources optional
    o String todo optional
}