icalendar_parser

Last updated:

0 purchases

icalendar_parser Image
icalendar_parser Images
Add to Cart

Description:

icalendar parser

icalendar_parser #




Package to parse iCalendar (.ics) files written in pure Dart.
Implementation of AnyFetch's ics-parser in JavaScript.
Getting Started #
Add icalendar_parser to your pubspec.yaml:
icalendar_parser: any
copied to clipboard
How to use #
You can refer to the example/ folder for a complete example implemented in Flutter.
Constructor #
ICalendar.fromString #
import 'package:flutter/services.dart' show rootBundle;
import 'package:icalendar_parser/icalendar_parser.dart';

final icsString = await rootBundle.loadString('assets/your_file.ics');
final iCalendar = ICalendar.fromString(icsString);
copied to clipboard
ICalendar.fromLines #
final icsLines = await File('your_file.ics').readAsLines();
final iCalendar = ICalendar.fromLines(lines);
copied to clipboard
Other methods #
ICalendar.registerField #
With this method you can add fields that are not already supported (check Supported Properties) to the parsing and you can specify a custom function to parse its content :
ICalendar.registerField(field: 'TEST');

ICalendar.registerField(
field: 'TEST2',
function: (value, params, event, lastEvent) {
lastEvent['test2'] = 'test';
return lastEvent;
},
);
copied to clipboard
ICalendar.unregisterField #
With this method you can remove parsed fields to ignore them in your file :
ICalendar.unregisterField('TEST');
copied to clipboard
ICalendar.toJson #
Convert [ICalendar] object to a Map<String, dynamic> containing all its data, formatted into a valid JSON Map<String, dynamic> .
final icsObj = ICalendar.fromLines(File('assets/my_file.ics').readAsLinesSync());
print(jsonEncode(icsObj.toJson()));
copied to clipboard
Input
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
CALSCALE:GREGORIAN
METHOD:PUBLISH
BEGIN:VEVENT
CREATED:19960329T133000Z
UID:[email protected]
DTSTAMP:19970714T170000Z
ORGANIZER;CN=John Doe:MAILTO:[email protected]
DTSTART:19970714T170000Z
DTEND:19970715T035959Z
SUMMARY:Bastille Day Party
GEO:48.85299;2.36885
END:VEVENT
END:VCALENDAR
copied to clipboard
Output
{
"version": "2.0",
"prodid": "-//hacksw/handcal//NONSGML v1.0//EN",
"calscale": "GREGORIAN",
"method": "PUBLISH",
"data": [
{
"type": "VEVENT",
"created": {
"dt": "19960329T133000Z"
},
"uid": "[email protected]",
"dtstamp": {
"dt": "19970714T170000Z"
},
"organizer": {
"name": "John Doe",
"mail": "[email protected]"
},
"dtstart": {
"dt": "19970714T170000Z"
},
"dtend": {
"dt": "19970715T035959Z"
},
"summary": "Bastille Day Party",
"geo": {
"latitude": 48.85299,
"longitude": 2.36885
}
}
]
}
copied to clipboard
Supported Properties #

VERSION
PRODID
CALSCALE
METHOD
COMPONENT: BEGIN
COMPONENT: END
DTSTART
DTEND
DTSTAMP
TRIGGER
LAST-MODIFIED
COMPLETED
DUE
UID
SUMMARY
DESCRIPTION
LOCATION
URL
ORGANIZER
GEO
CATEGORIES
ATTENDEE
ACTION
STATUS
SEQUENCE
REPEAT
RRULE
EXDATE
CREATED

Contributors #







Guillaume Roux






Luca






Simon Bengtsson






Levi Lesches






Null






Null

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.