Nothing Special   »   [go: up one dir, main page]

8.0.1 • Published 4 months ago

ical-generator v8.0.1

Weekly downloads
45,772
License
MIT
Repository
github
Last release
4 months ago

ical-generator is a small but fine library with which you can very easily create a valid iCal calendars, for example to generate subscriptionable calendar feeds.

📦 Installation

npm install ical-generator

⚡️ Quick Start

import ical, {ICalCalendarMethod} from 'ical-generator';
import http from 'node:http';

const calendar = ical({name: 'my first iCal'});

// A method is required for outlook to display event as an invitation
calendar.method(ICalCalendarMethod.REQUEST);

const startTime = new Date();
const endTime = new Date();
endTime.setHours(startTime.getHours()+1);
calendar.createEvent({
    start: startTime,
    end: endTime,
    summary: 'Example Event',
    description: 'It works ;)',
    location: 'my room',
    url: 'http://sebbo.net/'
});

http.createServer((req, res) => {
    res.writeHead(200, {
        'Content-Type': 'text/calendar; charset=utf-8',
        'Content-Disposition': 'attachment; filename="calendar.ics"'
    });

    res.end(calendar.toString());
}).listen(3000, '127.0.0.1', () => {
    console.log('Server running at http://127.0.0.1:3000/');
});

See the examples folder for more examples.

📑 API-Reference

🕒 Date, Time & Timezones

ical-generator supports native Date, Day.js, Luxon's DateTime and the older moment.js and moment-timezone objects. You can also pass a string which is then passed to javascript's Date internally.

It is recommended to use UTC time as far as possible. ical-generator will output all time information as UTC time as long as no time zone is defined. For day.js, a plugin is necessary for this, which is a prerequisite. If a time zone is set, ical-generator assumes that the given time matches the time zone. If a time zone is used, it is also recommended to use a VTimezone generator. Such a function generates a VTimezone entry and returns it. For example, ical-timezones can be used for this:

import {ICalCalendar} from 'ical-generator';
import {getVtimezoneComponent} from '@touch4it/ical-timezones';

const cal = new ICalCalendar();
cal.timezone({
    name: 'FOO',
    generator: getVtimezoneComponent
});
cal.createEvent({
    start: new Date(),
    timezone: 'Europe/London'
});

If a moment-timezone object or Luxon's setZone method works, ical-generator sets it according to the time zone set in the calendar/event.

🚦 Tests

npm test
npm run coverage

🙋 FAQ

Where's the changelog?

It's here. If you need the changelog for ical-generator 1.x.x and older, you'll find it here.

I get a ReferenceError: TextEncoder is not defined error (in some browsers)

This library uses TextEncoder, which is available in node.js ≥ 11.0.0 and all modern browsers. Outdated browsers may not have the necessary API and generate this error when generating the calendar.

🙆🏼‍♂️ Copyright and license

Copyright (c) Sebastian Pekarek under the MIT license.

8.0.2-develop.2

4 months ago

8.0.2-develop.1

4 months ago

8.0.1-develop.2

5 months ago

8.0.1-develop.1

6 months ago

8.0.1-develop.4

5 months ago

8.0.1-develop.3

5 months ago

8.0.1-develop.6

5 months ago

8.0.1-develop.5

5 months ago

8.0.1-develop.8

4 months ago

8.0.1-develop.7

4 months ago

8.0.1

4 months ago

8.0.0

6 months ago

8.0.0-develop.1

6 months ago

7.2.1-develop.4

6 months ago

7.2.1-develop.2

6 months ago

7.2.1-develop.3

6 months ago

7.2.1-develop.1

6 months ago

7.2.0-develop.4

7 months ago

7.2.0-develop.5

7 months ago

7.2.0

7 months ago

7.2.0-develop.3

10 months ago

7.2.0-develop.2

10 months ago

7.2.0-develop.1

10 months ago

7.1.0

10 months ago

7.1.0-develop.3

10 months ago

7.1.0-develop.2

11 months ago

7.1.0-develop.1

11 months ago

7.0.1-develop.2

11 months ago

7.0.1-develop.1

11 months ago

7.0.0

11 months ago

7.0.0-develop.6

11 months ago

7.0.0-develop.5

12 months ago

7.0.0-develop.4

12 months ago

7.0.0-develop.2

12 months ago

7.0.0-develop.3

12 months ago

7.0.0-develop.1

1 year ago

6.0.2-develop.9

1 year ago

6.0.2-develop.8

1 year ago

6.0.2-develop.7

1 year ago

6.0.2-develop.6

1 year ago

6.0.2-develop.5

1 year ago

6.0.2-develop.4

1 year ago

6.0.2-develop.3

1 year ago

6.0.2-develop.2

1 year ago

6.0.2-develop.1

1 year ago

6.0.1-develop.8

1 year ago

6.0.1-develop.9

1 year ago

6.0.1

1 year ago

6.0.1-develop.7

1 year ago

6.0.1-develop.6

1 year ago

6.0.1-develop.5

1 year ago

6.0.1-develop.4

1 year ago

6.0.1-develop.1

1 year ago

6.0.1-develop.2

1 year ago

6.0.1-develop.3

1 year ago

6.0.0

1 year ago

6.0.0-develop.1

1 year ago

6.0.0-develop.2

1 year ago

6.0.0-develop.4

1 year ago

5.0.2-develop.2

1 year ago

5.0.2-develop.1

2 years ago

5.0.1

2 years ago

5.0.0

2 years ago

5.0.0-develop.1

2 years ago

5.0.1-develop.1

2 years ago

4.1.0-develop.1

2 years ago

4.1.0-develop.2

2 years ago

4.1.0-develop.3

2 years ago

4.1.0

2 years ago

4.0.0

2 years ago

4.0.0-develop.1

2 years ago

4.0.0-develop.2

2 years ago

3.6.2-develop.4

2 years ago

3.6.2-develop.2

2 years ago

3.6.2-develop.3

2 years ago

3.6.1-develop.1

2 years ago

3.6.1-develop.2

2 years ago

3.6.1-develop.3

2 years ago

3.6.1

2 years ago

3.6.0

2 years ago

3.6.0-develop.1

2 years ago

3.6.2-develop.1

2 years ago

3.5.2

2 years ago

3.5.2-develop.2

2 years ago

3.5.2-develop.3

2 years ago

3.5.2-develop.1

2 years ago

3.4.4-develop.7

3 years ago

3.4.4-develop.8

3 years ago

3.4.4-develop.1

3 years ago

3.4.4-develop.2

3 years ago

3.4.4-develop.3

3 years ago

3.4.4-develop.4

3 years ago

3.4.4-develop.5

3 years ago

3.4.4-develop.6

3 years ago

3.5.1-develop.1

3 years ago

3.5.1

3 years ago

3.5.0

3 years ago

3.5.0-develop.1

3 years ago

3.4.3

3 years ago

3.4.2

3 years ago

3.4.3-develop.1

3 years ago

3.4.3-develop.2

3 years ago

3.4.2-develop.2

3 years ago

3.4.2-develop.3

3 years ago

3.4.1-develop.1

3 years ago

3.4.0

3 years ago

3.3.0-develop.1

3 years ago

3.4.1

3 years ago

3.3.0

3 years ago

3.4.2-develop.1

3 years ago

3.2.1-develop.1

3 years ago

3.1.1-develop.1

3 years ago

3.2.1

3 years ago

3.2.0

3 years ago

3.1.1

3 years ago

3.2.0-develop.2

3 years ago

3.2.0-develop.1

3 years ago

3.1.0

3 years ago

3.1.0-develop.2

3 years ago

3.1.0-develop.1

3 years ago

3.0.2-develop.2

3 years ago

3.0.2-develop.1

3 years ago

3.0.1

3 years ago

3.0.1-develop.4

3 years ago

3.0.1-develop.3

3 years ago

3.0.1-develop.2

3 years ago

3.0.1-develop.1

3 years ago

3.0.0-develop.8

3 years ago

3.0.0

4 years ago

3.0.0-develop.7

4 years ago

3.0.0-develop.6

4 years ago

3.0.0-develop.5

4 years ago

3.0.0-develop.4

4 years ago

3.0.0-develop.3

4 years ago

3.0.0-develop.2

4 years ago

3.0.0-develop.1

4 years ago

2.0.0

4 years ago

2.1.1-develop.1

4 years ago

2.0.1-develop.3

4 years ago

2.0.1-develop.1

4 years ago

2.0.1-develop.2

4 years ago

2.2.0

4 years ago

2.1.0-develop.6

4 years ago

2.1.0-develop.5

4 years ago

2.1.0-develop.4

4 years ago

2.1.0-develop.2

4 years ago

2.1.0-develop.1

4 years ago

2.2.0-develop.1

4 years ago

2.1.0

4 years ago

2.0.0-develop.22

4 years ago

2.0.0-develop.21

4 years ago

2.0.0-develop.20

4 years ago

2.0.0-develop.19

4 years ago

2.0.0-develop.18

4 years ago

2.0.0-develop.17

4 years ago

2.0.0-develop.15

4 years ago

2.0.0-develop.16

4 years ago

2.0.0-develop.14

4 years ago

2.0.0-develop.13

4 years ago

2.0.0-develop.11

4 years ago

2.0.0-develop.12

4 years ago

2.0.0-develop.10

4 years ago

1.3.0-develop.4

4 years ago

2.0.0-develop.8

4 years ago

2.0.0-develop.9

4 years ago

2.0.0-develop.2

4 years ago

2.0.0-develop.3

4 years ago

2.0.0-develop.1

4 years ago

2.0.0-develop.6

4 years ago

2.0.0-develop.7

4 years ago

2.0.0-develop.4

4 years ago

2.0.0-develop.5

4 years ago

1.3.0-develop.3

4 years ago

1.3.0-develop.2

4 years ago

1.3.0-develop.1

4 years ago

1.15.4

4 years ago

1.15.3

4 years ago

1.15.2

4 years ago

1.15.1

4 years ago

1.15.0

4 years ago

1.14.0

5 years ago

1.13.0

5 years ago

1.12.2

5 years ago

1.12.1

5 years ago

1.12.0

5 years ago

1.11.0

5 years ago

1.10.0

5 years ago

1.9.4

5 years ago

1.9.3

5 years ago

1.9.2

5 years ago

1.9.1

5 years ago

1.9.0

5 years ago

1.8.3

5 years ago

1.8.2

5 years ago

1.8.1

5 years ago

1.8.0

5 years ago

1.7.3

5 years ago

1.7.2

6 years ago

1.7.1

6 years ago

1.7.0

6 years ago

1.6.0

6 years ago

1.5.0

6 years ago

1.4.5

6 years ago

1.4.4

6 years ago

1.4.3

6 years ago

1.4.2

6 years ago

1.4.1

6 years ago

1.3.1

6 years ago

1.3.0

6 years ago

1.2.2

6 years ago

1.2.1

6 years ago

1.2.0

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.5-0

6 years ago

1.0.4

6 years ago

1.0.4-0

6 years ago

1.0.3

7 years ago

1.0.3-0

7 years ago

1.0.2

7 years ago

1.0.2-6

7 years ago

1.0.2-5

7 years ago

1.0.2-4

7 years ago

1.0.2-3

7 years ago

1.0.2-2

7 years ago

1.0.2-1

7 years ago

1.0.1

7 years ago

1.0.1-2

7 years ago

1.0.1-1

7 years ago

1.0.0-4

7 years ago

1.0.0-3

7 years ago

1.0.0

7 years ago

1.0.0-2

7 years ago

1.0.0-1

7 years ago

1.0.2-0

7 years ago

1.0.1-0

7 years ago

1.0.0-0

7 years ago

0.3.0-dev.6

7 years ago

0.3.0-dev.5

7 years ago

0.3.0-dev.4

7 years ago

0.3.0-dev.3

7 years ago

0.3.0-dev.2

7 years ago

0.3.0-dev.1

7 years ago

0.3.0-dev.0

7 years ago

0.3.0-dev

7 years ago

0.2.10

8 years ago

0.2.9

8 years ago

0.2.8

8 years ago

0.2.7

9 years ago

0.2.6

9 years ago

0.2.5

9 years ago

0.2.4

9 years ago

0.2.4-dev

10 years ago

0.2.3

10 years ago

0.2.2

10 years ago

0.2.1

10 years ago

0.2.0

10 years ago

0.1.10

10 years ago

0.1.9

10 years ago

0.1.8

10 years ago

0.1.7

11 years ago

0.1.6

11 years ago

0.1.5

11 years ago

0.1.4

11 years ago

0.1.3

11 years ago

0.1.2

11 years ago

0.1.1

12 years ago

0.1.0

12 years ago