cal
calendario
npm i calendario
cal

calendario

📆 Check if a day is a workday or holiday

by Raphael Amorim

1.1.4 (see all)License:MITTypeScript:Not FoundCategories:Vanilla JavaScript Holidays
npm i calendario
Readme

calendario

Check if a day is a workday or holiday.

NPM Version Build Status Coverage Status

Available too: brazilian portuguese.

Install

Before anything, you need to have node and npm installed.

$ npm install calendario

Usage

Currently there are only national calendars (except for Brazil and U.S.A). In next release will be added regional support.

Available for:

You can set the calendar using use()

var calendario = require('calendario');
calendario.use('BR');

Setting the calendar for a specific state

var calendario = require('calendario');
calendario.use('US-NY');

You can create your owns calendars, passing a array of objects like these:

var calendario = require('calendario');

calendario.use('MozillaCalendar', [
    {date: new Date('2020-11-25'), workday: true, summary: "Mozilla Summit"},
    {date: new Date('2021-1-20'), workday: true, summary: "Mozilla another event"}
]);

calendario.use('GoogleCalendar', function(set) {
    set([
        {date: new Date('2017-6-3'), workday: true, summary: "Google IO"},
        {date: new Date('2018-10-5'), workday: true, summary: "Google another event"},
    ]);
});

You can create your own calendar, passing a ics file

var calendario = require('calendario');
calendario.use('BR', {file: 'pt-br.ics', parser: 'ics'});

Methods

isWorkday

Verify if the day in question is a working day, based on defined calendar sources:

var calendario = require('calendario');
calendario.use('BR');

calendario.isWorkday(new Date('2015-05-01')); // false
calendario.isWorkday(new Date('2015-05-02')); // true

aboutDay

Get all events about specified day:

var calendario = require('calendario');
calendario.use('US');

calendario.aboutDay(new Date('2015-12-25'))
/*
[ { date: Fri Dec 25 2015 00:00:00 GMT-0200 (BRST),
    summary: 'Christmas Day',
    workday: false } ]
*/

range

Get all events from a specified begin to a specified end:

var calendario = require('calendario');
calendario.use('US');

var range = calendario.range()
        .begin(new Date('2015-12-20'))
        .end(new Date('2016-01-05'))
        .toArray();

/*
[ { date: Thu Dec 24 2015 00:00:00 GMT-0200 (BRST),
    summary: 'Christmas Eve (from 2pm)',
    workday: false },
  { date: Fri Dec 25 2015 00:00:00 GMT-0200 (BRST),
    summary: 'Christmas Day',
    workday: false },
  { date: Thu Dec 31 2015 00:00:00 GMT-0200 (BRST),
    summary: 'New Year\'s Eve (from 2pm)',
    workday: false },
  { date: Fri Jan 01 2016 00:00:00 GMT-0200 (BRST),
    summary: 'New Year\'s Day',
    workday: false } ]
*/

sourceList

Return all defined calendars as source:

var calendario = require('calendario');
calendario.use('US');
calendario.use('BR');

calendario.sourceList(); // ['US', 'BR']

eventList

Return the events from all sources:

var calendario = require('calendario');
calendario.use('MozillaCalendar', [
    {date: new Date('2020-11-25'), workday: true, summary: "Mozilla Summit"},
    {date: new Date('2021-1-20'), workday: true, summary: "Mozilla another event"}
]);

calendario.eventList();
/*
[ { workday: true,
    summary: 'Mozilla Summit',
    date: Tue Nov 24 2020 22:00:00 GMT-0200 (BRST) },
  { workday: true,
    summary: 'Mozilla another event',
    date: Wed Jan 20 2021 00:00:00 GMT-0200 (BRST) } ]
*/

clear

Clear and remove all previously defined sources:

var calendario = require('calendario');
calendario.use('BR'); // Sources: ['BR']
calendario.clear(); // Sources: []

ignoreWeekends

By default the calendario don't consider weekends as workdays. However you can change this using:

var calendario = require('calendario');
calendario.ignoreWeekends();

Data Source

Brazil

  • National Events: Google Calendar; ID: pt-br.brazilian#holiday@group.v.calendar.google.com
  • Regional Events: Wikipedia

United States of America

  • National Events: Google Calendar; ID: en.usa#holiday@group.v.calendar.google.com
  • Regional Events: Wikipedia

History

See Changelog for more details.

Contributing

Don't be shy, send a Pull Request! Here is how:

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -m 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

About

License: MIT ® Raphael Amorim

Downloads/wk

16

GitHub Stars

37

LAST COMMIT

7yrs ago

MAINTAINERS

1

CONTRIBUTORS

5

OPEN ISSUES

3

OPEN PRs

0
VersionTagPublished
1.1.4
latest
7yrs ago
No tutorials found
Add a tutorial