Git Product home page Git Product logo

icalendar.js's Introduction

iCalendar.js

This is some code I wrote to parse and generate RFC5545 in Javascript. It's not finished, and currently only contains parsing for the values, and parameters. Still to do is the iCalendar object and it's components and properties.

Design decisions

One major design decision was to store the iCalendar value as is, instead of storing is in some parsed form. The reason for that is that parsing an iCalendar file should go fast, and re-generating it should result in only changing the values that you actually changed.

This means that retreiving the parsed data is done via a method, that in the case of complex values such as Durations or RRULEs will return an object with various attributes. This can be seen as an extra step, but the alternatives would have necessited more parsing/generating. This makes it simple and fast, even though the API might not be the prettiest possible.

It also means that it is not the fastest and most efficient way to store calendar data, internally or otherwise. iCalendar.js purpose is to parse and generate RFC5545 files. It is not a generic calendaring object, and it performs little or no consistency checks.

Considerations

Maybe getValue() should always return a mapping, for consistency, even when it's only one object?

Contributors

Author: Lennart Regebro, [email protected]

icalendar.js's People

Contributors

regebro avatar

Watchers

gilles robit avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.