Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow event repetition to be specified using rrule string #190

Closed
wants to merge 1 commit into from

Conversation

harris-m
Copy link

Hello,

Thanks for your work on this awesome library!

In my application, I already calculate and store rrule strings for my events. I needed a way to pass these into ical-generator.

I modified the event.repeating function to accept an rrule string as an alternative to the parameter object. Then, if present, this rrule string is emitted directly when _generate is called on the event.

I imagine this is a relatively common use case so I hope this pull request is helpful. Thanks again for this fantastic package!

@karlhorky
Copy link
Contributor

Nice, this looks great!

@sebbo2002 what do you think of the change?

@sebbo2002
Copy link
Owner

Hello everyone, sorry for not getting back to you for so long. I honestly have no idea why this PR has remained undiscovered for so long. I'm sorry.

I am currently working on adapting ical-generator to Typescript. I think I'll need another 1-2 weeks with the initial commit, because unfortunately I don't find as much time for it as I'd like to.

I don't think it makes sense to merge this PR into the old codebase, and I would make a note of it so that I can merge it into 2.0 and typescript it accordingly. I hope this is OK for everyone involved.

Thank you for your work ❤️

@sebbo2002 sebbo2002 self-assigned this Jan 26, 2021
@sebbo2002 sebbo2002 added this to the v2.0.0 🎉 milestone Jan 26, 2021
@harris-m
Copy link
Author

No worries, thank you for following up. Sounds good, looking forward to 2.0 😄

@sebbo2002
Copy link
Owner

Note to myself: Maybe it makes sense to support rrule like we support different date utilities in version 2.0.0…

@karlhorky
Copy link
Contributor

That would be great! That's what node-ical (the parser) does:

https://www.npmjs.com/package/node-ical

@sebbo2002 sebbo2002 closed this in 4436785 Mar 23, 2021
sebbo2002 pushed a commit that referenced this pull request Mar 23, 2021
# [2.0.0-develop.5](v2.0.0-develop.4...v2.0.0-develop.5) (2021-03-23)

### Features

* **Event:** Support RRule objects and raw strings in `repeating()` ([4436785](4436785)), closes [#190](#190)
@sebbo2002
Copy link
Owner

🎉 This issue has been resolved in version 2.0.0-develop.5 🎉

The release is available on:

Your semantic-release bot 📦🚀

This was referenced Apr 10, 2021
sebbo2002 pushed a commit that referenced this pull request Apr 28, 2021
# [2.0.0](v1.15.4...v2.0.0) (2021-04-28)

### Bug Fixes

* **package.json:** add temporary version ([0bc117e](0bc117e))
* Allow to set null values within object constructors ([8b87183](8b87183))
* **deps:** Also define libs as devDependency for tests ([c04ae32](c04ae32))
* **deps:** Define supported libs as peerDependencies ([84e2784](84e2784))
* Make peer dependencies optional ([b384ac7](b384ac7)), closes [#244](#244)
* **Tools:** Prevent formatDate() from using global timezones prefixed with a slash ([85ab7b2](85ab7b2))
* **deps:** Put necessary typings in peerDependencies as well :/ ([14f0f43](14f0f43))
* **Event:** Remove `moment` dependency in constructor ([8331d4c](8331d4c)), closes [#234](#234)

### Code Refactoring

* **Calendar:** Remove moment.Duration from `ttl()` method ([c6ccd12](c6ccd12))
* Update error URLs ([2aedf55](2aedf55))

### Features

* **Event:** Add `priority()` method ([247039f](247039f)), closes [#163](#163)
* **Attendee:** Add `x()` method for custom attributes ([5d9d686](5d9d686)), closes [#183](#183)
* **Calendar:** add new clear method ([1ebefcb](1ebefcb)), closes [#188](#188)
* Add ReleaseBot ([2fba164](2fba164))
* **Calendar:** Add support for external VTimezone generator ([f4bc8e0](f4bc8e0)), closes [#122](#122)
* **Event:** Allow `X-APPLE-STRUCTURED-LOCATION` without address ([4e63e29](4e63e29)), closes [#236](#236)
* **Event:** Make organizer.email optional ([8450492](8450492)), closes [#137](#137)
* **Event:** Merge `location()`, `appleLocation()` and `geo()` ([62c1516](62c1516)), closes [#187](#187)
* Merge event's `description()` and `htmlDescription()` ([ce537f8](ce537f8))
* Support moment.js, Day.js and Luxon ([#91](#91), BREAKING CHANGE) ([6db24ee](6db24ee))
* **Event:** Support RRule objects and raw strings in `repeating()` ([4436785](4436785)), closes [#190](#190)
* Updated the entire codebase to Typescript ([d013dc0](d013dc0))
* **Events:** Use uuid-random for random UUIDs (close [#215](#215)) ([a4c19cc](a4c19cc))

### BREAKING CHANGES

* Some error messages changed, so if you check for error , please double check them now.
* `htmlDescription()` was removed, use `description()` instead.
* **Calendar:** `ttl()` will now return a number, not a `moment.Duration`. You can still use `moment.Duration` to set the `ttl` value.
* **Event:** `geo()` and `appleLocation()` are not available anymore, use `location()` instead and pass an location object (with title, radius, etc.)
* **Calendar:** Calendar's `clear()` method is a completely new implementation and, unlike previous versions, will not reset metadata such as `name` or `prodId`. Only the events will be removed
@sebbo2002
Copy link
Owner

🎉 This issue has been resolved in version 2.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants