A small library for reading and writing ICalendar files.
Bug fixes may be accepted but no new features will be added. If you wish to add new features I recommend creating and publishing a fork. If an active fork is created I will direct users from this project to the new one.
The package can be installed by adding :icalendar
to your list of dependencies
in mix.exs
:
def deps do
[
{:icalendar, "~> 1.1.0"}
]
end
events = [
%ICalendar.Event{
summary: "Film with Amy and Adam",
dtstart: {{2015, 12, 24}, {8, 30, 00}},
dtend: {{2015, 12, 24}, {8, 45, 00}},
description: "Let's go see Star Wars.",
location: "123 Fun Street, Toronto ON, Canada"
},
%ICalendar.Event{
summary: "Morning meeting",
dtstart: Timex.now,
dtend: Timex.shift(Timex.now, hours: 3),
description: "A big long meeting with lots of details.",
location: "456 Boring Street, Toronto ON, Canada"
},
]
ics = %ICalendar{ events: events } |> ICalendar.to_ics
File.write!("calendar.ics", ics)
# BEGIN:VCALENDAR
# CALSCALE:GREGORIAN
# VERSION:2.0
# BEGIN:VEVENT
# DESCRIPTION:Let's go see Star Wars.
# DTEND:20151224T084500Z
# DTSTART:20151224T083000Z
# LOCATION: 123 Fun Street\, Toronto ON\, Canada
# SUMMARY:Film with Amy and Adam
# END:VEVENT
# BEGIN:VEVENT
# DESCRIPTION:A big long meeting with lots of details.
# DTEND:20151224T223000Z
# DTSTART:20151224T190000Z
# LOCATION:456 Boring Street\, Toronto ON\, Canada
# SUMMARY:Morning meeting
# END:VEVENT
# END:VCALENDAR
Copyright (c) 2015 Louis Pilfold
This library is released under the MIT License. See the LICENSE.md file for further details.