Skip to content

Conversation

@Lumabots
Copy link
Contributor

@Lumabots Lumabots commented Dec 9, 2025

Summary

summary is not complete, just check the code

Added
New Enums :
ScheduledEventRecurrenceFrequency (yearly, monthly, weekly, daily)
ScheduledEventRecurrenceWeekday (monday-sunday)
ScheduledEventRecurrenceMonth (january-december)

New Classes:
ScheduledEventEntityMetadata (location)
ScheduledEventRecurrenceNWeekday Represents n-weekday entries (e.g., "1st Tuesday")
ScheduledEventRecurrenceRule: Full recurrence rule with validation

Auto-validates on to_payload() serialization
New fields Guild.create_scheduled_event():

  • well at this point just read the code

Enforces Discord's constraints:

  • Frequency-specific field combinations
  • Mutually exclusive field checks
  • Valid weekday set validation for daily events
  • Required field enforcement for yearly events

Information

  • This PR fixes an issue. on_scheduled_event_delete event parameter is useless #1709
  • This PR adds something new (e.g. new method or parameters).
  • This PR is a breaking change (e.g. methods or parameters removed/renamed).
  • This PR is not a code change (e.g. documentation, README, typehinting,
    examples, ...).

Checklist

  • I have searched the open pull requests for duplicates.
  • If code changes were made then they have been tested.
    • I have updated the documentation to reflect the changes.
  • If type: ignore comments were used, a comment is also left explaining why.
  • I have updated the changelog to include these changes.

@Lumabots Lumabots requested a review from a team as a code owner December 9, 2025 19:51
@pycord-app
Copy link

pycord-app bot commented Dec 9, 2025

Thanks for opening this pull request!
Please make sure you have read the Contributing Guidelines and Code of Conduct.

This pull request can be checked-out with:

git fetch origin pull/3025/head:pr-3025
git checkout pr-3025

This pull request can be installed with:

pip install git+https://github.com/Pycord-Development/pycord@refs/pull/3025/head

@Lumabots
Copy link
Contributor Author

Lumabots commented Dec 9, 2025

Audit Logs still need to be rework (i didnt understand how it work yet)

@Lumabots
Copy link
Contributor Author

should we use use_cache_on_error, instead of only use cache ? that way we will be able to fetch first and if unavailable we will get
Open of better variable name

@Paillat-dev Paillat-dev changed the title feat: Full rework of GuildSchedule fux: GuildSchedule not being cached correctly Dec 10, 2025
Copy link
Member

@Paillat-dev Paillat-dev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If possible, make this pr not interfere with the recurrence one from anonymous. There will probably be merge conflicts once that one is merged, but they shouldn't both implement recurrence in a different way.

return self.value


class ScheduledEventLocationType(ScheduledEventEntityType):
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here you can probably do something like

	@deprecated(...)
    def __new__(*args, **kwargs) -> Self:
    	return super().__new__(*args, **kwargs)

or something



class ScheduledEventLocationType(ScheduledEventEntityType):
"""Scheduled event location type (deprecated alias for ScheduledEventEntityType)"""
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"""Scheduled event location type (deprecated alias for ScheduledEventEntityType)"""
"""Scheduled event location type (deprecated alias for :class:`ScheduledEventEntityType`)"""

Comment on lines +656 to +687
@property
@deprecated(instead="scheduled_start_time", since="2.7", removed="3.0")
def start_time(self) -> datetime.datetime:
"""
Returns the scheduled start time of the event.
.. deprecated:: 2.7
Use :attr:`scheduled_start_time` instead.
"""
return self.scheduled_start_time

@property
@deprecated(instead="scheduled_end_time", since="2.7", removed="3.0")
def end_time(self) -> datetime.datetime | None:
"""
Returns the scheduled end time of the event.
.. deprecated:: 2.7
Use :attr:`scheduled_end_time` instead.
"""
return self.scheduled_end_time

@property
@deprecated(instead="user_count", since="2.7", removed="3.0")
def subscriber_count(self) -> int | None:
"""
Returns the number of users subscribed to the event.
.. deprecated:: 2.7
Use :attr:`user_count` instead.
"""
return self.user_count
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't really see the point of renaming these, sure it's not the API official name, but it's not that bad here I feel like.

.. deprecated:: 2.7
Use the `image` argument instead.
Use ``image`` instead.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does this mean ?

@Paillat-dev Paillat-dev added API reflection Discord API isn't correctly reflected hold: testing This pull request requires further testing priority: medium Medium Priority labels Dec 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

API reflection Discord API isn't correctly reflected hold: testing This pull request requires further testing priority: medium Medium Priority

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants