/* gcc `pkg-config --cflags --libs libical` ical.c -g -O0 -o ical && ./ical */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <libical/ical.h>

int main (void)
{
	icalcomponent *comp;
	icalproperty *prop;
	struct icaltimetype tt;
	const char *old_comp =
		"BEGIN:VTODO\r\n"
		"UID:1\r\n"
		"CREATED:19691231T235959Z\r\n"
		"DTSTAMP:20180206T113253Z\r\n"
		"LAST-MODIFIED:20180206T113253Z\r\n"
		"DUE;VALUE=DATE:20180208\r\n"
		"COMPLETED;VALUE=DATE:20180210\r\n"
		"SUMMARY:test\r\n"
		"STATUS:COMPLETED\r\n"
		"END:VTODO\r\n";

	comp = icalcomponent_new (ICAL_VEVENT_COMPONENT);

	tt = icaltime_from_string ("20190405T000000Z");
	printf ("using COMPLETED time:'%s'\n", icaltime_as_ical_string (tt));

	prop = icalproperty_new_completed (tt);
	icalcomponent_add_property (comp, prop);

	tt = icaltime_from_string ("20190607");
	printf ("using COMPLETED 2 time:'%s'\n", icaltime_as_ical_string (tt));

	prop = icalproperty_new_completed (tt);
	icalcomponent_add_property (comp, prop);

	printf ("comp: ---%s---\n", icalcomponent_as_ical_string (comp));

	icalcomponent_free (comp);

	comp = icalcomponent_new_from_string (old_comp);
	printf ("read comp: ---%s---\nas: ---%s---\n", old_comp, icalcomponent_as_ical_string (comp));

	icalcomponent_free (comp);

	return 0;
}
