icalendar
icalendar copied to clipboard
🗓️ A small library for reading and writing ICalendar files.
ICalendar
A small library for reading and writing ICalendar files.
This library is in maintenance mode
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.
Installation
The package can be installed by adding :icalendar
to your list of dependencies
in mix.exs
:
def deps do
[
{:icalendar, "~> 1.1.0"}
]
end
Usage
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
See Also
- https://en.wikipedia.org/wiki/ICalendar
- http://www.kanzaki.com/docs/ical/dateTime.html
Copyright and License
Copyright (c) 2015 Louis Pilfold
This library is released under the MIT License. See the LICENSE.md file for further details.