@@ -57,6 +57,7 @@ const createProjectionParams = (includeMetadata: boolean = false) => {
5757 id : "#id" ,
5858 repeats : "#repeats" ,
5959 repeatEnds : "#repeatEnds" ,
60+ excludeDates : "#excludeDates" ,
6061 ...( includeMetadata ? { metadata : "#metadata" } : { } ) ,
6162 } ;
6263
@@ -123,14 +124,19 @@ const baseSchema = z.object({
123124const requestSchema = baseSchema . extend ( {
124125 repeats : z . optional ( z . enum ( repeatOptions ) ) ,
125126 repeatEnds : z . string ( ) . optional ( ) ,
127+ repeatExcludes : z . array ( z . string ( ) . date ( ) ) . optional ( ) . openapi ( {
128+ description :
129+ "Dates to exclude from recurrence rules (in the America/Chicago timezone)." ,
130+ } ) ,
126131} ) ;
127132
128- const postRequestSchema = requestSchema . refine (
129- ( data ) => ( data . repeatEnds ? data . repeats !== undefined : true ) ,
130- {
133+ const postRequestSchema = requestSchema
134+ . refine ( ( data ) => ( data . repeatEnds ? data . repeats !== undefined : true ) , {
131135 message : "repeats is required when repeatEnds is defined" ,
132- } ,
133- ) ;
136+ } )
137+ . refine ( ( data ) => ( data . repeatExcludes ? data . repeats !== undefined : true ) , {
138+ message : "repeats is required when repeatExcludes is defined" ,
139+ } ) ;
134140export type EventPostRequest = z . infer < typeof postRequestSchema > ;
135141
136142const getEventSchema = requestSchema . extend ( {
0 commit comments