A small library for reading and writing ICalendar files.
This library is in maintenance mode. Bug fixes will 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.